小部件未显示在主窗口中

时间:2020-05-13 11:39:15

标签: python pyqt pyqt5

我对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_())

0 个答案:

没有答案