簡體   English   中英

如何在PyQT5中自隱藏和顯示QDialog()?

[英]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()所建議的那樣。

在您的代碼段中, dialogQDialog類型,因此具有hide方法。 但是, MyGUI類的實例似乎沒有這種方法。 因此,如果在該__init__()函數中編寫dialog.hide() ,則可以將其隱藏。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM