Форум сайта python.su
Всем привет.
По-тихоньку осваиваю питон, и который день ломаю голову над проблемой - ничего чтобы помогло не нашел и надеюсь на вашу помощь, подсказки, и просто объяснения что к чему.
Имеется главная форма из которой вызывается дочерняя (форма некоторых настроек). При изменении данных на дочерней и нажатии на кнопку сохранить эта форма должна передавать измененные значения в главную и закрываться.
На данный момент есть следующее:
Форма настроек:
class NetEdit(QtGui.QDialog):
def __init__(self, parent=None):
QtGui.QDialog.__init__(self, parent)
self.net_ui = netform.Ui_Dialog()
self.net_ui.setupUi(self)
self.net_ui.pushButton_4.clicked.connect(self.save)
#dic это переменная обновленное значение
#которой необходимо отправить в главную форму
self.dic = 10
def save(self):
self.dic = int(self.net_ui.lineEdit.text())
#в этом месте я думал генерировать сигнал с новым значением
#но как его отправить в родительский класс чутьчуть не понимаю
class MainWindow(QtGui.QDialog):
def __init__(self, parent=None):
QtGui.QDialog.__init__(self,parent)
self.main_ui = mainform.Ui_Dialog()
self.main_ui.setupUi(self)
self.main_ui.pushButton_5.clicked.connect(self.netedit)
self.ne = NetEdit(self)
self.dic = 5 #после дочерней формы эта переменная должна обновится
def netedit(self):
self.ne.setWindowModality(QtCore.Qt.WindowModal)
self.ne.show()
Офлайн
Так?
parent.dic = self.dic
Офлайн
from PyQt4 import Qt as qt
import sys
app = qt.QApplication(sys.argv)
mw = qt.QMainWindow()
fr = qt.QFrame()
fr.lt = qt.QVBoxLayout()
fr.te = qt.QTextEdit()
fr.btn = qt.QPushButton("Dialog")
fr.setLayout(fr.lt)
fr.lt.addWidget(fr.btn)
fr.lt.addWidget(fr.te)
mw.setCentralWidget(fr)
def click(checked):
text, ok = qt.QInputDialog.getText(fr,"Title","Text")
if ok: fr.te.insertPlainText(text+"\n")
fr.btn.clicked.connect(click)
mw.show()
app.exec_()
Офлайн
Sotericспасибо, то что надо. только нужно так:
parent.dic = self.dic
self.parent = parent
...
self.parent.dic = self.dic
Отредактировано (Март 10, 2011 16:06:02)
Офлайн