QInputDialog vs. QMessageBox

Alles rund um die Programmierung mit Qt
Antworten
reinki0013
Beiträge: 174
Registriert: 11. November 2008 09:37
Wohnort: AUT

QInputDialog vs. QMessageBox

Beitrag von reinki0013 »

Hallo zusammen,

ich möchte bei meinem Hauptprogramm beim starten eine kleine Box aufrufen, wo in einer Liste mehrere Einträge vorhanden sind...

je nachdem möchte ich dann einen Eintrag auswählen und diesen dann wieder an das Hauptfenster als QString zurückgeben...

jetzt hab ich das schon mit QInputDialog probiert, funktioniert auch, leider brauche ich keinen "Abbrechen"-Button...
kann ich den deaktivieren oder so?

bzw. kann ich bei der QMessageBox eine Liste von QStrings anzeigen die ich auswählen kann???

wäre toll wenn ihr mir weiterhelfen könnte...

besten dank

lg
Exasperation
Beiträge: 186
Registriert: 11. März 2009 18:00
Wohnort: VS

Beitrag von Exasperation »

Hmm ich würds mir selber aus nem QDialog zusammenbasteln... Da ne QComboBox draufpacken und das ausgewählte Item ans Hauptfenster schicken. Da kannst dann auch selber die Buttons draufsetzen die du brauchst.
reinki0013
Beiträge: 174
Registriert: 11. November 2008 09:37
Wohnort: AUT

Beitrag von reinki0013 »

Exasperation hat geschrieben:Hmm ich würds mir selber aus nem QDialog zusammenbasteln... Da ne QComboBox draufpacken und das ausgewählte Item ans Hauptfenster schicken. Da kannst dann auch selber die Buttons draufsetzen die du brauchst.
ja das hört sich ganz gut an...aber ich weiß nicht wie ich das am effektivsten umsetzen kann :oops:
NoRulez
Beiträge: 208
Registriert: 19. Juni 2007 15:43

Beitrag von NoRulez »

Schick doch ein Signal aus, sobald was ausgewähltbzw. abgebrochen wurde.

LG NoRulez
reinki0013
Beiträge: 174
Registriert: 11. November 2008 09:37
Wohnort: AUT

Beitrag von reinki0013 »

hi,

also interessant wäre es doch, ob man bei dem QInputDialog den "Abbrechen"-Button aus der ButtonBox entfernen kann bzw. unsichtbar setzen kann.

hat das schon mal wer versucht?

lg
reinki0013
Beiträge: 174
Registriert: 11. November 2008 09:37
Wohnort: AUT

Beitrag von reinki0013 »

also ich erläutere hier nochmal mein problem:

ich habe ein QMainWindow...
Vor dem Start dieses QMainWindow überprüfe ich, ob es mehrere Dateien gibt, die geladen werden könnten...

Ich möchte es so umsetzen, wenn es mehr als 1 Datei gibt, soll ein kleiner QInputDialog oder ein QDialog kommen, wo die Dateien aufgelistet drinnen stehen und ich dann auswählen kann, mit welcher Datei ich das Programm starten kann...

Wie schon gesagt, dass Problem mit dem QInputDialog ist leider, dass ich einen "Abbrechen"-Button habe, aber ich ihn auf keinen fall haben will...

wie könnte ich das jetzt umsetzen?

wäre für tipps und ratschläge dankbar...

lg
pfid
Beiträge: 535
Registriert: 22. Februar 2008 16:59

Beitrag von pfid »

Also was anderes als selbst bauen fällt mir da nicht ein.

Aber: was stört dich am Cancel-Button? Falls gedrückt -> Programm Ende alles gut. Wo liegts Problem?
reinki0013
Beiträge: 174
Registriert: 11. November 2008 09:37
Wohnort: AUT

Beitrag von reinki0013 »

pfid hat geschrieben:Also was anderes als selbst bauen fällt mir da nicht ein.

Aber: was stört dich am Cancel-Button? Falls gedrückt -> Programm Ende alles gut. Wo liegts Problem?
ja und wie kann ich mir den QDialog selber bauen?
ich bräuchte eine kleine anregung, weiß nicht recht wie ich das angehen soll...Code ansätze wären toll...

wenn ich auf "Cancel" drücke, welches Signal muss ich da senden, dass es mir nachher mein QMainWindow auch schließt?

lg
Tyrdal
Beiträge: 28
Registriert: 12. Juni 2009 12:45

Beitrag von Tyrdal »

Lies mal die Qt-Doku, die ist ganz gut. Den Dialog bastelst du dir am bequemsten mit dem Designer zusammen und qApp->quit() beendet das Programm.
pfid
Beiträge: 535
Registriert: 22. Februar 2008 16:59

Beitrag von pfid »

reinki0013 hat geschrieben:
pfid hat geschrieben:Also was anderes als selbst bauen fällt mir da nicht ein.

Aber: was stört dich am Cancel-Button? Falls gedrückt -> Programm Ende alles gut. Wo liegts Problem?
ja und wie kann ich mir den QDialog selber bauen?
ich bräuchte eine kleine anregung, weiß nicht recht wie ich das angehen soll...Code ansätze wären toll...

wenn ich auf "Cancel" drücke, welches Signal muss ich da senden, dass es mir nachher mein QMainWindow auch schließt?

lg
http://qt.nokia.com/doc/4.5/qinputdialog.html

Hier steht genau der Code den du brauchst:
http://qt.nokia.com/doc/4.5/qinputdialog.html#getItem

Ich weiß nicht wie dein Programm aufgebaut ist, ich würds so machen:

main.cc

Code: Alles auswählen

{
   QApplication app(argc, argv);
   Window window;

   // .. input dialog

   if (!ok)
      return 1;

   window.show();
   
   return app.exec();
}
reinki0013
Beiträge: 174
Registriert: 11. November 2008 09:37
Wohnort: AUT

Beitrag von reinki0013 »

also ich habs jetzt mal so versucht:

ich habe mir eine neue "Qt GUI-Klasse" angelegt...

Diese Klasse rufe ich im Konstruktor auf und starte somit dieses Fenster...

Allerdings startet auch das Hauptfenster, aber ich würde gerne nur das "Nebenfenster" sozusagen anzeigen...

Kann ich das MainWindow irgendwie blockieren oder so?
Oder wie kann ich das machen?

lg
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Doku zu QDialog -> QDialog::exec() !
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
reinki0013
Beiträge: 174
Registriert: 11. November 2008 09:37
Wohnort: AUT

Beitrag von reinki0013 »

Christian81 hat geschrieben:Doku zu QDialog -> QDialog::exec() !
Genau das is es was ich brauche...besten dank...

jetzt startet zuerst der Dialog, wartet auf meine Eingabe...
dann sende ich den QString ans Hauptfenster und danach auch noch den closeEvent (sonst geht ja der Dialog nicht weg)...

besten dank an alle...

schönen tag noch

lg
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Oder Du rufst das ganze auf bevor Du überhaupt MainWindow::show() ausführst (ist ein SLOT, kann man deshalb an QDialog::accepted() connecten). So mache ich es zumindest immer (z.B. für den Logindialog)
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten