0
在我的項目中,我創建了兩個mainwindow,我想從mainwindow1(它正在運行)調用mainwindow2。在mainwindow1我已經使用app.exec_()(PyQt),並顯示maindow2我在按鈕的單擊事件中使用maindow2.show(),但不顯示任何東西如何在Qt(或PyQt)中調用一個主窗口到另一個主窗口
在我的項目中,我創建了兩個mainwindow,我想從mainwindow1(它正在運行)調用mainwindow2。在mainwindow1我已經使用app.exec_()(PyQt),並顯示maindow2我在按鈕的單擊事件中使用maindow2.show(),但不顯示任何東西如何在Qt(或PyQt)中調用一個主窗口到另一個主窗口
調用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()
謝謝灰色終於完成了。但我想使window1禁用和window2啓用和當window2關閉然後window1成爲renable – 2011-04-12 10:35:53
我已經更改了代碼,以便當第二個QMainWindow顯示第一個隱藏。當第二個QMainWindow關閉時,第一個將再次顯示。 – 2011-04-12 11:48:08
你們終於做到了非常感謝gary – 2011-04-12 14:17:39