首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用PythonQt正确关闭API中的QWidget窗口

如何使用PythonQt正确关闭API中的QWidget窗口
EN

Stack Overflow用户
提问于 2016-10-24 08:02:59
回答 1查看 420关注 0票数 0

我正在一个可视化程序的API中使用Python2.7。在2016年版本中,我用PySide创建了一个图形用户界面,它运行良好。现在,在他们2017年的新版本中,他们从PySide变成了PythonQt,所以我的导入和一些命令必须改变,但到目前为止它仍然有效。

但是如果我关闭我的GUI并尝试继续工作,例如打开一个当前或新的项目,2017版本就会退出,有时会有,有时没有错误信息,但是这个消息根本没有帮助。

如果我以与2016版本相同的方式关闭GUI窗口,程序就会关闭。奇怪的是,如果我使用在Windows7Pro中独立运行窗口时所需的close命令,程序中会显示一个错误(回溯(最近一次调用):File "",第1152行,在closeEvent ValueError:-> void需要QApplication实例作为第一个参数。),我的GUI关闭了,我可以继续工作。

因此,我的GUI需要以某种方式关闭,到目前为止我还不知道。

我的图形用户界面是通过调用程序终端中的showMyGUI()-function来打开的,在那里可以执行python命令,或者按一个F按钮,这个函数是链接到这里的。

代码语言:javascript
复制
# -*- coding: utf-8 -*-

import sys, os
progVers = getVredVersion()[:1]
if progVers == "8": #2016-version
    from PySide.QtCore import *
    from PySide.QtGui import *
elif progVers == "9": #2017-version
    from PythonQt.QtCore import *
    from PythonQt.QtGui import *

class MainWindow(QWidget):
    def __init__(self):
        super(MainWindow, self).__init__()
        grid = QGridLayout()
        grid.setSpacing(10)

        ...

        self.setWindowModality(Qt.ApplicationModal)
        self.setWindowFlags(Qt.WindowStaysOnTopHint | Qt.WindowMaximizeButtonHint)
        self.show()

    def closeEvent(self,event):
        progVers = getVredVersion()[:1]
        if progVers == "8":      
            QApplication.instance().quit()
        elif progVers == "9":
            QApplication.quit() #as used for standalone in Windows 7 Pro
        event.accept()

def showMyGUI():   
    app = QApplication.instance()
    window = MainWindow()
    app.exec_()

keyF11 = vrKey(Key_F11)
keyF11.connect(showMyGUI)

有人能告诉我如何正确关闭我的GUI吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-14 17:24:01

我的解决方案是:MainWindow现在正在继承表单QDialog,需要一个父级(def __init__(self, parent=None):和super(MainWindow, self).__init__(parent)。在创建MainWindow-object时,可以在2016年使用verdMainWindow()访问父窗口,在2017年用vrMainWindow访问父窗口。我以这种方式创建该类的对象window=MainWindow(vrMainWindow)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40213425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档