Ввод данных через стандартные окна на Qt5?
Ввод текста
Добавляем в заголовочный файл (.h) строку
1 |
#include <QInputDialog> |
Код окна для ввода текста:
1 2 3 4 5 6 |
bool ok; QString text = QInputDialog::getText(this, tr("Ввод текста"), tr("Ваше имя:"), QLineEdit::Normal, "Забыл", &ok); if (ok && !text.isEmpty()) ui->textLabel->setText(text); |
Результат:
Подробности:
String | getText(QWidget * parent, const QString & title, const QString & label, QLineEdit::EchoMode mode = QLineEdit::Normal, const QString & text = QString(), bool * ok = 0, Qt::WindowFlags flags = 0, Qt::InputMethodHints inputMethodHints = Qt::ImhNone) |
Ввод действительного числа
Можно указать значение по умолчанию, максимум и минимум, количество знаков после запятой.
1 2 3 4 |
double d = QInputDialog::getDouble(this, tr("Ввод числа"), tr("Цена:"), 23.4, -50, 50, 1, &ok); if (ok) ui->myLabel->setText(QString("$%1").arg(d)); |
Результат:
Подробности:
double | getDouble(QWidget * parent, const QString & title, const QString & label, double value = 0, double min = -2147483647, double max = 2147483647, int decimals = 1, bool * ok = 0, Qt::WindowFlags flags = 0) |
Ввод целого числа
1 2 3 4 |
int i = QInputDialog::getInt(this, tr("Ввод целого числа"), tr("Количество процентов:"), 50, 0, 100, 1, &ok); if (ok) ui->myLabel->setText(tr("%1%").arg(i)); |
Результат:
Подробности:
int | getInt(QWidget * parent, const QString & title, const QString & label, int value = 0, int min = -2147483647, intmax = 2147483647, int step = 1, bool * ok = 0, Qt::WindowFlags flags = 0) |
Выбор из списка
1 2 3 4 5 6 7 |
QStringList items; items << tr("Математика") << tr("Физика") << tr("Химия") << tr("Жизнь"); bool ok; QString item = QInputDialog::getItem(this, "www.itmathrepetitor.ru",tr("Предмет:"), items, 0, false, &ok); if (ok && !item.isEmpty()) ui->myLabel->setText(item); |
Результат:
Подробности:
QString | getItem(QWidget * parent, const QString & title, const QString & label, const QStringList & items, int current = 0, bool editable = true, bool * ok = 0, Qt::WindowFlags flags = 0, Qt::InputMethodHints inputMethodHints = Qt::ImhNone) |
Настройки шрифта
В заголовочный файл (.h) добавим строку
1 |
#include <QFontDialog> |
Код вызова окна:
1 2 3 4 5 |
QFont font = QFontDialog::getFont(&ok, QFont(ui->textLabel->text()), this,"Настройки"); if (ok) { ui->textLabel->setText(font.key()); ui->textLabel->setFont(font); } |
Результат:
Выбор цвета
В заголовочный файл (.h) добавим строку:
1 |
#include <QColorDialog> |
Код вызова окна:
1 2 3 4 5 6 7 |
QColor color; color = QColorDialog::getColor(Qt::green, this, "Выбор цвета"); if (color.isValid()) { ui->textLabel->setText(color.name()); ui->textLabel->setPalette(QPalette(color)); ui->textLabel->setAutoFillBackground(true); } |
Результат: