我有一个窗口。有一个按钮。当用户点击此按钮时,在窗口中必须消失按钮并出现新标签和新按钮。 你明白了吗?
# -*- coding: utf-8 -*-
from PyQt4 import QtGui, QtCore
import sys
def starting():
quest1 = QtGui.QWidget()
quest1.setWindowTitle('New')
quest1.resize(900, 600)
quest1.show()
quest1.exec()
testing = QtGui.QApplication(sys.argv)
window = QtGui.QWidget()
window.setWindowTitle('Title')
window.resize(900, 600)
MainText = QtGui.QLabel('<p align="center"; style="font-size: xx-large">Text</p>')
Mainbox = QtGui.QVBoxLayout()
# buttons
start = QtGui.QPushButton('Start')
quit = QtGui.QPushButton('Exit')
start.setFixedSize(70, 40)
quit.setFixedSize(70, 40)
buttons = QtGui.QHBoxLayout()
buttons.addWidget(start)
buttons.addWidget(quit)
# /buttons
Mainbox.addWidget(MainText)
Mainbox.addLayout(buttons)
window.setLayout(Mainbox)
QtCore.QObject.connect(quit, QtCore.SIGNAL('clicked()'), QtGui.qApp, QtCore.SLOT("quit()"))
QtCore.QObject.connect(start, QtCore.SIGNAL('clicked()'), starting)
window.show()
sys.exit(testing.exec_())
我认为,我做错了,不需要打开新窗口,但我不知道我必须做什么。
答案 0 :(得分:2)
Qt用户界面是根据小部件构建的。许多小部件都可以生孩子。如果添加/删除子项,UI将相应更新。
上面代码的问题在于您没有将新窗口小部件添加到父窗口。所以会发生什么:你创建小部件,强制它出现,函数结束,局部变量(newwindow
)最终在垃圾桶上,Python清理垃圾 - &gt;小部件再次被删除。
对于要停留的窗口,您需要将其添加到某个父窗口小部件(可能是窗口)。如果要替换现有小部件,则需要自行删除它们。