Arj*_*ain 0 qt4 pyqt4 qmainwindow
在我的项目中,我创建了两个主窗口,我想从mainwindow1(运行中)调用mainwindow2.在mainwindow1我已经使用app.exec_()(PyQt)并显示maindow2我在按钮的click事件中使用maindow2.show()但没有显示任何内容
调用mainwindow2.show()应该适合你.你能给出一个更完整的代码示例吗?其他地方可能有问题.
编辑: 更新代码以显示打开和关闭其他窗口时如何隐藏和显示窗口的示例.
from PyQt4.QtGui import QApplication, QMainWindow, QPushButton, \
QLabel, QVBoxLayout, QWidget
from PyQt4.QtCore import pyqtSignal
class MainWindow1(QMainWindow):
def __init__(self, parent=None):
QMainWindow.__init__(self, parent)
button = QPushButton('Test')
button.clicked.connect(self.newWindow)
label = QLabel('MainWindow1')
centralWidget = QWidget()
vbox = QVBoxLayout(centralWidget)
vbox.addWidget(label)
vbox.addWidget(button)
self.setCentralWidget(centralWidget)
def newWindow(self):
self.mainwindow2 = MainWindow2(self)
self.mainwindow2.closed.connect(self.show)
self.mainwindow2.show()
self.hide()
class MainWindow2(QMainWindow):
# QMainWindow doesn't have a closed signal, so we'll make one.
closed = pyqtSignal()
def __init__(self, parent=None):
QMainWindow.__init__(self, parent)
self.parent = parent
label = QLabel('MainWindow2', self)
def closeEvent(self, event):
self.closed.emit()
event.accept()
def startmain():
app = QApplication(sys.argv)
mainwindow1 = MainWindow1()
mainwindow1.show()
sys.exit(app.exec_())
if __name__ == "__main__":
import sys
startmain()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5231 次 |
| 最近记录: |