Интерфейс:
import sys from PyQt5 import QtCore from PyQt5.QtWidgets import (QApplication, QPushButton, QMainWindow, QLabel, QDesktopWidget, QListWidget) from PyQt5.QtGui import QFont import logic class Program(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): self.first_list = QListWidget(self) self.first_list.setGeometry(15, 35, 140, 42) add_to_list_button = QPushButton('Add', self) add_to_list_button.setGeometry(165, 35, 30, 20) add_to_list_button.clicked.connect(lambda: logic.addToList(self)) self.second_list = QListWidget(self) self.second_list.setGeometry(205, 35, 140, 192) for i in range(30): self.second_list.addItem(logic.list_one[i][3]) if __name__ == '__main__': app = QApplication(sys.argv) ex = Program() sys.exit(app.exec_())
import gui # list_one and list_two go here prog = gui.Program() def addToList(self): for i in range(len(prog.second_list)): if list_one[i][3] == str(prog.second_list.currentItem().text()): index = i list_two.append(list_one[index])
При запуске получаю ошибку QWidget: Must construct a QApplication before a QWidget. Как мне подсказали, исправляется эта ошибка передачей инстанса класса Program в функцию addToList. Но видимо я делаю что-то не так, потому что при запуске программа всё равно выдает ошибки (но уже другие). Пожалуйста, напишите как должен выглядеть исправленный код