QInputDialog anpassen

Alles rund um die Programmierung mit Qt
Antworten
acdc
Beiträge: 82
Registriert: 23. Oktober 2007 18:56

QInputDialog anpassen

Beitrag von acdc »

Hallo,

ich habe einen QInputdialog und will den Text in den Buttons verändern. Das mach ich so:

QStringList items;
items<<"w";
items<<"e";
items<<"g";
/*dialog zum löschen der Felder!*/

QInputDialog *dialog=new QInputDialog(this);
dialog->setCancelButtonText (trUtf8("Abbrechen"));
dialog->setOkButtonText (trUtf8("Löschen"));
dialog->setComboBoxEditable(false);
dialog->setComboBoxItems (items);
dialog->setLabelText(trUtf8("Profil zum Löschen auswählen:"));
dialog->setWindowTitle(trUtf8("Löschen"));
dialog->exec();

Wie kann ich nun abfragen welche taste gedrückt wurde und welches Item ausgewählt wurde??

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

Beitrag von Exasperation »

QInputDialog::getItem vereinfacht das ganze.
erpheus
Beiträge: 46
Registriert: 18. November 2008 11:55
Wohnort: Stuttgart

Beitrag von erpheus »

Du solltest in diesem Fall, den Dialog über die Statische Methoden dieser Klasse erstellen. Siehe Beispiel in der Doku:
http://doc.qt.nokia.com/4.6/qinputdialog.html

Demnach würdest Du also deinen Dialog mit Hilfe von QInputDialog::getItem(....) erstellen. und über die if-Abfrage
if (ok && !text.isEmpty())

erfahren ob der OK-Button oder Cancel-Button gedrückt wurde.

Beispiel aus Doku für text:

Code: Alles auswählen

bool ok;
     QString text = QInputDialog::getText(this, tr("QInputDialog::getText()"),
                                          tr("User name:"), QLineEdit::Normal,
                                          QDir::home().dirName(), &ok);
     if (ok && !text.isEmpty())
         textLabel->setText(text);
[/code]
acdc
Beiträge: 82
Registriert: 23. Oktober 2007 18:56

Beitrag von acdc »

Exasperation hat geschrieben:QInputDialog::getItem vereinfacht das ganze.
Danke für die Antworten,
Ich möchte aber die Beschriftung der Buttons ändern!

-> denke Ich muss mir da einen eigenen Dialog basteln...
erpheus
Beiträge: 46
Registriert: 18. November 2008 11:55
Wohnort: Stuttgart

Beitrag von erpheus »

Du könntest es mit dem Signal:

Code: Alles auswählen

void QInputDialog::textValueSelected ( const QString & text )   [signal]
des Dialogs versuchen.

Die Doku sagt hierzu:
This signal is emitted whenever the user selects a text string by accepting the dialog; for example, by clicking the OK button. The selected string is specified by text.

This signal is only relevant when the input dialog is used in TextInput mode.
Da es für "eingegebenen Text ein eigenes Signal gibt, versteh ich den TextInput als eine Auswahl und/oder Eingabe in deine Itemslist.

Versuchs einfach mal, wenn es klappt ist es bestimmt schneller als einenen eigenen DIalog zu schreiben.
Antworten