Seite 1 von 1

RadioButtons & C++

Verfasst: 7. Juli 2006 00:38
von SiegmundF
[Änderung]
Etwas präziser: Die ButtonGroup heißt bei mir "buttonGroup_Screens". Mit "QButton* m = buttonGroup_Screens->selected();" in einer Funktion/Methode die nach dem Klick auf einen Pushbutton aufgerufen wird, steht der selektierte RadioButton in der Variable m vom Typ QButton*. Wenn ich diesen Wert jetzt verwenden will, dann muß ich daraus einen String oder ein Integerwet machen. D.h. eine Typenumwandlung durchführen. Aber wie? Bei geläufigen Datentypen kenne ich die Case ... Dinger. Was mache ich aber mit dem selbstgebasteltem Datentyp QButton*?

--------------------------------------------------------------------------------------------------------------------------

Tach ersteinmal, ich probiere mit dem QT-Designer ein kleines Formular zu erstellen und habe das "QuickStart"-Beispiel für meine Zwecke missbraucht. Jetzt habe ich nur noch ein Problem, daß ich es nicht schaffe den Wert einer ButtonGroupBox in C++ auszulesen. (Ich wähle mittels Radiobuttons "Screen1" oder "Screen2" und will dann, nach einem Klick auf einen PushButton z.B. xine aufrufen und vorher die DISPLAY Umgebungsvariable belegen.)

Nach dem Klick auf den Button rufe ich eine Methode auf: Die ersten zwei Zeilen sind nur Beispiele für mich. Hier funktioniert das Auslesen und Ausgebn. Bei der RadioGroup ist es wahrscheinlich der Wert selected(). Wegen meiner schlechten C++ Kenntnisse kriege ich die Syntax nicht hin.

void ControlPanel::start()
{
double input = numberLineEdit->text().toDouble();
resultLineEdit->setText( QString::number( input ) );

system("xine");
}

Verfasst: 7. Juli 2006 20:16
von daliman
Das Abändern des Beispieles scheint der Königsweg für Qt-Trolle zu sein. Ich habe es genauso gemacht, würde aber statt "QButton* m = buttonGroup_Screens->selected();"selectedId() nehmen. Die Funktion liefert einen Integerwert der mit sprintf direkt der DISPLAY-Variable zugeordnet werden kann.

Verfasst: 8. Juli 2006 00:32
von SiegmundF
Ich bin nicht nur ein Qt-Troll sondern auch ein C++-Troll. Das heißt Anfänger. Aber ich habe es jetzt geschafft! Ich mußte mir nur sprintf mal ansehen. Ich habe damit die Commandozeile erstellt um diese dann mit system(buffer) auszugeben. Klappt sehr gut. Jetzt suche ich nur noch eine Möglichkeit einen formatierten Text auszugeben. Ich finde aber Beispiel dafür. Es geht wahrscheinlich mit dem Widget "TextBrowser". Wie kommt da jetzt der (formatierte) Text rein? Ich will einen kleinen Beschrebungstext anzeigen lassen.

Verfasst: 8. Juli 2006 16:59
von daliman
Das mit Qt-Troll war keine Anspielung auf den Wissensstand, sondern auf die Qt Enwickler - Trolltech. Es ist ja bisher noch kein Meister vom Himmel gefallen. Außerdem braucht niemand ein Hilfeforum wenn er sich schon gut auskennt ...

Das mit dem formatiertem Text hört sich sehr einfach an, ist es aber nicht. Zumindes nicht für mich. Ich probiere aber bei Gelegenheit mal rum. Falls du vorher was hinkriegst, dann wäre eine Antwort nicht schlecht.

Vielleicht kann man ein HTML-Dokument anzeigen lassen. Da kann man mit einem Editor oder auch ohne die wichtigsten Formatierungen ..... machen.

Verfasst: 8. Juli 2006 23:08
von daliman
Versuche es mal mit dem TextBrowser. Dann ein Doppelklick. Du mußt aber enweder ohne Formatierung arbeiten damit der Text nicht hintereinander hingeklatscht wird oder aber ein HTML-Dokument pasten. Zumindest <b> und <br> habe ich ausprobiert. Wahrscheinlich geht der Rest auch.

Verfasst: 9. Juli 2006 15:17
von SiegmundF
Der Rest geht auch. Nur mit den Zeilenumbrüchen hapert es etwas. Man muß bestehende "Texte" nochmal nachbearbeiten.

Mal etwas anderes. Etwas schwierigeres:

1) Gibt es in einer Qt....Sache die Möglichkeit realtime etwas abzufragen? Z.B. um anzuzeigen ob ein bestimmtes Programm läuft, eine Uhr etc.

2) Kann ein Button mit z.B. "Start" beschriftet werden und nach dem Start eine neue Beschriftung (Stop) annehmen und eine andere Funktion aufrufen?

Verfasst: 9. Juli 2006 20:06
von upsala
Hast du dir eigentlich schon mal die Dokumentation in Ruhe durchgelesen?

Verfasst: 10. Juli 2006 14:13
von daliman
Hast du dir eigentlich schon mal die Dokumentation in Ruhe durchgelesen?
Keine Ahnung ob diese Antwort mir galt. Wenn ja, dann wieso? Hab ich etwas überlesen was eine Frage hier beantwortet?

Verfasst: 10. Juli 2006 20:27
von upsala
Die Antwort galt SiegmundF, der sich in dieser Hinsicht anscheinend noch nicht viel Mühe gemacht hat...

Verfasst: 10. Juli 2006 20:33
von SiegmundF
1) Gibt es in einer Qt....Sache die Möglichkeit realtime etwas abzufragen? Z.B. um anzuzeigen ob ein bestimmtes Programm läuft, eine Uhr etc.
2) Kann ein Button mit z.B. "Start" beschriftet werden und nach dem Start eine neue Beschriftung (Stop) annehmen und eine andere Funktion aufrufen?
Für die Starthilfe muß ich mich ja irgendwie revanchieren. Zu 1) Kann ich nicht viel sagen, außer daß "clock"-Beispiel. Da kann man sich vielleicht etwas abgucken.
Zu 2) Ich habe eine Funktion "void init()" und in dieser frage ich dann (c++) ab ob etwas bestimtes da ist oder nicht und schalte demensprechend ein oder aus.

void QTAnwendung::init()
{
int sid = buttonGroup_Screens->selectedId();
if ( sid == 1 )
groupBox_Nvidia->setEnabled( FALSE );
else
groupBox_Nvidia->setEnabled( TRUE );
}

Ich hoffe daß hat etwas gehilft.