如何回拨同一个窗口!? PYQT5

时间:2017-03-28 23:43:32

标签: python pyqt pyqt5

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

我有一个帮助窗口(Help_ui类),如果找不到text.txt,它应该打开,主窗口(Main类)有一个QTextEdit框,应打印" Hello"。 问题是,当我从Help_ui类调用主窗口时,它不打印" 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_()

1 个答案:

答案 0 :(得分:0)

实例form与实例self.form不同,在第一个作为参数text传递,而在第二个None。< / p>

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