Форум сайта python.su
Хочу разбить программу на два модуля - один модуль для GUI кода, второй для логики программы. Вот эти два модуля:
Интерфейс:
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])
Отредактировано Andrey2016 (Дек. 10, 2016 18:44:08)
Офлайн
А какой из модулей вы запускаете как программу?
Офлайн
тот что с интерфейсом
Офлайн
Ну тогда все понятно. Когда вы импортируете модуль, все его содержимое выполняется.
Когда вы делаете это
import logic
prog = gui.Program()
Офлайн
Вы вообще понимаете, что строка prog = gui.Program() создает совершенно новый объект, который вообще никак не связан с тем, который вы создаете здесь ex = Program(). Это два разных объекта в разных участках памяти. Вам бы для начала чего-нибудь почитать про ОПП, да и вообще про питон и программирование.
Отредактировано FishHook (Дек. 10, 2016 19:42:14)
Офлайн
Я понимаю, что не разбираюсь в ООП, но нужно написать небольшую программу. Если бы вы показали где и как именно исправить код, вы бы очень помогли))
Офлайн
Andrey2016
Давайте тогда называть вещи своими именами, тему надо было назвать “Напишите за меня программу”
Переношу её в соответствующее место
Офлайн