所以。我正在尝试使用 python 和 PyQT5 学习编码和 gui 开发。为了设计不同的窗口,我使用 qt 设计器,因此每个窗口都有自己单独的文件。
到目前为止一直进展顺利。
我想做的是在存储在不同 python 文件中的窗口之间发送信号。更具体地说,我有一个窗口,您可以通过按钮打开辅助窗口。在第二个窗口中,用户可以填写表单,当按下“保存”时,该信息将传递回第一个窗口并显示在 QtableQidget(或标签或其他内容)中。
所以。 第一个窗口: 空表/行编辑/等等。 Button_secondary_window > 打开辅助窗口。
辅助窗口: 在 lineEdit/table/etc 中输入信息。 Button_save > 将信息发送回第一个窗口。
那么有人可以解释一下如何在 python 文件之间发送信息吗? 我知道你可以在不同类下的同一个 python 文件中存储多个窗口,但是感觉 qt 设计器变得有点多余,因为似乎你不能将两个 qt 设计器文件打包到一个 python 文件中?!?
到目前为止,我还无法让此操作发挥作用。
是的,我知道我没有附加任何代码。这是一个关于 python 文件之间来回信号的纯粹通用问题(使用 PyQt5)。
在您的情况下没有问题,因为子窗口不必了解主窗口的任何信息,并且可以只是对话框。
如果一个类使用了另一个类,则导入相关类。
所以这是纯粹的理论答案
MyDialog.py
class MyDialog(QtWidgets.QDialog):
def name(self):
return self._ui.name.text()
def phoneNumber(self):
return self._ui.phoneNumber.text()
MainWindow.py
import MyDialog
class MainWindow:
def onButtonClicked(self):
dialog = MyDialog(self)
if dialog.exec() != QtWidgets.QDialog.Accepted:
return
name = dialog.name()
phoneNumber = dialog.phoneNumber()
main.py
import MainWindow
if __name__ == "__main__":
app = QtWidgets.QApplication([])
window = MainWindow()
window.show()
app.exec()