qt界面如何同多个python程序相连接?
主要是开发一个界面,将界面代码同其他的py文件相互连接。
或者将界面代码里面的class中的被赋值的变量拿出来放到其他的py文件里。
界面的作用是在lineEdit里面输入,然后再输出。把lineEdit的值赋值给变量。但是在其他py文件里面无法从外部直接使用这个变量。
如:da=self.lineEdit.text(),在lineEdit框中输入内容会赋值给class中的da变量。但是在其他py文件却无法使用da变量。在其他py文件里无法将每次在lineEdit中的值赋值给da。在其他py文件里直接调用da变量失败
回答:
用信号和槽:
# file: main.pyfrom PyQt5.QtWidgets import QApplication, QLineEdit, QVBoxLayout, QWidget
from PyQt5.QtCore import pyqtSignal, pyqtSlot
import sys
import other_module
class MyWidget(QWidget):
textChanged = pyqtSignal(str)
def __init__(self, parent=None):
super(MyWidget, self).__init__(parent)
self.line_edit = QLineEdit(self)
layout = QVBoxLayout(self)
layout.addWidget(self.line_edit)
self.line_edit.textChanged.connect(self.on_textChanged)
@pyqtSlot(str)
def on_textChanged(self, text):
self.textChanged.emit(text)
if __name__ == "__main__":
app = QApplication(sys.argv)
widget = MyWidget()
widget.show()
other = other_module.OtherClass()
widget.textChanged.connect(other.on_textChanged)
sys.exit(app.exec_())
# file: other_module.pyfrom PyQt5.QtCore import QObject, pyqtSlot
class OtherClass(QObject):
@pyqtSlot(str)
def on_textChanged(self, text):
print(f"Text changed: {text}")
以上是 qt界面如何同多个python程序相连接? 的全部内容, 来源链接: utcz.com/p/938956.html