Python Can';t使用指定选项打开gui类窗口
我不熟悉python和pyqt。我正在尝试在第一个屏幕后打开一个新窗口。我的第二个窗口打开,但没有我指定的选项、标签和按钮Python Can';t使用指定选项打开gui类窗口,python,python-3.x,pyqt,pyqt5,qmainwindow,Python,Python 3.x,Pyqt,Pyqt5,Qmainwindow,我不熟悉python和pyqt。我正在尝试在第一个屏幕后打开一个新窗口。我的第二个窗口打开,但没有我指定的选项、标签和按钮 from PyQt5 import QtWidgets import sys class secondwindow(QtWidgets.QMainWindow): def __init__(self): super(secondwindow, self).__init__() self.label1 = QtWidgets.QLab
from PyQt5 import QtWidgets
import sys
class secondwindow(QtWidgets.QMainWindow):
def __init__(self):
super(secondwindow, self).__init__()
self.label1 = QtWidgets.QLabel("Second Window");
self.button1 = QtWidgets.QPushButton("Click Me");
hbox = QtWidgets.QHBoxLayout()
hbox.addWidget(self.label1)
hbox.addWidget(self.button1)
self.setLayout(hbox)
class Window(QtWidgets.QWidget):
def btnclicked(self):
sender = self.sender()
if sender.text() == "OK":
self.secwin.show()
def __init__(self, parent=None):
super(Window, self).__init__(parent)
self.button1 = QtWidgets.QPushButton("OK");
vbox = QtWidgets.QVBoxLayout()
vbox.addWidget(self.button1)
self.setLayout(vbox)
self.button1.clicked.connect(self.btnclicked)
self.secwin = secondwindow()
self.show()
def main():
app = QtWidgets.QApplication(sys.argv)
main = Window()
main.show
sys.exit(app.exec())
if __name__ == '__main__':
main()
QMainWindow
是一个特殊的小部件,因为它有一个已定义的结构:
如图所示,已经有一个区域指定用于放置称为中心小部件的小部件,您必须在其中放置要为其显示的小部件,您可以使用setCentralWidget()
在您的情况下,解决方案是:
class secondwindow(QtWidgets.QMainWindow):
def __init__(self):
super(secondwindow, self).__init__()
central_widget = QtWidgets.QWidget()
self.label1 = QtWidgets.QLabel("Second Window")
self.button1 = QtWidgets.QPushButton("Click Me")
hbox = QtWidgets.QHBoxLayout(central_widget)
hbox.addWidget(self.label1)
hbox.addWidget(self.button1)
self.setCentralWidget(central_widget)