亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

pyqt5子窗口數據傳遞的方法是什么

小億
121
2024-01-12 22:12:23
欄目: 編程語言

在PyQt5中,可以通過使用信號和槽機制實現子窗口數據傳遞。具體步驟如下:

  1. 定義一個信號類,用于傳遞數據。在子窗口類中添加一個信號對象,例如:dataChanged = QtCore.pyqtSignal(str)

  2. 在子窗口中需要傳遞數據的地方,使用信號對象發出信號,例如:self.dataChanged.emit(data)

  3. 在主窗口中連接子窗口的信號和槽。在創建子窗口對象后,使用connect()方法將子窗口的信號連接到主窗口的槽函數上,例如:subwindow.dataChanged.connect(self.handleDataChanged)

  4. 在主窗口中定義槽函數,用于接收子窗口傳遞的數據,例如:def handleDataChanged(self, data):

這樣,當子窗口發出信號時,主窗口中的槽函數就會被調用,可以在槽函數中獲取傳遞的數據并進行處理。

完整示例代碼如下:

from PyQt5 import QtCore, QtGui, QtWidgets

class SubWindow(QtWidgets.QMainWindow):
    dataChanged = QtCore.pyqtSignal(str)
    
    def __init__(self):
        super().__init__()
        self.button = QtWidgets.QPushButton("傳遞數據", self)
        self.button.clicked.connect(self.sendData)
        
    def sendData(self):
        data = "Hello World"
        self.dataChanged.emit(data)
        

class MainWindow(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()
        self.subwindow = SubWindow()
        self.subwindow.dataChanged.connect(self.handleDataChanged)
        
    def handleDataChanged(self, data):
        print(data)
        

if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

在這個示例中,子窗口中的按鈕被點擊后會發送一個dataChanged信號,并傳遞字符串"Hello World"。主窗口中的槽函數handleDataChanged會接收到這個信號,并打印出傳遞的數據。

0
沙洋县| 宁海县| 淮安市| 北川| 唐山市| 新余市| 洞头县| 阳城县| 淳化县| 重庆市| 百色市| 盘山县| 罗甸县| 常熟市| 留坝县| 怀宁县| 江永县| 怀柔区| 潢川县| 阳朔县| 平安县| 时尚| 凌源市| 扎赉特旗| 涡阳县| 乌兰浩特市| 苏尼特右旗| 上虞市| 英德市| 怀化市| 青阳县| 石家庄市| 讷河市| 靖远县| 乡城县| 田阳县| 峡江县| 乌鲁木齐县| 湖南省| 夏邑县| 旅游|