我对PyQt5还是很陌生,只是用于一个家庭项目来熟悉和完善我的OOP技能。到目前为止,理解它一直是艰巨而有益的努力。不过,我遇到了麻烦,让我的QWidgets
显示在主窗口中。菜单栏和背景出现并起作用。我似乎无法显示我的输入字段,也不知道为什么。 (此外,是的,我知道使用*导入不是一个好习惯,但是我将在最后总结一下,只是尝试首先建立一个基线)。下面是一个代码示例,如果冗长,我们深表歉意。理想的结果是在主窗口中显示我的3个标签和3个文本输入窗口。
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
class Interface(QMainWindow):
def __init__(self):
super().__init__()
self.app()
def app(self): #main methods, creates the app
#stuff to set icons, title, size, etc.
self._background() #changes bg colours
self._menu_bar() #sets menubar
self._input_fields() #inputs, should show QLabel and QLineEdits, doesn't.
self.show()
def _input_fields(self):
gen = QLabel("Gen: ")
tier = QLabel("Tier: ")
rating = QLabel("Rating: ")
gen_edit = QLineEdit()
tier_edit = QLineEdit()
rating_edit = QLineEdit()
grid = QGridLayout()
grid.setSpacing(10)
grid.addWidget(gen, 1, 0)
grid.addWidget(gen_edit, 1, 1)
grid.addWidget(tier, 2, 0)
grid.addWidget(tier_edit, 2, 1)
grid.addWidget(rating, 3, 0)
grid.addWidget(rating_edit, 3, 1)
self.setLayout(grid)
#_background and _menu_bar methods down here
if __name__ == '__main__':
myapp = QApplication(sys.argv)
ex = Interface()
sys.exit(myapp.exec_())