首页 > 解决方案 > 我添加了我需要的所有小部件,但我的程序主窗口仍然是空白的,我不知道为什么

问题描述

我的主窗口似乎是空的,我添加了必要的小部件,但我不知道如何处理这种情况

class menu(QMainWindow):
    def __init__(self,parent=None):
        super(menu,self).__init__(parent)
        layout0=QFormLayout()
        self.b1=QPushButton("Öğrenci Girişi")
        self.b2=QPushButton("Öğretmen Girişi")
        menubar=self.menuBar()
        bilgi=menubar.addMenu("Bilgi")
        Hakkinda=QAction("Hakkında",self)
        Yardim=QAction("Yardim",self)
        bilgi.addAction(Hakkinda)
        bilgi.addAction(Yardim)
        Hakkinda.triggered.connect(self.hakkinda)
        Yardim.triggered.connect(self.yardim)
        layout0.addWidget(self.b1)
        layout0.addWidget(self.b2)
        self.b1.clicked.connect(self.gettext)
        self.b2.clicked.connect(self.gettext1)
        self.b1.setEnabled(True)
        self.b2.setEnabled(True)
        self.setLayout(layout0)

标签: pythonpython-3.xpyqt5

解决方案


无效 QMainWindow::setCentralWidget(QWidget *widget)

将给定的小部件设置为主窗口的中心小部件。

from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *


class MyMenu(QMainWindow):
    def __init__(self,parent=None):
        super(MyMenu,self).__init__(parent)
        
        centralWidget = QWidget()
        self.setCentralWidget(centralWidget)
        
        layout0 = QFormLayout(centralWidget)
        
        self.b1 = QPushButton("Öğrenci Girişi")
        self.b2 = QPushButton("Öğretmen Girişi")
        
        menubar = self.menuBar()
        bilgi = menubar.addMenu("Bilgi")
        Hakkinda = QAction("Hakkında",self)
        Yardim = QAction("Yardim",self)
        
        bilgi.addAction(Hakkinda)
        bilgi.addAction(Yardim)
        
        Hakkinda.triggered.connect(self.hakkinda)
        Yardim.triggered.connect(self.yardim)
        
        layout0.addWidget(self.b1)
        layout0.addWidget(self.b2)
        self.b1.clicked.connect(self.gettext)
        self.b2.clicked.connect(self.gettext1)
        self.b1.setEnabled(True)
        self.b2.setEnabled(True)
#        self.setLayout(layout0)
        
    def hakkinda(self):
        print("def hakkinda")
        
    def yardim(self):
        print("def yardim")
        
    def gettext(self):
        print("def gettext")
        
    def gettext1(self):
        print("def gettext1")
        
        
if __name__ == '__main__':
    import sys
    application = QApplication(sys.argv)
    window = MyMenu()
    window.show()
    sys.exit(application.exec_()) 

在此处输入图像描述


推荐阅读