Cообщение
#380  ahawk
1
+22
17 Сен 2010
не пятничная тема, но всё же. До понедельника нужно решить проблему: как передать переменную из класса в класс? Вариант с использованием глобальных переменных и через ссылку на поток не проходят(варианты работают, но использовать нельзя, нужно напрямую).

Исходные данные:
Есть 2 формы написанные в Qt, наследники от QDialog. Первая форма стартует при старте проги, вторая допустим по клику на кнопку (при каждом клике новая форма). Нужно передать переменную. Исходники могу скинуть.

Вот листинг главной проги:
#! /usr/bin/env python
#-*- coding: koi8-r -*-
from form1 import *
from form2 import *
import qt,sys

class form1(Form1):
def __init__(self,parrent=None):
Form1.__init__(self,parrent)
self.connect(self.pushButton1,SIGNAL('clicked()'),self.qwe)

def qwe(self):
abc=123
dlg=form2(self)
dlg.show()
dlg.exec_loop()

class form2(Form2):
def __init__(self,parrent=None):
Form2.__init__(self,parrent)
# print abc

########################################
if __name__=='__main__':
app=QApplication(sys.argv)
codec=QTextCodec.codecForName('KOI8-R')
QTextCodec.setCodecForTr(codec)
QTextCodec.setCodecForCStrings(codec)
dlg=form1()
dlg.show()
dlg.exec_loop()
#######################

вкратце: нужно переменную abc передать из функции qwe в класс form2. Если понадобится могу скинуть файлы форм и главный файл.
Заранее благодарю.

Ну и с ТЯПНИЦЕЙ!
#380  ahawk
2
0
17 Сен 2010
табуляция съехала, но думаю листинг читаемый :)
3
+42
17 Сен 2010
Как говорится в анекдоте-Папа....А с кем ты разговариваешь?))
#380  ahawk
4
0
17 Сен 2010
фух, спасибо! Проблему решил, правда не на прямую )))
Если кому интересно будя то: На второй форме есть скрытое поле, туда пишем и в самой форме2 оттуда читаем ;)
#380  ahawk
5
0
17 Сен 2010
3 )))) Сам с собой )))
#168  Vinc
6
+18
17 Сен 2010
Жесть Димон... :) С пятницей конечно, но... а с кем ты разговаривал?
7
+10
17 Сен 2010
Задача решена по принципу, чтоб работало. Но все же лично меня интересует грамотное решение данной проблемы:
передача переменной из одного класса в другой без ссылок на главную форму/поток и всяческих подобных решений.
#141  vitep
8
+10
17 Сен 2010
я короче понимаю это )) но не сегодня))) уж извентисяй))
9
+13
17 Сен 2010
Грамотное решение заключается в разработки GUI на Java или .NET, а не на экзотических поделковых приблудах типа PyQt :)))

ПыСы! Тока без обид, это ничего личного, просто мое толстое мохнатое ИМХО :)))
#380  ahawk
10
+11
17 Сен 2010
9 конечно без обид. На это только могу ответить: на чем просит заказчик - на том и пишем )))
11
+16
17 Сен 2010
10 Ну, против желания заказчика не попрешь, это понятно.
12
+10
17 Сен 2010
11 =))) ага =)))
13
+10
18 Сен 2010
Проблема решена =))) Контакт - великая весчь =)))
14
+10
18 Сен 2010
Решение:...
def qwe(self):
abc=123dlg=form2(abc,self)
dlg.show()
dlg.exec_loop()

class form2(Form2):
def __init__(self,ab,parent=None):
Form2.__init__(self,parent)
...
15
+17
18 Сен 2010
всё так легко ...захватывает,а мона точно такую только с перламутровыми пуговками?:)
16
+10
18 Сен 2010
=)))
#333  Akelon
17
0
18 Сен 2010
Ребята! Всё так легко ... вы как дети,если ,что обращайтесь.Я эти задачи решаю от скуки :)
18
0
18 Сен 2010
прочитал первый пост, за 3 минуты накатал че писать - а Оля в 14-м посте тоже самое написала)))
#333  Akelon
19
0
18 Сен 2010
18. Я решил эту задачку за полминуты ...
#333  Akelon
20
0
18 Сен 2010
18. Лёха! Понятно почему ты решил эту задачу за 3 минуты,учитывая твоё тяжёлое детство ...
это сказалось на твои умственные способности,хотя говоря про твои умственные способности я лукавлю и преувеличиваю =)))