начинающий Python-кодер здесь. Я создал два основных окна в QT Designer. В первом окне у меня есть выпадающий список (cb) с тремя элементами и кнопкой (Button1), а в другом окне - LineEdit (правка). Когда я нажимаю кнопку в первом окне, я хочу отобразить текст (текущего элемента, выбранного в поле со списком) в LineEdit, который я создал во втором главном окне.
Я следил за несколькими примерами онлайнно я не могу найти то, что работает для меня. Все примеры выполняются путем построения окон в коде (в отличие от Qt Designer). Люди, которые проектируют свои окна в Qt designer, похоже, сталкиваются с той же проблемой, что и я.
Я был бы очень признателен, если бы кто-нибудь показал мне, как отправить сигнал с окнами, разработанными в Qt designer. Это действительно решило бы большую проблему, которую я получил в настоящее время, и я могу реализовать ту же стратегию в других областях моего кода.
import sys
from PyQt5.QtCore import pyqtSignal
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.uic import loadUi
class First_Window(QMainWindow):
got_signal = pyqtSignal(str)
def __init__(self):
super(First_Window,self).__init__()
loadUi('first_window.ui',self)
self.setWindowTitle('First Window')
self.Button1.clicked.connect(self.On_buttonclick_clicked)
def On_buttonclick_clicked(self):
self.got_signal.emit(self.cb.currentText())
class Second_Window(QMainWindow):
def __init__(self):
super(Second_Window, self).__init__()
loadUi('second_window.ui', self)
self.setWindowTitle('Second Window')
self.dcc = First_Window()
self.dcc.got_signal.connect(self.show_it)
def show_it(self, the_signal):
self.edit.setText(the_signal)
print(the_signal)
if __name__ == "__main__":
app = QApplication(sys.argv)
fw = First_Window()
fw.show()
sw = Second_Window()
sw.show()
sys.exit(app.exec_())
Этот код является упрощенной версией кода, над которым я работаю, но ониподелиться той же проблемой.