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
QInputDialog anpassen
-
Exasperation
- Beiträge: 186
- Registriert: 11. März 2009 18:00
- Wohnort: VS
QInputDialog::getItem vereinfacht das ganze.
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]
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);
Danke für die Antworten,Exasperation hat geschrieben:QInputDialog::getItem vereinfacht das ganze.
Ich möchte aber die Beschriftung der Buttons ändern!
-> denke Ich muss mir da einen eigenen Dialog basteln...
Du könntest es mit dem Signal:
des Dialogs versuchen.
Die Doku sagt hierzu:
Versuchs einfach mal, wenn es klappt ist es bestimmt schneller als einenen eigenen DIalog zu schreiben.
Code: Alles auswählen
void QInputDialog::textValueSelected ( const QString & text ) [signal]
Die Doku sagt hierzu:
Da es für "eingegebenen Text ein eigenes Signal gibt, versteh ich den TextInput als eine Auswahl und/oder Eingabe in deine Itemslist.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.
Versuchs einfach mal, wenn es klappt ist es bestimmt schneller als einenen eigenen DIalog zu schreiben.