taki
Advanced Hacker
Hallo Leute.
Ich bin gestern ziemlich lange an einem Problem verzweifelt. Es war eins von der Sorte, wo man die Hände über dem Kopf zusammenschlägt und "Oh mann, bist Du doof..." schreit, wenn man es hinbekommen hat.
Ich habe in kdevelop ein neues Projekt für eine Applikation mit KConfigXT erstellt. Den Konfigurationsdialog habe ich dann mit dem QtDesigner so eingerichtet, wie ich es haben wollte und die XML-Dateien für den Konfigurationscompiler von KDE nach dem Tutorial angepasst.
http://developer.kde.org/documentation/tutorials/kconfigxt/kconfigxt.html
Bei Spinboxen, Checkboxen und Eingabefeldern klappt das genial einfach. Ich habe aber auch Komboboxen in meinem Konfigurationsdialog. Wenn man eine Kombobox an KConfigXT anbindet (durch Benennen des Objektes mit kcfg_feldname), bekommt man anstelle des ausgewählten Textes den Index der Kombobox in die Konfiguration geschrieben.
Die simple Lösung:
Fertig, jetzt kommt wirklich der ausgewählte Text in der Konfig an!
Ich bin gestern ziemlich lange an einem Problem verzweifelt. Es war eins von der Sorte, wo man die Hände über dem Kopf zusammenschlägt und "Oh mann, bist Du doof..." schreit, wenn man es hinbekommen hat.
Ich habe in kdevelop ein neues Projekt für eine Applikation mit KConfigXT erstellt. Den Konfigurationsdialog habe ich dann mit dem QtDesigner so eingerichtet, wie ich es haben wollte und die XML-Dateien für den Konfigurationscompiler von KDE nach dem Tutorial angepasst.
http://developer.kde.org/documentation/tutorials/kconfigxt/kconfigxt.html
Bei Spinboxen, Checkboxen und Eingabefeldern klappt das genial einfach. Ich habe aber auch Komboboxen in meinem Konfigurationsdialog. Wenn man eine Kombobox an KConfigXT anbindet (durch Benennen des Objektes mit kcfg_feldname), bekommt man anstelle des ausgewählten Textes den Index der Kombobox in die Konfiguration geschrieben.
Die simple Lösung:
- Entkopple die Kombobox durch Umbenennen in feldname (d.h. nimm das Präfix "kcfg_" weg).
- Lege ein (verstecktes) Eingabefeld im Konfigurationsdialog mit dem Bezeichner kcfg_feldname an.
- Verbinde die Slots feldname::highlighted (QString) mit kcfg_feldname::setText(QString).
Fertig, jetzt kommt wirklich der ausgewählte Text in der Konfig an!