qt界面如何同多个python程序相连接?

qt界面如何同多个python程序相连接?

主要是开发一个界面,将界面代码同其他的py文件相互连接。
或者将界面代码里面的class中的被赋值的变量拿出来放到其他的py文件里。
界面的作用是在lineEdit里面输入,然后再输出。把lineEdit的值赋值给变量。但是在其他py文件里面无法从外部直接使用这个变量。
如:da=self.lineEdit.text(),在lineEdit框中输入内容会赋值给class中的da变量。但是在其他py文件却无法使用da变量。在其他py文件里无法将每次在lineEdit中的值赋值给da。在其他py文件里直接调用da变量失败


回答:

用信号和槽:

# file: main.py

from 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.py

from 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

回到顶部