我正在使用PyQT创建QMainWindow窗口,在单击按钮时打开另一个窗口。我的问题是,即使我关闭产生它的主窗口,弹出窗口仍然显示。这与发布的here非常相似,但是用C ++编写,我只能做Python。如何在Python中实现答案?这是我的代码:
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import sys
class Pycryptor:
def mainGui(self):
app = QApplication(sys.argv)
#MainWindow
self.mainWin = QMainWindow()
self.mainWin.setGeometry(200,200,500,432)
self.mainWin.show()
#MenuBar
mainMenu = self.mainWin.menuBar()
mainMenu.setNativeMenuBar(False)
aboutMenu = mainMenu.addMenu('A&bout')
helpButton = QAction(QIcon(),'Help',self.mainWin)
helpButton.triggered.connect(self.helpPopup)
aboutMenu.addAction(helpButton)
sys.exit(app.exec_())
def helpPopup(self):
self.popup = HelpWindow()
self.popup.setGeometry(800,200,300,500)
self.popup.show()
class HelpWindow(QWidget):
def __init__(self):
QWidget.__init__(self)
if __name__ == '__main__':
p = Pycryptor()
p.mainGui()
答案 0 :(得分:1)
在c ++中,您可以将widget对象设置为一个mainWindow对象。当父母将被摧毁时,他将跟随他所有的孩子。
例如:
void MainWindow::on_pushButton_clicked()
{
Form *fm = new Form();
fm->setParent(this);
fm->setWindowFlags(Qt::Window);
fm->show();
}
我不知道创建这个pyqt很热,但你可以阅读文档: http://pyqt.sourceforge.net/Docs/PyQt4/qwidget.html#setParent