QInputDialog Class
The QInputDialog class provides a simple convenience dialog to get a single value from the user. 更多...
头文件: | #include <QInputDialog> |
qmake: | QT += widgets |
基类: | QDialog |
公有类型
enum | InputDialogOption { NoButtons, UseListViewForComboBoxItems, UsePlainTextEditForTextInput } |
flags | InputDialogOptions |
enum | InputMode { TextInput, IntInput, DoubleInput } |
属性
|
|
公有函数
QInputDialog(QWidget *parent = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags()) | |
~QInputDialog() | |
QString | cancelButtonText() const |
QStringList | comboBoxItems() const |
int | doubleDecimals() const |
double | doubleMaximum() const |
double | doubleMinimum() const |
double | doubleValue() const |
InputMode | inputMode() const |
int | intMaximum() const |
int | intMinimum() const |
int | intStep() const |
int | intValue() const |
bool | isComboBoxEditable() const |
QString | labelText() const |
QString | okButtonText() const |
void | open(QObject *receiver, const char *member) |
InputDialogOptions | options() const |
void | setCancelButtonText(const QString &text) |
void | setComboBoxEditable(bool editable) |
void | setComboBoxItems(const QStringList &items) |
void | setDoubleDecimals(int decimals) |
void | setDoubleMaximum(double max) |
void | setDoubleMinimum(double min) |
void | setDoubleRange(double min, double max) |
void | setDoubleValue(double value) |
void | setInputMode(InputMode mode) |
void | setIntMaximum(int max) |
void | setIntMinimum(int min) |
void | setIntRange(int min, int max) |
void | setIntStep(int step) |
void | setIntValue(int value) |
void | setLabelText(const QString &text) |
void | setOkButtonText(const QString &text) |
void | setOption(InputDialogOption option, bool on = true) |
void | setOptions(InputDialogOptions options) |
void | setTextEchoMode(QLineEdit::EchoMode mode) |
void | setTextValue(const QString &text) |
bool | testOption(InputDialogOption option) const |
QLineEdit::EchoMode | textEchoMode() const |
QString | textValue() const |
重新实现的公有函数
virtual void | done(int result) |
virtual QSize | minimumSizeHint() const |
virtual void | setVisible(bool visible) |
virtual QSize | sizeHint() const |
- 8 个公有函数继承自 QDialog
- 214 个公有函数继承自 QWidget
- 32 个公有函数继承自 QObject
- 14 个公有函数继承自 QPaintDevice
信号
void | doubleValueChanged(double value) |
void | doubleValueSelected(double value) |
void | intValueChanged(int value) |
void | intValueSelected(int value) |
void | textValueChanged(const QString &text) |
void | textValueSelected(const QString &text) |
静态公有成员
double | getDouble(QWidget *parent, const QString &title, const QString &label, double value = 0, double min = -2147483647, double max = 2147483647, int decimals = 1, bool *ok = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags()) |
int | getInt(QWidget *parent, const QString &title, const QString &label, int value = 0, int min = -2147483647, int max = 2147483647, int step = 1, bool *ok = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags()) |
QString | getItem(QWidget *parent, const QString &title, const QString &label, const QStringList &items, int current = 0, bool editable = true, bool *ok = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone) |
QString | getMultiLineText(QWidget *parent, const QString &title, const QString &label, const QString &text = QString(), bool *ok = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone) |
QString | getText(QWidget *parent, const QString &title, const QString &label, QLineEdit::EchoMode mode = QLineEdit::Normal, const QString &text = QString(), bool *ok = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone) |
其他继承的成员
- 5 个公有槽函数继承自 QDialog
- 19 个公有槽函数继承自 QWidget
- 1 个公有槽函数继承自 QObject
- 1 个公有变量继承自 QObject
- 6 个受保护的函数继承自 QDialog
- 35 个受保护的函数继承自 QWidget
- 9 个受保护的函数继承自 QObject
- 1 个受保护的函数继承自 QPaintDevice
- 1 个受保护的槽函数继承自 QWidget
- 2 个受保护的变量继承自 QObject
- 1 protected type inherited from QPaintDevice
详细描述
The QInputDialog class provides a simple convenience dialog to get a single value from the user.
The input value can be a string, a number or an item from a list. A label must be set to tell the user what they should enter.
Five static convenience functions are provided: getText(), getMultiLineText(), getInt(), getDouble(), and getItem(). All the functions can be used in a similar way, for example:
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);
The ok
variable is set to true if the user clicks OK; otherwise, it is set to false.
The Standard Dialogs example shows how to use QInputDialog as well as other built-in Qt dialogs.
参见 QMessageBox and Standard Dialogs Example.
成员类型
enum QInputDialog::InputDialogOption
flags QInputDialog::InputDialogOptions
This enum specifies various options that affect the look and feel of an input dialog.
Constant | Value | Description |
---|---|---|
QInputDialog::NoButtons | 0x00000001 | Don't display OK and Cancel buttons (useful for "live dialogs"). |
QInputDialog::UseListViewForComboBoxItems | 0x00000002 | Use a QListView rather than a non-editable QComboBox for displaying the items set with setComboBoxItems(). |
QInputDialog::UsePlainTextEditForTextInput | 0x00000004 | Use a QPlainTextEdit for multiline text input. This value was introduced in 5.2. |
This enum was introduced or modified in Qt 4.5.
The InputDialogOptions type is a typedef for QFlags<InputDialogOption>. It stores an OR combination of InputDialogOption values.
参见 options, setOption(), and testOption().
enum QInputDialog::InputMode
This enum describes the different modes of input that can be selected for the dialog.
Constant | Value | Description |
---|---|---|
QInputDialog::TextInput | 0 | Used to input text strings. |
QInputDialog::IntInput | 1 | Used to input integers. |
QInputDialog::DoubleInput | 2 | Used to input floating point numbers with double precision accuracy. |
This enum was introduced or modified in Qt 4.5.
参见 inputMode.
属性
cancelButtonText : QString
This property holds the text for the button used to cancel the dialog
This property was introduced in Qt 4.5.
访问函数:
QString | cancelButtonText() const |
void | setCancelButtonText(const QString &text) |
comboBoxEditable : bool
This property holds whether or not the combo box used in the input dialog is editable
This property was introduced in Qt 4.5.
访问函数:
bool | isComboBoxEditable() const |
void | setComboBoxEditable(bool editable) |
comboBoxItems : QStringList
This property holds the items used in the combo box for the input dialog
This property was introduced in Qt 4.5.
访问函数:
QStringList | comboBoxItems() const |
void | setComboBoxItems(const QStringList &items) |
doubleDecimals : int
sets the precision of the double spinbox in decimals
This property was introduced in Qt 4.5.
访问函数:
int | doubleDecimals() const |
void | setDoubleDecimals(int decimals) |
参见 QDoubleSpinBox::setDecimals().
doubleMaximum : double
This property holds the maximum double precision floating point value accepted as input
This property is only relevant when the input dialog is used in DoubleInput mode.
This property was introduced in Qt 4.5.
访问函数:
double | doubleMaximum() const |
void | setDoubleMaximum(double max) |
doubleMinimum : double
This property holds the minimum double precision floating point value accepted as input
This property is only relevant when the input dialog is used in DoubleInput mode.
This property was introduced in Qt 4.5.
访问函数:
double | doubleMinimum() const |
void | setDoubleMinimum(double min) |
doubleValue : int
This property holds the current double precision floating point value accepted as input
This property is only relevant when the input dialog is used in DoubleInput mode.
This property was introduced in Qt 4.5.
访问函数:
double | doubleValue() const |
void | setDoubleValue(double value) |
Notifier signal:
void | doubleValueChanged(double value) |
inputMode : InputMode
This property holds the mode used for input
This property helps determine which widget is used for entering input into the dialog.
This property was introduced in Qt 4.5.
访问函数:
InputMode | inputMode() const |
void | setInputMode(InputMode mode) |
intMaximum : int
This property holds the maximum integer value accepted as input
This property is only relevant when the input dialog is used in IntInput mode.
This property was introduced in Qt 4.5.
访问函数:
int | intMaximum() const |
void | setIntMaximum(int max) |
intMinimum : int
This property holds the minimum integer value accepted as input
This property is only relevant when the input dialog is used in IntInput mode.
This property was introduced in Qt 4.5.
访问函数:
int | intMinimum() const |
void | setIntMinimum(int min) |
intStep : int
This property holds the step by which the integer value is increased and decreased
This property is only relevant when the input dialog is used in IntInput mode.
This property was introduced in Qt 4.5.
访问函数:
int | intStep() const |
void | setIntStep(int step) |
intValue : int
This property holds the current integer value accepted as input
This property is only relevant when the input dialog is used in IntInput mode.
This property was introduced in Qt 4.5.
访问函数:
int | intValue() const |
void | setIntValue(int value) |
Notifier signal:
void | intValueChanged(int value) |
labelText : QString
This property holds the label's text which describes what needs to be input
This property was introduced in Qt 4.5.
访问函数:
QString | labelText() const |
void | setLabelText(const QString &text) |
okButtonText : QString
This property holds the text for the button used to accept the entry in the dialog
This property was introduced in Qt 4.5.
访问函数:
QString | okButtonText() const |
void | setOkButtonText(const QString &text) |
options : InputDialogOptions
This property holds the various options that affect the look and feel of the dialog
By default, all options are disabled.
This property was introduced in Qt 4.5.
访问函数:
InputDialogOptions | options() const |
void | setOptions(InputDialogOptions options) |
参见 setOption() and testOption().
textEchoMode : QLineEdit::EchoMode
This property holds the echo mode for the text value
This property is only relevant when the input dialog is used in TextInput mode.
This property was introduced in Qt 4.5.
访问函数:
QLineEdit::EchoMode | textEchoMode() const |
void | setTextEchoMode(QLineEdit::EchoMode mode) |
textValue : QString
This property holds the text value for the input dialog
This property is only relevant when the input dialog is used in TextInput mode.
This property was introduced in Qt 4.5.
访问函数:
QString | textValue() const |
void | setTextValue(const QString &text) |
Notifier signal:
void | textValueChanged(const QString &text) |
成员函数
QInputDialog::QInputDialog(QWidget *parent = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags())
Constructs a new input dialog with the given parent and window flags.
This function was introduced in Qt 4.5.
QInputDialog::~QInputDialog()
Destroys the input dialog.
This function was introduced in Qt 4.5.
[virtual]
void QInputDialog::done(int result)
重新实现 QDialog::done().
Closes the dialog and sets its result code to result. If this dialog is shown with exec(), done() causes the local event loop to finish, and exec() to return result.
参见 QDialog::done().
[signal]
void QInputDialog::doubleValueChanged(double value)
This signal is emitted whenever the double value changes in the dialog. The current value is specified by value.
This signal is only relevant when the input dialog is used in DoubleInput mode.
Note: Notifier signal for property doubleValue.
[signal]
void QInputDialog::doubleValueSelected(double value)
This signal is emitted whenever the user selects a double value by accepting the dialog; for example, by clicking the OK button. The selected value is specified by value.
This signal is only relevant when the input dialog is used in DoubleInput mode.
[static]
double QInputDialog::getDouble(QWidget *parent, const QString &title, const QString &label, double value = 0, double min = -2147483647, double max = 2147483647, int decimals = 1, bool *ok = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags())
Static convenience function to get a floating point number from the user.
title is the text which is displayed in the title bar of the dialog. label is the text which is shown to the user (it should say what should be entered). value is the default floating point number that the line edit will be set to. min and max are the minimum and maximum values the user may choose. decimals is the maximum number of decimal places the number may have.
If ok is nonnull, *ok will be set to true if the user pressed OK and to false if the user pressed Cancel. The dialog's parent is parent. The dialog will be modal and uses the widget flags.
This function returns the floating point number which has been entered by the user.
Use this static function like this:
bool ok; double d = QInputDialog::getDouble(this, tr("QInputDialog::getDouble()"), tr("Amount:"), 37.56, -10000, 10000, 2, &ok); if (ok) doubleLabel->setText(QString("$%1").arg(d));
参见 getText(), getInt(), getItem(), and getMultiLineText().
[static]
int QInputDialog::getInt(QWidget *parent, const QString &title, const QString &label, int value = 0, int min = -2147483647, int max = 2147483647, int step = 1, bool *ok = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags())
Static convenience function to get an integer input from the user.
title is the text which is displayed in the title bar of the dialog. label is the text which is shown to the user (it should say what should be entered). value is the default integer which the spinbox will be set to. min and max are the minimum and maximum values the user may choose. step is the amount by which the values change as the user presses the arrow buttons to increment or decrement the value.
If ok is nonnull *ok will be set to true if the user pressed OK and to false if the user pressed Cancel. The dialog's parent is parent. The dialog will be modal and uses the widget flags.
On success, this function returns the integer which has been entered by the user; on failure, it returns the initial value.
Use this static function like this:
bool ok; int i = QInputDialog::getInt(this, tr("QInputDialog::getInteger()"), tr("Percentage:"), 25, 0, 100, 1, &ok); if (ok) integerLabel->setText(tr("%1%").arg(i));
This function was introduced in Qt 4.5.
参见 getText(), getDouble(), getItem(), and getMultiLineText().
[static]
QString QInputDialog::getItem(QWidget *parent, const QString &title, const QString &label, const QStringList &items, int current = 0, bool editable = true, bool *ok = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone)
Static convenience function to let the user select an item from a string list.
title is the text which is displayed in the title bar of the dialog. label is the text which is shown to the user (it should say what should be entered). items is the string list which is inserted into the combo box. current is the number of the item which should be the current item. inputMethodHints is the input method hints that will be used if the combo box is editable and an input method is active.
If editable is true the user can enter their own text; otherwise, the user may only select one of the existing items.
If ok is nonnull *a ok will be set to true if the user pressed OK and to false if the user pressed Cancel. The dialog's parent is parent. The dialog will be modal and uses the widget flags.
This function returns the text of the current item, or if editable is true, the current text of the combo box.
Use this static function like this:
QStringList items; items << tr("Spring") << tr("Summer") << tr("Fall") << tr("Winter"); bool ok; QString item = QInputDialog::getItem(this, tr("QInputDialog::getItem()"), tr("Season:"), items, 0, false, &ok); if (ok && !item.isEmpty()) itemLabel->setText(item);
参见 getText(), getInt(), getDouble(), and getMultiLineText().
[static]
QString QInputDialog::getMultiLineText(QWidget *parent, const QString &title, const QString &label, const QString &text = QString(), bool *ok = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone)
Static convenience function to get a multiline string from the user.
title is the text which is displayed in the title bar of the dialog. label is the text which is shown to the user (it should say what should be entered). text is the default text which is placed in the plain text edit. inputMethodHints is the input method hints that will be used in the edit widget if an input method is active.
If ok is nonnull *a ok will be set to true if the user pressed OK and to false if the user pressed Cancel. The dialog's parent is parent. The dialog will be modal and uses the specified widget flags.
If the dialog is accepted, this function returns the text in the dialog's plain text edit. If the dialog is rejected, a null QString is returned.
Use this static function like this:
bool ok; QString text = QInputDialog::getMultiLineText(this, tr("QInputDialog::getMultiLineText()"), tr("Address:"), "John Doe\nFreedom Street", &ok); if (ok && !text.isEmpty()) multiLineTextLabel->setText(text);
This function was introduced in Qt 5.2.
参见 getInt(), getDouble(), getItem(), and getText().
[static]
QString QInputDialog::getText(QWidget *parent, const QString &title, const QString &label, QLineEdit::EchoMode mode = QLineEdit::Normal, const QString &text = QString(), bool *ok = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone)
Static convenience function to get a string from the user.
title is the text which is displayed in the title bar of the dialog. label is the text which is shown to the user (it should say what should be entered). text is the default text which is placed in the line edit. mode is the echo mode the line edit will use. inputMethodHints is the input method hints that will be used in the edit widget if an input method is active.
If ok is nonnull *a ok will be set to true if the user pressed OK and to false if the user pressed Cancel. The dialog's parent is parent. The dialog will be modal and uses the specified widget flags.
If the dialog is accepted, this function returns the text in the dialog's line edit. If the dialog is rejected, a null QString is returned.
Use this static function like this:
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);
参见 getInt(), getDouble(), getItem(), and getMultiLineText().
[signal]
void QInputDialog::intValueChanged(int value)
This signal is emitted whenever the integer value changes in the dialog. The current value is specified by value.
This signal is only relevant when the input dialog is used in IntInput mode.
Note: Notifier signal for property intValue.
[signal]
void QInputDialog::intValueSelected(int value)
This signal is emitted whenever the user selects a integer value by accepting the dialog; for example, by clicking the OK button. The selected value is specified by value.
This signal is only relevant when the input dialog is used in IntInput mode.
[virtual]
QSize QInputDialog::minimumSizeHint() const
重新实现 QWidget::minimumSizeHint().
void QInputDialog::open(QObject *receiver, const char *member)
This is an overloaded function.
This function connects one of its signals to the slot specified by receiver and member. The specific signal depends on the arguments that are specified in member. These are:
- textValueSelected() if member has a QString for its first argument.
- intValueSelected() if member has an int for its first argument.
- doubleValueSelected() if member has a double for its first argument.
- accepted() if member has NO arguments.
The signal will be disconnected from the slot when the dialog is closed.
This function was introduced in Qt 4.5.
void QInputDialog::setDoubleRange(double min, double max)
Sets the range of double precision floating point values accepted by the dialog when used in DoubleInput mode, with minimum and maximum values specified by min and max respectively.
void QInputDialog::setIntRange(int min, int max)
Sets the range of integer values accepted by the dialog when used in IntInput mode, with minimum and maximum values specified by min and max respectively.
void QInputDialog::setOption(InputDialogOption option, bool on = true)
Sets the given option to be enabled if on is true; otherwise, clears the given option.
参见 options and testOption().
[virtual]
void QInputDialog::setVisible(bool visible)
重新实现 QWidget::setVisible().
[virtual]
QSize QInputDialog::sizeHint() const
重新实现 QWidget::sizeHint().
bool QInputDialog::testOption(InputDialogOption option) const
Returns true
if the given option is enabled; otherwise, returns false.
[signal]
void QInputDialog::textValueChanged(const QString &text)
This signal is emitted whenever the text string changes in the dialog. The current string is specified by text.
This signal is only relevant when the input dialog is used in TextInput mode.
Note: Notifier signal for property textValue.
[signal]
void QInputDialog::textValueSelected(const QString &text)
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.