pythonqt中怎么使用_如何使用PythonQt在API中正确关闭QWidget窗口

我正在使用可视化程序的API中的Python 2.7。在其2016版本中,我使用PySide创建了一个GUI,它的工作很好。现在,在他们的新版2017版本中,他们从PySide变成了PythonQt,所以我的导入和一些命令必须改变,但它仍然有效。

但是,如果我关闭了我的GUI并尝试继续工作,例如打开当前或新项目,2017版本正在退出,有时会使用,有时没有错误消息,但该消息根本没有帮助。

如果我像在2016版中一样关闭我的GUI窗口,程序将关闭。奇怪的是,如果我使用close命令,如果我在Windows 7 Pro中运行我的窗口独立程序,会在程序中显示一个错误(Traceback(最近调用最后一次):File“”,第1152行,在closeEvent ValueError:slot quit() - > void需要QApplication实例作为第一个参数。),我的GUI已关闭,我可以继续工作。

所以我的图形用户界面需要以某种方式关闭,目前我无法弄清楚。

通过调用程序终端中的showMyGUI()函数来打开我的GUI,在该终端中可以执行python命令,或者通过按下F函数链接该函数。

# -*- 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?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值