Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[python] Qt a data (text) z widgetů

0 views
Skip to first unread message

Martin Stiborský

unread,
Apr 29, 2008, 11:45:43 AM4/29/08
to Konference PyCZ
Zdravím, opět otravuju, ale už mám toho plné brejle ..
Co se týče procházení taby, na které jsem se včera ptal, všechno
funguje, jsem spokojen ... Teď když umím každý tab zvlášť ve smyčce
zpracovat, tak bych potřeboval z widgetů v tabu (QTextEdit, QLineEdit,
QRadioButton, atd.) vytáhnout jejich data, většinou zadaný text. Jak
tohle teoreticky řešit ? Opět jsem se k jednotlivým widgetům dohrabal
přes objekt tabu , který můžu předat zpracovávající funkci a
children(), ale je to prasárna.

Rád bych uvedl konkrétní kód, ale to bych sem musel zkopírovat celý
program. Pokud by se někdo chtěl kouknout, tak SVN je zde:
http://code.google.com/p/moodleed/
Je tam hafo chyb, chybí dodělat možnost překladu, musím předělat GUI,
no práce je dost ..

Úplně mi bude stačit teoretická rada, ať se ještě trochu potrápím ..

--
S pozdravem
Martin Stiborský

Jabber: st...@njs.netlab.cz
ICQ: 224-065-849

Martin Stiborský

unread,
Apr 29, 2008, 12:40:19 PM4/29/08
to Konference PyCZ
Jasně, kouknu na to a uvidím. Díky.

Petr Vaněk

unread,
Apr 29, 2008, 12:15:03 PM4/29/08
to pyt...@py.cz
On út 29. dubna 2008, Martin Stiborský wrote:
> Zdravím, opět otravuju, ale už mám toho plné brejle ..
> Co se týče procházení taby, na které jsem se včera ptal, všechno
> funguje, jsem spokojen ... Teď když umím každý tab zvlášť ve smyčce
> zpracovat, tak bych potřeboval z widgetů v tabu (QTextEdit, QLineEdit,
> QRadioButton, atd.) vytáhnout jejich data, většinou zadaný text. Jak
> tohle teoreticky řešit ? Opět jsem se k jednotlivým widgetům dohrabal
> přes objekt tabu , který můžu předat zpracovávající funkci a
> children(), ale je to prasárna.

mohla by pomoct metoda inherits(), ktera je implementovana ve vsech potomcich
QObjectu. Je ale treba dodrzet presnou hierarchii trid.

> Rád bych uvedl konkrétní kód, ale to bych sem musel zkopírovat celý
> program. Pokud by se někdo chtěl kouknout, tak SVN je zde:
> http://code.google.com/p/moodleed/
> Je tam hafo chyb, chybí dodělat možnost překladu, musím předělat GUI,
> no práce je dost ..
>
> Úplně mi bude stačit teoretická rada, ať se ještě trochu potrápím ..

spis bych se zamyslel, jestli by opravdu nestalo za to drzet typy "otazek"
jeste nekde jinde s priznakem "co je to zac" - v nejake dalsi strukture - nez
jen v QTabWidgetu. Tim by pak odpadlo tohle zjistovani.

Nebo si vytvor pro typ otazky vlastni tridu/widget a to uz pak inherits()
snadno poznas.

A kdyz uz jsme u toho, tak mi stosovani otazek do tabwidhetu neprjde 2x
stastne. Spis bych si predstavil neco jako:

[seznam/list]splitter[widgety/QStackedWidget?]

ale to uz je opravdu jen na Tobe.

petr

signature.asc

Martin Stiborský

unread,
Apr 29, 2008, 2:06:49 PM4/29/08
to Konference PyCZ
Ok, inherits se do budoucna bude hodit znát ... akorát nevím jak mi to
pomůže ve sběru dat z widgetů ...

Petr Vaněk

unread,
Apr 29, 2008, 2:24:38 PM4/29/08
to pyt...@py.cz
On út 29. dubna 2008, Martin Stiborský wrote:
> Ok, inherits se do budoucna bude hodit znát ... akorát nevím jak mi to
> pomůže ve sběru dat z widgetů ...

treba:
if obj.inherits('QTextEdit'):
data = obj.text()
# atd.

ale jak rikam, udelal bych samostatnou tridu pro kazdy typ otazky a vtipne
vyuzil polymorfismu

class Odpoved(QWidget):
def __init__(self, parent):
QWidget.__init__(self, parent)
def getData(self):
return 'tohle je virtualni metoda, ktera bude "pretizena"

class KratkaOdpoved(Odpoved):
def __init__(atd.)
...
nastaveni widgetu, layoutu atd.
...
def getData(self):
return self.odpovedTextEdit.toPlainText()

class VicenasobnyVyber(Odpoved):
def __init__(atd.)
...
nastaveni widgetu, layoutu atd.
...
def getData(self):
vrat nejaka "vicenasobna" data

...
a v kodu:
vysledek = currentWidget.getData()

tim odpadne zjistovani "typu" objektu. Samozrejme musis nejak navrhnout
navratovou hodnotu, aby se s ni pracovalo transparentne... ale s tim si
poradis.

p.

signature.asc

Martin Stiborský

unread,
Apr 29, 2008, 2:34:19 PM4/29/08
to Konference PyCZ
Parádní .. z toho kolik toho neumím a jak krátkozraká řešení vymýšlím
je mi blbě.

Díky ti.

0 new messages