2013-01-19 188 views
0

我是新来的PyQt,我期待为演示了一个简单的按钮,当其点击将它打开,与QTextEdit一起一个新的小窗口代码PyQt的上点击新窗口打开

+1

http://stackoverflow.com/a/4839224/1110381 ... – l4mpi

+0

好,我试图W1 =的QTextEdit()w1.show(),但没有任何反应 – Zed

+0

你需要构建一个QApplication在此之前,如果您没有在QApp上交互调用_exec以确保程序不会立即退出。但是我将这个特定答案联系起来的原因是关于模态对话的评论:http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qinputdialog.html#details – l4mpi

回答

12

这里是什么入手:

#!/usr/bin/env python 
#-*- coding:utf-8 -*- 

from PyQt4 import QtCore, QtGui 

class MyDialog(QtGui.QDialog): 
    def __init__(self, parent=None): 
     super(MyDialog, self).__init__(parent) 

     self.buttonBox = QtGui.QDialogButtonBox(self) 
     self.buttonBox.setOrientation(QtCore.Qt.Horizontal) 
     self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok) 

     self.textBrowser = QtGui.QTextBrowser(self) 
     self.textBrowser.append("This is a QTextBrowser!") 

     self.verticalLayout = QtGui.QVBoxLayout(self) 
     self.verticalLayout.addWidget(self.textBrowser) 
     self.verticalLayout.addWidget(self.buttonBox) 

class MyWindow(QtGui.QWidget): 
    def __init__(self, parent=None): 
     super(MyWindow, self).__init__(parent) 

     self.pushButtonWindow = QtGui.QPushButton(self) 
     self.pushButtonWindow.setText("Click Me!") 
     self.pushButtonWindow.clicked.connect(self.on_pushButton_clicked) 

     self.layout = QtGui.QHBoxLayout(self) 
     self.layout.addWidget(self.pushButtonWindow) 

     self.dialogTextBrowser = MyDialog(self) 

    @QtCore.pyqtSlot() 
    def on_pushButton_clicked(self): 
     self.dialogTextBrowser.exec_() 


if __name__ == "__main__": 
    import sys 

    app = QtGui.QApplication(sys.argv) 
    app.setApplicationName('MyWindow') 

    main = MyWindow() 
    main.show() 

    sys.exit(app.exec_())