Форум сайта python.su
Есть 2 файла, А и В. В описано все, что касается GUI, когда А файл импортирует В. создавал в Designer, конвертировал в питоновский код и позже правил как необходимо было. В модуле В реализовано диалоговое окно аутентификации. В зависимости от того, кто логинится, должно быть то или иное последующее окно. Упрощая примерно так все будет:
from PyQt4 import QtCore, QtGui import sys try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: _fromUtf8 = lambda s: s class Ui_Dialog(QtGui.QDialog): def __init__(self, fname, fhost, fport): super(Ui_Dialog, self).__init__() def setupUi(self, Dialog): ................ QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("rejected()")), Dialog.close) QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("accepted()")), lambda :self.dialogResult(Dialog)) QtCore.QMetaObject.connectSlotsByName(Dialog) def showDialogError(self, text): QtGui.QMessageBox.critical(self, self.toUtf("Ошибка"), self.toUtf(text), QtGui.QMessageBox.Ok, QtGui.QMessageBox.Ok) def dialogResult(self, Dialog): # производятся некоторые действия и пусть переменная "ааа" принимает значение "1" Dialog.close() def toUtf(self, text): return QtGui.QApplication.translate("Dialog", text, None, QtGui.QApplication.UnicodeUTF8) def initGui(): app = QtGui.QApplication(sys.argv) MainDial = QtGui.QDialog() form = Ui_Dialog() form.setupUi(MainDial) return app, form, MainDial
Отредактировано dreamer-s (Окт. 6, 2012 18:57:07)
Офлайн
У QDialog есть метод setResult, есть вам достаточно int. Если нет, то можно так:
def dialogResult(self, Dialog):
# производятся некоторые действия и пусть переменная "ааа" принимает значение "1"
self.aaa = 1
Dialog.close()
Отредактировано truporez (Окт. 6, 2012 23:13:58)
Офлайн
оу, спасибо за setResult, но да, там строки и с self.aaa = 1 (self.aaa = “qwerty”) все равно непонятно
Офлайн
эээм…. До меня дошло. Спасибо огромное. Да, я не подумал о self. Все получилось
Офлайн