Seite 1 von 1

[solved] QMessagebox mit Scrollbalken?

Verfasst: 23. Oktober 2008 09:50
von DarkSchwabe
Hallo,

ich habe eine QMessagebox in welcher einiges an Text steht. Um genau zu sein ist es eine Auflistung von Parametern.
Dadurch kann es leider vorkommen, dass der anzuzeigende Text etwas länger ist. Die Folge ist, dass man
1. den Text nicht ganz lesen kann und
2. kann man die Buttons nichtmehr klicken weil sie nicht sichtbar sind.

Gibt es dafür eine einfache Lösung? Vielleicht kann man die Buttons über dem Text anzeigen und den Text mit einem Scrollbalken versehen?

Danke

Grüße

Verfasst: 23. Oktober 2008 09:55
von AuE
schau mal im Assistant unter QMessageBox... da is doch eine Messagebox drin dir einen Text mit Details anzeigen kann auf Knopfdruck... wie wärs damit?

To give the user more information to help him answer the question, set the detailed text property. If the detailed text property is set, the Show Details... button will be shown.

Clicking the Show Details... button displays the detailed text.


Das Forum ersetzt nicht die Doku!

Verfasst: 23. Oktober 2008 10:17
von DarkSchwabe
Hi, erstmal danke für die wirklich schnelle Antwort. Und du hast natürlich recht, darum hab ich auch erst meine Doku gelesen :-)

Aber

1. habe ich nach Scrollbalken und ähnlichem gesucht und nicht nach "setInformativeText". Ich kann ja nicht die ganze Doku durchlesen.

2. Steht das in meiner Doku leider nicht ganz so wie du gesagt hast. Das von dir habe ich gerade unter "http://doc.trolltech.com/snapshot/qmessagebox.html" gefunden.

Bin jetzt dabei herauszufinden wie das funktioniert. Wenn ich "setInformativeText" benutze, dann wird der Text bei mir auch nur auf die Messagebox geschrieben. Also kein Button "Show Details..." aber ich bin dran. Ist zwar nicht ganz das was ich brauche und dafür auch etwas ungeschickt, aber es sollte besser sein als bisher.
Ich schreib dann mal wenn ichs hinbekommen hab.
Danke.
gruß

Verfasst: 23. Oktober 2008 10:22
von AuE

Code: Alles auswählen

QMessageBox msgBox;
		msgBox.setText("Keine Verbindung zur Prozesskontrolle");
		msgBox.setInformativeText("Die Verbindung zur Prozesskontrolle wurde unterbrochen da der Prozess beendet wurde!");
		msgBox.setStandardButtons(QMessageBox::Ok);
		msgBox.setDefaultButton(QMessageBox::Ok);
		msgBox.setDetailedText("Die Verbindung zur Process_Control konnte nicht ermittelt werden. Falls diese auf auto connect steht so wird selbst versucht diese Verbindung wieder herzustellen");
		msgBox.setWindowFlags(Qt::WindowStaysOnTopHint);
		msgBox.exec();

Verfasst: 23. Oktober 2008 10:24
von DarkSchwabe
ah Sorry, war etwas vorschnell mit meinem Post eben.
Mein Fehler war hierbei

"setInformativeText" zu benutzen.
Richtig ist hier "setDetailedText" dann gibts auch den Details.. button :-)

jetzt sollte ich nurnoch abfangen, dass bei zu langem text die Buttons aus dem Messageboxfenster geschoben werden.

Danke aber schonmal hierfür.

Verfasst: 23. Oktober 2008 10:49
von AuE
welchertext ist zu lang????

für den langen text sollte man ja den detailed text nehmen

Verfasst: 23. Oktober 2008 11:11
von DarkSchwabe
ja das schon. Ich muss eben Prüfen ob der Text zu lang wird. Wenn ja, dann wird der lange Text in das "Detailsfensters" verschoben. Den Button soll man nur benutzen müssen wenn wirklich zuviel Text angezeigt werden muss.

Kann man denn die Größe des "Detailsfensters" ändern? Etwas höher könnte es für meine Zwecke schon ein. Ich finde dazu leider nichts.

Verfasst: 23. Oktober 2008 11:25
von AuE
über das detailed fenster ka. aber dieder messagebox. damit ändert sich dan auch die größe des detailed

Verfasst: 29. Oktober 2008 13:18
von DarkSchwabe
Danke für die Hilfe.
Ich habe leider nicht rausfinden können wie ich die Größe auch in der Höhe ändern kann. Darum bau ich nun ein neues Fenster.

Danke trotzdem.