PyQt 如何新建一个窗口

# -*- coding: UTF-8 -*-

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *


class mainWindow(QWidget):
    def __init__(self, parent=None):
        super(mainWindow, self).__init__(parent)
        button = QPushButton(u'弹出新窗口', self)
        self.slavewindow = slaveWindow()
        self.connect(button, SIGNAL('clicked()'), self.slavewindow.show)


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


def main():
    app = QApplication(sys.argv)
    mainwindow = mainWindow()
    mainwindow.show()
    app.exec_()


if __name__ == '__main__':
    main()

直接上代码

备注

说说要注意的吧:

self.slavewindow = slaveWindow()
self.connect(button, SIGNAL('clicked()'), self.slavewindow.show)
  • 这两个是关键
  • 之前自己一个错误的做法是clicked信号关联了一个普通函数,在普通函数中创建新窗口的实例,同时调用show方法,现在想想实例的生命周期是有问题的,所以窗口一闪而过

Comments

comments powered by Disqus