繁体   English   中英

如何调用同一窗口! PYQT5

[英]How to call back the same window!? PYQT5

我花了一整天的调试和剥离项目来解决此问题。

我有一个帮助窗口(Help_ui类),如果未找到text.txt则应打开,而主窗口(Main类)具有一个QTextEdit框,应打印“ Hello”。 问题是,当我从Help_ui类调用主窗口时,它不会显示“ Hello”,但是如果我从逻辑中调用它,则它会显示“ Hello”。

为什么这样做,它会打开该窗口的另一个实例,而不是正确的窗口吗?

from PyQt5 import QtWidgets
import sys
from pathlib import Path
from ui_files import mainWindow
from ui_files import help_ui


text = "Hello"

class Main(QtWidgets.QMainWindow, mainWindow.Ui_mainWindow):
    def __init__(self, text):
        super().__init__()
        self.setupUi(self)

        self.mainTextEdit.setText(text)


class Help_ui(QtWidgets.QDialog, help_ui.Ui_help):
    def __init__(self):
        super().__init__()
        self.setupUi(self)

        self.close_btn.clicked.connect(self.close)

        self.form = Main(None)
        self.form.show()


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    form = Main(text)

    my_file = Path("file.txt")
    if my_file.is_file():
        form.show()
    else:            
        help_window = Help_ui()
        help_window.show()

    app.exec_()

发生的情况是实例form与实例self.form不同,在第一个实例中您将其作为参数text传递,而在第二个实例中self.form其作为None传递。

必须将self.form = Main(None)更改为self.form = Main(text)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM