Не запускается функция загрузки изображений в программе на PyQt5
Я написал программу для сбора ответов на ОГЭ, после того как вы запустите файл OrbitTeacherFormL.py вы должны будите ввести обязательные данные они идут до полей с ответами, после чего при нажатии на кнопку Открыть задания ОГЭ
откроется второй файл OrbitTeacherTaskL
, НО изображения на местах QLable
не появятся, а если запустить файл отдельно, то все работать будет.
Как это пофиксить?
Гугл диск:https://drive.google.com/drive/folders/1Rpa-KxfA0TC_IoQst7GLKwoxvhWx5mKb?usp=share_link
Внимание! Запускать программы стоит только в папке прикреплённой к данному вопросу в противном случаи программа не запуститься
UPD: Отредактировал файлы для лучшего понимания проблемы:
main.py:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from PyQt5 import QtCore, QtGui, QtWidgets
# Подключение графического интерфейса программы
from OrbitTeacherForm import Ui_OrbitTeacherForm
# Подключение второго рабочего окна
from main2 import Ui_OrbitTeacherTask
class MainWindow(QtWidgets.QMainWindow, Ui_OrbitTeacherForm):
def __init__(self):
super().__init__()
self.setupUi(self)
self.pushButton_2.clicked.connect(self.task)
# Функция запуска окна с заданием
def task(self):
self.OrbitTeacherTask = QtWidgets.QMainWindow()
self.ui = Ui_OrbitTeacherTask()
self.ui.setupUi(self.OrbitTeacherTask)
self.OrbitTeacherTask.show()
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
app.setStyle("Fusion")
w = MainWindow()
w.show()
sys.exit(app.exec_())
main2.py:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from PyQt5 import QtCore, QtGui, QtWidgets
# Подключение графического интерфейса программы
from OrbitTeacherTask import Ui_OrbitTeacherTask
# Подключение библиотеки для загрузки изображений
from PyQt5.Qt import QPixmap
# Подключение модуля для работы с файлами
import os
# Подключение модуля для автоматического определения разрешения изображения
import PIL
from PIL import Image
class MainWindow(QtWidgets.QMainWindow, Ui_OrbitTeacherTask):
def __init__(self):
super().__init__()
self.setupUi(self)
# Активация функции применения текуших настроек приложения
self.task_planned()
# Функция загрузки заданных заданий
def task_planned(self):
self.directory_task = "G:\PyCharm\PyCharmProject\projectSAFTD_x32\OrbitTeacher/task/first_test"
self.auto_img_size = True
self.file_names = []
self.task_code = []
self.directory_task_number = []
for file in os.listdir(self.directory_task):
if file.endswith(".jpg"):
self.directory_task_number.append(os.path.join(self.directory_task, file))
self.file_names.append(
(os.path.basename(os.path.join(self.directory_task, file)).split('.')[0]).split("_")[0])
self.task_code.append((os.path.basename(os.path.join(self.directory_task, file)).split('.')[0]))
for a in range(0, len(self.file_names)):
img = PIL.Image.open(self.directory_task_number[a])
wid, hgt = img.size
if self.auto_img_size == True:
for a in range(0, len(self.file_names)):
img = PIL.Image.open(self.directory_task_number[a])
wid, hgt = img.size
if self.file_names[a] == "1":
imagePath = self.directory_task_number[a]
pixmap = QPixmap(imagePath)
self.label.setPixmap(pixmap)
self.label.setScaledContents(True)
self.label.setFixedSize(wid, hgt)
elif self.file_names[a] == "2":
imagePath = self.directory_task_number[a]
pixmap = QPixmap(imagePath)
self.label_2.setPixmap(pixmap)
self.label_2.setScaledContents(True)
self.label_2.setFixedSize(wid, hgt)
elif self.file_names[a] == "3":
imagePath = self.directory_task_number[a]
pixmap = QPixmap(imagePath)
self.label_5.setPixmap(pixmap)
self.label_5.setScaledContents(True)
self.label_5.setFixedSize(wid, hgt)
elif self.file_names[a] == "4":
imagePath = self.directory_task_number[a]
pixmap = QPixmap(imagePath)
self.label_7.setPixmap(pixmap)
self.label_7.setScaledContents(True)
self.label_7.setFixedSize(wid, hgt)
elif self.file_names[a] == "5":
imagePath = self.directory_task_number[a]
pixmap = QPixmap(imagePath)
self.label_8.setPixmap(pixmap)
self.label_8.setScaledContents(True)
self.label_8.setFixedSize(wid, hgt)
elif self.file_names[a] == "6":
imagePath = self.directory_task_number[a]
pixmap = QPixmap(imagePath)
self.label_9.setPixmap(pixmap)
self.label_9.setScaledContents(True)
self.label_9.setFixedSize(wid, hgt)
elif self.file_names[a] == "7":
imagePath = self.directory_task_number[a]
pixmap = QPixmap(imagePath)
self.label_10.setPixmap(pixmap)
self.label_10.setScaledContents(True)
self.label_10.setFixedSize(wid, hgt)
elif self.file_names[a] == "8":
imagePath = self.directory_task_number[a]
pixmap = QPixmap(imagePath)
self.label_11.setPixmap(pixmap)
self.label_11.setScaledContents(True)
self.label_11.setFixedSize(wid, hgt)
elif self.file_names[a] == "9":
imagePath = self.directory_task_number[a]
pixmap = QPixmap(imagePath)
self.label_12.setPixmap(pixmap)
self.label_12.setScaledContents(True)
self.label_12.setFixedSize(wid, hgt)
elif self.file_names[a] == "10":
imagePath = self.directory_task_number[a]
pixmap = QPixmap(imagePath)
self.label_13.setPixmap(pixmap)
self.label_13.setScaledContents(True)
self.label_13.setFixedSize(wid, hgt)
elif self.file_names[a] == "11":
imagePath = self.directory_task_number[a]
pixmap = QPixmap(imagePath)
self.label_14.setPixmap(pixmap)
self.label_14.setScaledContents(True)
self.label_14.setFixedSize(wid, hgt)
elif self.file_names[a] == "12":
imagePath = self.directory_task_number[a]
pixmap = QPixmap(imagePath)
self.label_6.setPixmap(pixmap)
self.label_6.setScaledContents(True)
self.label_6.setFixedSize(wid, hgt)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
app.setStyle("Fusion")
w = MainWindow()
w.show()
sys.exit(app.exec_())
Вместо данной 31 строчки: self.directory_task = "G:\PyCharm\PyCharmProject\projectSAFTD_x32\OrbitTeacher/task/first_test"
Введите удобную вам директорию, для в которую положите любый изображения формата .jpg
(или возьмите изображения из моего проекта) и переименуйте их в формат 1_123
, 2_123
и т.д.