Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 5, 2012 20:44:13

dreamer-s
Зарегистрирован: 2012-08-13
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQT4, передача данных с сигнала

Есть 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

как мне реализовать, чтобы переменная “ааа” была видна в initGui, чтобы можно было ретурнуть ее. Ее значение должно использоваться в модуле А. Я надеюсь, что не запутанно описал. Заранее благодарен

Отредактировано dreamer-s (Окт. 6, 2012 18:57:07)

Офлайн

#2 Окт. 6, 2012 23:13:36

truporez
От:
Зарегистрирован: 2009-05-08
Сообщения: 266
Репутация: +  6  -
Профиль   Адрес электронной почты  

PyQT4, передача данных с сигнала

У QDialog есть метод setResult, есть вам достаточно int. Если нет, то можно так:

def dialogResult(self, Dialog):
# производятся некоторые действия и пусть переменная "ааа" принимает значение "1"
self.aaa = 1
Dialog.close()



Отредактировано truporez (Окт. 6, 2012 23:13:58)

Офлайн

#3 Окт. 7, 2012 01:02:08

dreamer-s
Зарегистрирован: 2012-08-13
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQT4, передача данных с сигнала

оу, спасибо за setResult, но да, там строки и с self.aaa = 1 (self.aaa = “qwerty”) все равно непонятно

Офлайн

#4 Окт. 7, 2012 01:04:13

dreamer-s
Зарегистрирован: 2012-08-13
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQT4, передача данных с сигнала

эээм…. До меня дошло. Спасибо огромное. Да, я не подумал о self. Все получилось

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version