Есть MainWindow. На нем есть кнопка Btn и label_СС. По нажатию на кнопку открывается отдельный виджет, в котором есть tableWidget и label_2. Через метод cellClicked значение в ячейке таблицы спокойно передаётся внутри виджета в label_2 (в виде переменной внутри функции).
Но не могу понять как передать это значение на label_СС так же по нажатию на ячейку через сигнал. Перепробовал различные комбинации (и передовая в сигнале переменную и то что ниже) - ничего не работает. Вопрос почему? Или сигнал между классами как-то не так работает?
Вот код (убрал всё лишнее)
import sys
from PyQt5.QtWidgets import *
from PyQt5 import uic
from PyQt5.QtCore import pyqtSignal
class Main(QMainWindow):
def __init__(self):
super().__init__()
uic.loadUi("CancerRiskAssesment_main.ui", self)
self.B_CC.clicked.connect(self.show_cancer_ch)
self.dialog22 = Cancerogen_choicewindow()
self.dialog22.mySignal.connect(self.changelabel)
def show_cancer_ch(self):
self.dialog = Cancerogen_choicewindow()
self.dialog.show()
def changelabel(self):
self.label_CC.setText(self.dialog22.SF_transmit)
class Cancerogen_choicewindow(QWidget):
SF_transmit = None
mySignal = pyqtSignal()
def __init__(self, parent=None):
super().__init__(parent)
uic.loadUi("Cancerogen_choice.ui", self)
self.tableWidget.cellClicked.connect(self.cellclick)
self.pushButton11.clicked.connect(self.send_data)
def cellclick(self, row, column):
item = self.tableWidget.item(row, column)
self.SF = item.text()
self.label_2.setText(self.SF)
def send_data(self):
self.SF_transmit = self.SF
self.mySignal.emit()
self.close()
def main():
app = QApplication(sys.argv)
window = Main()
window.show()
app.exec_()
if __name__ == '__main__':
main()