PyQt5——多窗口之间数据处理

当程序有多个窗口时,必须要解决的一个问题是窗口之间的数据传输,先学习一个简单的单一窗口不同控件之间的数据传输。实际上这种使用方法前面多次使用过。

功能:改变滑块值LCD值会相应改变

# ———创建时间:2019。2.19———
# 窗口之间数据传输

import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
import qdarkstyle

class WinFrom(QWidget):
    def __init__(self):
        super(WinFrom, self).__init__()
        self.initUI()

    def initUI(self):
        # 创建滑块和lcd控件
        lcd=QLCDNumber(self)
        sider=QSlider(Qt.Horizontal,self)
        
        #布局
        vbox=QVBoxLayout()
        vbox.addWidget(lcd)
        vbox.addWidget(sider)
        self.setLayout(vbox)

        sider.valueChanged.connect(lcd.display)

        self.setGeometry(300,300,350,150)
        self.setWindowTitle("滑动滑块改变lcd数值")

if __name__ == "__main__":
    app=QApplication(sys.argv)
    form=WinFrom()
    form.show()
    app.setStyleSheet(qdarkstyle.load_stylesheet_pyqt5())
    sys.exit(app.exec_())

运行结果:

注:乍一看好像没有发射函数emit(),只是因为ValueChange()当slider发生改变时,会自动发射信号

总结,多窗口之间数据传输解决方法:

  1. 主窗口获得子窗口中控件属性值,下一篇博客介绍
  2. 通过信号与槽传输,如上面例子

猜你喜欢

转载自blog.csdn.net/qq_41895747/article/details/87694817