我是PyQt4的新人。我的问题非常简单:我无法打开密码窗口,并在进行身份验证后关闭/隐藏它,然后打开一个新的单独窗口。第二个窗口消失得很快。我的方法就是这样(简化):
import sys, time
from PyQt4 import QtGui
class Window2(QtGui.QWidget):
def __init__(self):
super(Window2, self).__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('Window2')
# ...add the widgets, etc.
self.show()
class PasswordWindow(QtGui.QWidget):
def __init__(self):
super(PasswordWindow, self).__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('PasswordWindow')
self.show()
# ...Here, I'd input the password, authenticate, etc
self.hide()
w2 = window2() # go to the true main window
def main():
app = QtGui.QApplication(sys.argv)
pw = PasswordWindow()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
提前致谢!
答案 0 :(得分:0)
我认为这与Window2
函数本地的PasswordWindow.initUI
对象有关。当我更换
w2 = Window2()
与
self.w2 = Window2()
我得到了预期的效果。
答案 1 :(得分:0)
为了清楚起见,当initUi返回时,w2会被破坏。执行self.w2 = Window2()将w2分配给密码窗口对象,因此w2将存在,直到密码对象被销毁。