Archiv verlassen und diese Seite im Standarddesign anzeigen : QT/KDE Zusammenspiel evtl doppelposting verzeihung da neu hier
microdigi
13-07-2002, 12:05
Zusammenspiel zwischen QT-designer und KDE-code.
Ich habe ein dialog-widget erstellt, in dem mehrere buttons, listboxen...
untergebracht sind. jedes dieser elemente hat natuerlich einen individuellen namen.
ich kenne auch die dialog.ui.h datei, in dem slots/signale definiert werden koennen.
das eigentlichen problemchen allerdings liegt ganz woanders.
wenn ich von dem dialog eine eigene klasse ableite,
dann muesste ich doch auch zugriff haben zu den darin befindlichen namen
und widerum deren funktion(en), die sie von hause aus erbten.
die dialog.h (wird ja beim compilieren erzeugt)
beinhaltet alle instanzen aus meinem dialog layout.
und diese *.h binde ich in meine eigene neu abgeleitete class mit ein (#include).
syntaxmaessig kriege ich also auch die vererbung / verbindung zu meinem code hin,
aber bei der laufzeit gibts einen segment-fehler zu einer beliebigen funktion eines dieser elemente.
zb. listbox.clear() (oder listbox->clear() ).
offensichtlich existiert das angsprochene element nicht, oder an einer unzugaenglichen stelle.
wo mag mein denkfehler sein?
absicht des programmcodes ist es,
text aus einer datei auszulesen und dann in eine listbox des gesamt-dialogs einzustellen mit listbox.insertItem ("...").
danke fuer jeden hinweis.
gruss - digi (60++)
ps: bin umgestiegen von VC-studio MFC auf linux.
10 jahre m$ sind mehr als genug.
:eek:
anda_skoa
13-07-2002, 13:31
Hi!
Wenn es korrekt kompiliert und linkt ist das eigenartig.
Segfaults beim Zugriff auf Dialogelement hatte ich noch nie.
Hast du in deinem Konstructor den der Basisklasse angegeben?
MyDialog::MyDialog(QWidget* parent, const char* name, bool modal)
: MyDialogBase(parent, name, modal)
Auf Widgetelemente greift man immer mit -> zu, Widgets werden ja am Heap erzeugt (mit new), sonst wären sie am Ende des Konstructors nicht mehr da :)
Wenn es weiterhin nicht geht, kannst du h und cpp deiner Klasse und das ui der Basisklasse als Attachment posten, dann seh ich mir das an.
Noch eine Frage: verwendest du KDevelop oder das kapptemplate aus kdesdk?
Oder handgeschrieben Makefiles?
Ciao,
_
microdigi
13-07-2002, 15:22
zunaechst mal herzlichen dank ob der fixen antwort.
ich denke, ich habe einen artikel gefunden in der mitgelieferten kde-docu.
den studiere ich gerade. scheint mir irgendwie logisch zu sein.
ich habe aber etwas zeit damit, es brennt (noch) nicht.
und ich nehme mir die zeit. habe naemlich festgestellt, dass man IMMER unter
zeitdruck GESETZT wird, sofern man sich setzen laesst. und die zeit ist seit
einigen monaten gewollt vorbei. und siehe da: es funktioniert auch.
ich habe gerade den gesamten code eingemuellt,
und ich starte nochmal durch. war ja nicht so viel.
der dialog bleibt ja erhalten.
ich habe suse 8.0,
und ich nehme natuerlich das was am 'automatischsten' funktioniert,
also keine hand- makes, die enden normalerweise im chaos
bei einem groesseren projekt (wie es dieses verspricht zu werden:
totale zugangs/berechtigungs/protokoll verwaltung).
und ich staune nur, wer von wem kopiert hat mit dem ide.
entweder m$ von den trolls oder umgekehrt.
einige kinkerlitzchen beim handling koennte man noch aendern
(bswp die anordnung der source code fenster schneller zugaenglich
machen, und einen button zum direkten schliessen eines code-fensters),
aber ich fuehle mich hier SOFORT heimisch. als wenn ich
nie etwas anderes gemacht haette, als mit qt/kde zu programmieren.
aber es war leider nicht so; ich habe ueber zehn jahre schwerste
arbeit und bitterste erfahrung(en) mit dem m$-schrott hinter mir.
und dabei zusaetzlich 1/4 mio mark eingebuttert.
und ich denke, ich habe mein scherflein dazu beigetragen,
dass es den 'leuten' in redmund gut geht- wuensche denen
ein langes leben.
du kannst deine gesamten ersparnisse darauf verwetten,
dass ich garantiert wieder hierhin komme.
:)
gruss - digi
0700MICRODIGI
anda_skoa
13-07-2002, 15:35
Original geschrieben von microdigi
zunaechst mal herzlichen dank ob der fixen antwort.
Pah, 1,5 Stunden nennt der fix :p
Da hast meine normalen Antwortzeiten noch nicht gesehen :D
und ich staune nur, wer von wem kopiert hat mit dem ide.
entweder m$ von den trolls oder umgekehrt.
einige kinkerlitzchen beim handling koennte man noch aendern
(bswp die anordnung der source code fenster schneller zugaenglich
machen, und einen button zum direkten schliessen eines code-fensters),
Über Qt Designer al IDE kann ich gar nix sagen, ich fügde den Code immer erst in meiner Subklasse hinzu.
Alte Gewohnheit von Qt2, da konnte man noch keinen Code in Designer eingeben :)
Außerdem bearbeitet man dann seinenn Quellcode immer mir dem selben Editor.
du kannst deine gesamten ersparnisse darauf verwetten,
dass ich garantiert wieder hierhin komme.
:)
Freut mich zu hören :)
Ciao,
_
microdigi
13-07-2002, 15:47
Über Qt Designer al IDE kann ich gar nix sagen, ich füge den Code immer erst in meiner Subklasse hinzu.
Alte Gewohnheit von Qt2, da konnte man noch keinen Code in Designer eingeben
Außerdem bearbeitet man dann seinenn Quellcode immer mir dem selben Editor.
da erzaehlst du mir nix neues,
ich faende es 'irgendwie unheimlich', direkt in den designer
noch code einzuhacken.
m.e. MUSS das in die hose gehen; denn bei GROSSEN! projekten
hat man m.e. schon 'gestern' den ueberblick verloren.
und dann wird mit der heissen nadel gefummelt.
deswegen hab ich ja auch die herausforderung:
den code TOTAL zu trennen vom layout.
der MFC war darin spitze - muss man anerkennen.
aber ich denke, wenn ich den haken geschnallt habe,
wie's hier geht, dann ist es hier besser -
und nicht mit so vielen fallen durchsetzt (oder besser: durchwachsen).
ich muss nur noch schnallen wie ich die widgets/objecte vom designer
einfach aus dem code ansprechen kann.
dann machts hier 'heureka'!
:) :)
anda_skoa
13-07-2002, 17:41
Für den Fall das du KDevelop vewendest, ist dieses Tutorial absolut Spitze:
http://women.kde.org/projects/coding/tut_kdevelop/
Aber ich denke, dass es auch ganz brauchbar ist, wenn man KDevelop nicht verwendet.
Ciao,
_
microdigi
13-07-2002, 19:36
schau mal, anaconda :)
du hast mir sehr geholfen.
und ich gebs irgendwann an irgendjemanden weiter.
du kannst dir denken, dass ich das mit 63 schon oefter getan habe.
ich bin jetzt ne weile weg.
und zwar sonntag>mannheim, sonntagabend>hannover(zh), montag>zh, dienstag+mittwoch>halle,leipzig, donnerstag wieder frankfurt-main. noch drei monate.
und so langsam werd ich mich da schon in die materie eintasten.
ich schick dir dennoch mal den ganz rudimentaeren source code.
ist ja noch nix geheimes drin.
meine tendenz ging stets dahin,
mit den besten zur verfuegung stehenden tools zu arbeiten,
und davon mit den funktionen, die automatisch den kleinkram erledigen.
was soll der geiz, wenn man 1000 euro irgendwo spart,
und dadruch ein unzuverlaessiges produkt oder ein spaetes maedchen
auf den markt wirft...
irgendwann haeng ich dir mal mein cv ran.
aber so viel vorab, ich war mit-creator einiger os's,
einiger intelligenter terminals, und europa und die welt kennt mich -
naja, nicht alle, aber wenigstens einige. :)
und durch linz bin ich sogar oefter mit dem lastwagen durchgefahren.
schoene strecke an der donau entlang von passau bis linz.wien.bratislave.kosice,...
lastwagen? und dann programmieren?
ja, ich hab die dinger verkauft, entwickelt, gebaut, hingefahren, installiert,
ausgebildet, repariert, ...
so, in der NAECHSTEN mail haengt der code.
gruss - digi, der erst wieder donnerstag echt ins net schaut
und am sonntag/montag abend vielleicht auch.
microdigi
26-07-2002, 17:15
eigentlich ganz einfach. man wundert sich immer wieder...
...warum so einfache sachen nicht ganz einfach beschrieben werden.
da werden theorien gewaelzt ohne ende.
aber ein ganz einfaches beispiel waere besser.
meine begeisterung fuer kde/qt/linux steigt jede stunde.
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.