[英]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.