代码之家  ›  专栏  ›  技术社区  ›  Shane O Neil

为什么PyQt5没有显示按钮?

  •  0
  • Shane O Neil  · 技术社区  · 2 年前

    当菜单类从QWidgets类继承时,会显示按钮,但是,当从QMainWindow继承时,不会显示相同的按钮。我到处找都找不到解释。

    from PyQt5.QtWidgets import QMainWindow, QFormLayout, QPushButton, QApplication, QWidget
    import sys
    
    
    class Menu(QMainWindow):
        """
        Create menu object
        """
    
        def __init__(self, parent=None):
            """
            Initialize main menu
            """
            super().__init__(parent)
            self.file = None
            self.fields_create()
            self.create_table()
    
        def fields_create(self):
            """
            Create buttons and LineEdits
            """
            # Settings Button
            self.settings_btn = QPushButton()
            self.settings_btn.setText("Settings")
            self.settings_btn.clicked.connect(self.settings_click)
    
        def create_table(self):
            """
            create and display table
            """
            self.flo = QFormLayout()
            self.flo.addRow(self.settings_btn)
            self.setLayout(self.flo)
    
        def settings_click(self):
            print("clicked")
    
    
    if __name__ == "__main__":
        app = QApplication(sys.argv)
        win = Menu()
        win.show()
        sys.exit(app.exec_())
    
    
    1 回复  |  直到 2 年前
        1
  •  -1
  •   tetris programming    2 年前

    尝试替换:

    self.settings_btn = QPushButton()
    

    具有

    self.settings_btn = QPushButton(self)