Я пытаюсь создать пользовательский интерфейс для текстовой игры.
Это прекрасно работает, однако я хотел создать свою собственную простую функцию печати для печати на частях пользовательского интерфейса (в примере QLabel)это работает, если функция находится в файле пользовательского интерфейса, но когда я перемещаю функции в другой файл, я получаю
"AttributeError: тип объекта" Window "не имеет атрибута" label ""
даже если в моей IDE написано, что Window.label существует до его запуска.
Это какая-то причуда или QT?или я ошибаюсь?
UI.py
import sys
from PyQt5 import QtWidgets, QtGui, QtCore
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
class Window(QWidget):
def __init__(self):
super().__init__()
self.show()
import game
self.label = QLabel("Text")
self.label.setAlignment(Qt.AlignCenter | Qt.AlignTop)
self.output = QTextEdit()
self.output.setReadOnly(True)
grid = QGridLayout()
grid.setSpacing(10)
grid.addWidget(self.label,0,0,1,10)
grid.addWidget(self.output,1,0,10,10)
self.setLayout(grid)
game.Game.test()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Window()
sys.exit(app.exec_())
Game.py
from UI import Window
class Game():
def print_UI(self,*Args, **Kwargs):
Window.setup.output.insertPlainText(*Args, **Kwargs)
def print_label(self,*Args, **Kwargs):
Window.label.setText(*Args, **Kwargs)
def test():
Game.print_label("HI")