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
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
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.
Díky ti.