Форум сайта python.su
0
Доброго времени суток. Совсем новичек.
Python 2.7, PyQT4
Пытаюсь разобраться с сигналами в PyQT4. Если внутри класса проблем не возникает, то из одного в другой пробросить сигнал не получается. Набросал небольшой скрипт, на нем и пытаюсь это дело опробовать.
#!/usr/bin/env python from PyQt4 import QtCore, QtGui from PyQt4.QtGui import * from PyQt4.QtCore import Qt import sys class MainWind(QWidget): def __init__(self, parent=None): super(MainWind, self).__init__(parent) self.setWindowFlags(QtCore.Qt.FramelessWindowHint) self.resize(480, 80) self.label_1 = QtGui.QLabel("11111111") self.button_ok = QtGui.QPushButton("ok") self.button_e = QtGui.QPushButton("exit") self.vlayout = QtGui.QVBoxLayout() self.vlayout.addWidget(self.label_1) self.vlayout.addWidget(self.button_ok) self.vlayout.addWidget(self.button_e) self.setLayout(self.vlayout) self.button_ok.clicked.connect(self.operateval_show) self.button_e.clicked.connect(QtGui.qApp.quit) oper = OperateVal() oper.okClicked.connect(self.changetext) def operateval_show(self): win = OperateVal(self) win.show() def changetext(self): self.label_1.setText('22222222222222') class OperateVal(QWidget): okClicked = QtCore.pyqtSignal() def __init__(self, parent=None): super(OperateVal, self).__init__(parent) self.setWindowFlags(Qt.Dialog) self.resize(500, 50) self.button_e = QtGui.QPushButton("exit") self.button_ok = QtGui.QPushButton("ok") self.vlayout = QtGui.QVBoxLayout() self.vlayout.addWidget(self.button_ok) self.vlayout.addWidget(self.button_e) self.setLayout(self.vlayout) self.button_ok.clicked.connect(self.okclick) self.button_e.clicked.connect(self.close) def okclick(self): self.okClicked.emit() if __name__ == "__main__": import sys app = QApplication(sys.argv) window = MainWind() window.show() sys.exit(app.exec_())
Отредактировано noob_in_py (Окт. 3, 2018 18:22:52)
Офлайн
186
def operateval_show(self): win = OperateVal(self) win.okClicked.connect(self.changetext) win.show()
Офлайн