[英]How can I self hide and show QDialog() in PyQT5?
我有一個使用Qt Designer生成的GUI,我使用pyuic5生成了一個.py文件。 在一個單獨的py(program.py)文件中,我導入了UI,並在那里完成了所有工作。
程序
import sys, os, time
from subprocess import call
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyCred_GUI import Ui_Dialog
class MyGUI(Ui_Dialog):
def __init__(self, dialog):
Ui_Dialog.__init__(self)
self.setupUi(dialog)
self.pushButton_2.clicked.connect(self.cancelbutton)
def cancelbutton(self):
exit()
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
dialog = QtWidgets.QDialog()
dialog.setWindowFlags(QtCore.Qt.WindowSystemMenuHint)
prog = MyGUI(dialog)
dialog.show()
sys.exit(app.exec_())
我抽出很多錢只是為了集中討論這個問題。 當我單擊“取消”按鈕時,我希望窗口隱藏,設置計時器,然后在這么多秒后重新出現。 我已經嘗試過self.close()self.hide()self.destroy()的每種組合,但沒有一個隱藏我的窗口。 我收到一條錯誤消息:
“ AttributeError:'MyGUI'對象沒有屬性'hide' ”
這是有道理的,因為MyGUI沒有hide()函數。 我對如何隱藏此窗口一無所知。
編輯 (已解決)對於未來的人,正如Hi Im Frogatto dialog.hide()所建議的那樣。
在您的代碼段中, dialog
是QDialog
類型,因此具有hide
方法。 但是, MyGUI
類的實例似乎沒有這種方法。 因此,如果在該__init__()
函數中編寫dialog.hide()
,則可以將其隱藏。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.