gpt4 book ai didi

python - PyQT4 - 2 个窗口之间的通信

转载 作者:行者123 更新时间:2023-12-01 06:00:38 25 4
gpt4 key购买 nike

我在 PyQt 中的 2 个窗口之间通信时遇到问题。

主窗口 = UI_Form(MyForm 类)附加窗口= UI_Employee(Employee类)

当我单击 AddTextButton (Ui_Employee) 时,我想在 LineTextEdit (UI_Form) 中设置文本这是我的代码。

import sys
from PyQt4 import QtCore, QtGui

from Form import Ui_Form
from Window import Ui_Employee

class MyForm(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.ui = Ui_Form()
self.ui.setupUi(self)

QtCore.QObject.connect(self.ui.AddButton,QtCore.SIGNAL("clicked()"), self.add)

def add(self):
self.Employee = Employee(self)
self.Employee.show()


class Employee(QtGui.QMainWindow):
def __init__(self,parent=None):
QtGui.QWidget.__init__(self,parent)
self.ui = Ui_Employee()
self.ui.setupUi(self)

QtCore.QObject.connect(self.ui.AddRowButton,QtCore.SIGNAL('clicked()'), self.addText)

def addText(self):
self.Form = MyForm()
self.Form.ui.textEdit.setText('someText')

if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = MyForm()
myapp.show()
sys.exit(app.exec_())

我在 addText 方法中遇到了问题。第一行和第二行将被忽略。我不知道为什么。

最佳答案

在您的方法Employee.addText中,您创建一个新的MyForm。这可能不是您想要的。您可以通过 self.parentWidget()Employee 内部访问原始 myapp

class Employee(QtGui.QMainWindow):

def addText(self):
self.parentWidget().ui.textEdit.setText('someText')

关于python - PyQT4 - 2 个窗口之间的通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10649354/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com