gpt4 book ai didi

python - 关闭 pySide 中的 qDialog(如果存在)

转载 作者:行者123 更新时间:2023-12-02 04:00:08 27 4
gpt4 key购买 nike

我在设计器中创建了一个 UI,使用 pyside-uic 将其转换为 python,然后按照教程执行此操作:

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个dialgos。我记得有一种方法可以检查对话框是否已经存在,如果存在,则将其删除。我在谷歌上找到了一些信息,但我要么不明白如何起诉这些信息,要么它们不适合我的情况...

非常感谢您的帮助,丹尼尔

最佳答案

请尝试以下代码。

global myWin
try:
myWin.close()
except:
pass

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

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

关于python - 关闭 pySide 中的 qDialog(如果存在),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42281843/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com