【问题标题】:How to close window / widget properly after opening another window (.py file) in pyQt4在pyQt4中打开另一个窗口(.py文件)后如何正确关闭窗口/小部件
【发布时间】:2017-12-28 06:58:09
【问题描述】:
def run(self, path):
    subprocess.call(['pythonw', path])

def login(self):
    members = {'sample': 'sample'}
    username = self.username.text()
    password = self.password.text()

    if username in members:
        enteredPass = members.get(username)
        if password == enteredPass:
            self.run('inventory.py')
            #app.instance().quit()
            sys.exit()
        else:
            self.username.clear()
            self.password.clear()
            print("Invalid username and password.")
    else:
        self.username.clear()
        self.password.clear()
        print("Invalid username and password.")

我想在用户输入正确的登录信息后关闭登录窗口。窗口尝试关闭但冻结并变得无响应。

我的问题是如何关闭登录表单而不使其无响应? (如果我的代码示例缺少您可以理解的问题,请告诉我。谢谢!)

【问题讨论】:

  • inventory.py 是什么?
  • inventory.py 是另一个 gui 窗口,只有登录成功才能访问。
  • 试试我的答案。
  • @lloydyu24。为什么要使用子进程打开第二个窗口?为什么不直接导入 inventory.py
  • @eyllanesc 我会的!谢谢!

标签: python pyqt pyqt4


【解决方案1】:

调用函数等待返回码,因此强制关闭启动新应用程序的进程会产生该行为。您应该使用Popen 而不是call

subprocess.Popen(['pythonw', path])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-19
    • 1970-01-01
    • 1970-01-01
    • 2016-09-03
    • 1970-01-01
    • 1970-01-01
    • 2020-09-17
    相关资源
    最近更新 更多