首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在pySide中关闭qDialog (如果存在)

在pySide中关闭qDialog (如果存在)
EN

Stack Overflow用户
提问于 2017-02-17 02:24:31
回答 1查看 1.5K关注 0票数 1

我在designer中创建了一个UI,使用pyside-uic将其转换为python,然后按照教程进行了转换:

代码语言:javascript
复制
from PySide import QtCore, QtGui
import mirroratorUI as customUI
#import mirroratorCore as mirroratorCore
from shiboken import wrapInstance
import maya.OpenMayaUI as omui
reload(customUI)

def maya_main_window():
    main_window_ptr = omui.MQtUtil.mainWindow()
    return wrapInstance(long(main_window_ptr), QtGui.QWidget)

class ControlMainWindow(QtGui.QDialog):

    def __init__(self, parent=None):

        super(ControlMainWindow, self).__init__(parent)
        self.setWindowFlags(QtCore.Qt.Tool)
        self.ui =  customUI.Ui_MainWindow()
        self.ui.setupUi(self)

myWin = ControlMainWindow(parent=maya_main_window())
myWin.show()

该UI将用于Maya中,并显示出来,但如果我打开它3次,我将有3个对话框。我记得有一种方法可以检查对话框是否已经存在,如果存在,则将其删除。我在谷歌上找到了一些信息,但我要么不知道如何起诉这些信息,要么它们不适合我的案件……

非常感谢你的帮助,Daniele

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-05 03:12:05

请尝试下面的代码。

代码语言:javascript
复制
global myWin
try:
    myWin.close()
except:
    pass

myWin = ControlMainWindow(parent=maya_main_window())
myWin.show()

上面的代码只是找出窗口是否存在,如果存在,它将像往常一样关闭并创建窗口。

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

https://stackoverflow.com/questions/42281843

复制
相关文章

相似问题

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