Книга: Основы программирования в Linux

QInputDialog

QInputDialog

Окно QInputDialog полезно для ввода пользователем отдельных значений, будь то текст, вариант раскрывающегося списка, целочисленное или действительное значение. У класса QInputDialog есть статические методы, например QMessageBox, создающие некоторые проблемы, поскольку у них слишком много параметров, к счастью, у большинства из них есть значения по умолчанию:

#include <qinputdialog.h>
QString getText(const QString& caption, const QString& label,
 QLineEdit::EchoMode mode=QLineEdit::Normal,
 const QString& text=QString::null,
 bool* ok = 0, QWidget* parent = 0, const char * name = 0);
QString getItem(const QString& caption, const QString& label,
 const QStringList& list, int current=0, bool editable=TRUE,
 bool* ok=0, QWidget* parent = 0, const char* name=0)
int getInteger(const QString& caption, const QString& label,
 int num=0, int from = -2147483647, int to = 2147483647,
 int step = 1, bool* ok = 0, QWidget* parent = 0, const char* name = 0);
double getDouble(const QString& caption, const QString& label,
 double num = 0, double from = -2147483647, double to = 2147483647,
 int decimals = 1, bool* ok = 0, QWidget* parent = 0, const char* name = 0);

Для ввода строки текста напишите следующий фрагмент кода:

bool result;
QString text = QInputDialog::getText("Question", "What is your Quest?:",
 QLineEdit::Normal, QString::null, &result, this, "input");
if (result) {
 doSomething(text);
} else {
 // Пользователь нажал Cancel
}

Как видно из рис. 17.9, окно QInputDialog создано с помощью виджета QLineEdit и кнопок OK и Cancel.


Рис. 17.9 

Диалоговое окно, созданное методом QInputDialog::getText, применяет виджет QLineEdit. Параметр режима редактирования, передаваемый в функцию getText, управляет способом отображения набираемого текста точно так же, как аналогичный параметр режима виджета QLineEdit. Вы можете также задать текст, выводимый по умолчанию, или оставить поле пустым, как показано на рис. 17.9. У всех окон QInputDialog есть кнопки OK и Cancel, и в метод передается указатель типа bool для обозначения нажатой кнопки — результат равен TRUE, если пользователь щелкает мышью кнопку OK.

Метод getItem с помощью раскрывающегося списка QComboBox предлагает пользователю список вариантов:

bool result;
QStringList options;
options << "London" << "New York" << "Paris";
QString city = QInputDialog::getItem("Holiday", "Please select a
 destination:", options, 1, TRUE, &result, this, "combo");
if (result) selectDestination(city);

Созданное диалоговое окно показано на рис. 17.10.


Рис. 17.10 

Функции getInteger и getDouble действуют во многом аналогично, поэтому мы не будем на них останавливаться.

Оглавление книги


Генерация: 2.124. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз