Seite 1 von 1

Q_PROPERTY und QStringList

Verfasst: 13. Juni 2005 15:43
von Nannette
Hallo,

ich habe Probleme, in meinem selber erstellten Widget ein Property vom Typ QStringList richtig zu verwenden. Zwar wird die QStringList mit all ihren Items richtig in eine ComboBox in den Property-Editor im QT-Designer geladen, allerdings kann ich anschließend keines dieser Items auswählen. Wie erfahre ich, dass ein neues Item aus der QStringList ausgewählt wurde??? Übrigens habe ich den Qt-Designer 3.3.4...

Quellen:

class QLabel;
class myOutputField : public QLabel{

Q_OBJECT

Q_PROPERTY( QStringList tName READ tName WRITE setTName DESIGNABLE true )

public:
myOutputField( QWidget *parent = 0, const char *name = 0);
~myOutputField();

QStringList tName() const;

public slots:
void setTName(const QStringList &l);

private:
QStringList testName;
};

QStringList myOutputField::tName() const{
return testName;
}

void myOutputField::setTName(const QStringList &l){
testName = l;
}

Danke für jede Idee...

Verfasst: 13. Juni 2005 19:45
von paulchen
Ein Label kann nun mal nur einen string darstellen. Es hat keine Möglichkeit, mit stringlists umzugehen.
Vielleicht schwebt Dir ein ganz bestimmtes Widget vor, das ist mit dem QLabel aber sicher nicht verwandt.

cu
paulchen

Verfasst: 14. Juni 2005 13:25
von Nannette
Danke erst einmal...

Ich glaube, ich habe da etwas nicht richtig verstanden: Ich will ja auch keine Liste auf dem Label darstellen, sondern ich möchte zu meinem Label ein Property haben, mit dem ich im QT-Designer aus einer Liste einen bestimmten Wert (=String) auswählen kann. Leider ist die Liste zur Compile-Zeit noch nicht bekannt (da würde ich ja einfach einen enum verwenden) sondern ich möchte die aus einer Datei auslesen.

Gibt es sonst noch andere Möglichkeiten, dies zu realisieren, außer mit einem Q_PROPERTY vom Typ QStringList?

Verfasst: 14. Juni 2005 14:43
von FlorianBecker
Mh, wer soll den hier eigentlich was verstehen?

Wenn du einem Element einen Wert zuweisen willst, dann tue das einfach.

guiElement -> setText( list[ id ] );

Am besten wäre es, du schreibst einmal kurz und knapp, aber vollständig, was du willst. Nicht herumreden, nur Fakten.