0
Существуют две отдельные формы QT Designer. Оба имеют две кнопки. Когда нажимается кнопка в форме1, открывается форма2. Как отправить сообщение в форму1 при нажатии кнопки в форме2. Все работает правильно, но сообщение.Связь между двумя независимыми QWidget
form1.py
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import form2 #Import for Signal
from form2 import * # Import for UI
RegForm = "regform.ui"
Ui_RegForm, QtBaseClass = uic.loadUiType(RegForm)
class RegForm(QtGui.QMainWindow, Ui_RegForm):
def __init__(self,parent = None):
super(RegForm,self).__init__(parent,flags = Qt.WindowCloseButtonHint)
self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
self.setupUi(self)
self.unHideBtn.clicked.connect(self.showUnhideForm)
self.myForm = form2.UnhideForm(self) #For Signal
self.myForm.mySignal.connect(self.receiveSignal) #Signal
def receiveSignal(self, message):
QtGui.QMessageBox.information(self, 'Message', message)
def showUnhideForm(self):
sub = UnhideForm(self)
sub.show()
form2.py
from PyQt4 import QtCore, QtGui, uic
from PyQt4.QtGui import *
from PyQt4.QtCore import *
UnhideForm = "unhide.ui"
Ui_UnhideForm, QtBaseClass = uic.loadUiType(UnhideForm)
class UnhideForm(QtGui.QMainWindow, Ui_UnhideForm):
mySignal = QtCore.pyqtSignal(str)#Signal
def __init__(self,parent = None):
super(UnhideForm,self).__init__(parent,flags = Qt.WindowCloseButtonHint)
self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
self.setupUi(self)
# On clicking emit a signal
self.quitBtn.clicked.connect(self.emitSignal)
# And Close the form
self.quitBtn.clicked.connect(self.close)
def emitSignal(self):
if(not self.signalsBlocked()):
self.mySignal.emit("Yes")
Form2 открывается и закрывается должным образом, когда quitBtn является cliked. Но никакое сообщение не отправляется обратно в Form1. Я новичок в PyQt. Пожалуйста помоги. Спасибо.
Wow It works. Спасибо, Субин. Большое спасибо –
Если это решает вашу проблему, вам рекомендуется принять ответ. Я бы предпочел небольшое объяснение в ответе на то, что было сделано. – mdurant