我無法通過單擊按鈕將一行文本從窗口中的一個LineEdit傳遞到另一個窗口中的lineEdit時出現問題。我已經閱讀了多個示例,但似乎無法讓信號在第二個窗口上顯示。這是我正在創建的應用程序的一個非常配對的版本。我希望你們都能看到我不能做的事情。第二個窗口將在第一個窗口中的按鈕被點擊時打開,但沒有任何反應。在使用PyQt連接Qt中的兩個窗口時使用插槽和信號時遇到的問題
感謝
import sys
from PyQt4 import QtGui, QtCore
class Window1(QtGui.QMainWindow):
textSaved = QtCore.pyqtSignal(str)
def __init__(self):
super(Window1,self).__init__()
self.setGeometry(50,50,500,300)
self.setWindowTitle("PyQt Signal Signal Emitter")
self.home()
def home(self):
self.__line=QtGui.QLineEdit("howdy", self)
self.__line.move(120,100)
btn=QtGui.QPushButton("Send Signal", self)
btn.clicked.connect(self.send_signal)
btn.move(0,100)
self.show()
def send_signal(self):
signal=self.__line.displayText()
self.textSaved.emit(signal)
self.Window2=Window2()
self.Window2.show()
class Window2(QtGui.QMainWindow):
def __init__(self):
super(Window2,self).__init__()
self.setGeometry(50,50,500,300)
self.setWindowTitle("PyQt Signal Slot Receiver")
self.home()
def home(self):
self.line_response=QtGui.QLineEdit(None, self)
self.line_response.move(120,100)
self.__main=Window1()
self.__main.textSaved.connect(self.showMessage)
@QtCore.pyqtSlot()
def showMessage(self, message):
self.bigbox(self, "The message is:"+ message)
self.show()
def run():
app=QtGui.QApplication(sys.argv)
GUI=Window1()
sys.exit(app.exec_())
run()
'Window2'只有在'textSaved'信號已經發出後才創建。因此,在發射時,沒有聽衆,信號被忽略。 – arhzu
我在Window1類之前移動了Window2類,並在send_signal定義中的發射信號之前移動了 self.Window2 = Window2() 但仍然沒有運氣。 –