QInputDialog 类
The QInputDialog class provides a simple convenience dialog to get a single value from the user. More...
头文件 | #include <QInputDialog> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake | QT += widgets |
继承 | QDialog |
- 包括继承成员在内的所有成员列表
- QInputDialog 是标准对话框的一部分 Standard Dialogs.
公共类型
枚举 | InputDialogOption { NoButtons, UseListViewForComboBoxItems, UsePlainTextEditForTextInput } |
标志 | InputDialogOptions |
枚举 | InputMode { TextInput, IntInput, DoubleInput } |
属性
|
|
公共函数
QInputDialog(QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()) | |
virtual | ~QInputDialog() |
QString | cancelButtonText() const |
QStringList | comboBoxItems() const |
int | doubleDecimals() const |
double | doubleMaximum() const |
double | doubleMinimum() const |
double | doubleStep() const |
double | doubleValue() const |
QInputDialog::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) |
QInputDialog::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 | setDoubleStep(double step) |
void | setDoubleValue(double value) |
void | setInputMode(QInputDialog::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(QInputDialog::InputDialogOption option, bool on = true) |
void | setOptions(QInputDialog::InputDialogOptions options) |
void | setTextEchoMode(QLineEdit::EchoMode mode) |
void | setTextValue(const QString &text) |
bool | testOption(QInputDialog::InputDialogOption option) const |
QLineEdit::EchoMode | textEchoMode() const |
QString | textValue() const |
重写的公共函数
virtual void | done(int result) override |
virtual QSize | minimumSizeHint() const override |
virtual void | setVisible(bool visible) override |
virtual QSize | sizeHint() const override |
信号
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 = nullptr, Qt::WindowFlags flags = Qt::WindowFlags(), double step = 1) |
int | getInt(QWidget *parent, const QString &title, const QString &label, int value = 0, int min = -2147483647, int max = 2147483647, int step = 1, bool *ok = 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 = 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 = 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 = nullptr, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone) |
详细描述
输入值可以是字符串、数字或列表中的项目。必须设置标签以告知用户应输入什么。
提供了五个静态便捷函数: getText(),getMultiLineText(),getInt(),getDouble() 和 getItem()。所有函数都可以以类似的方式使用,例如
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);
ok
变量在用户点击 确定 时设置为 true;否则设置为 false。
示例代码 标准对话框 展示了如何使用 QInputDialog 以及其他内置的 Qt 对话框。
另请参阅QMessageBox 和 标准对话框示例。
成员类型文档
枚举 QInputDialog::InputDialogOption
标志 QInputDialog::InputDialogOptions
此枚举指定影响输入对话框外观和感觉的各种选项。
常量 | 值 | 描述 |
---|---|---|
QInputDialog::NoButtons | 0x00000001 | 不显示 确定 和 取消 按钮(对于“实时对话框”很有用)。 |
QInputDialog::UseListViewForComboBoxItems | 0x00000002 | 对于使用 setComboBoxItems() 设置的项目,使用 QListView 而不是不可编辑的 QComboBox。 |
QInputDialog::UsePlainTextEditForTextInput | 0x00000004 | 使用 QPlainTextEdit 进行多行文本输入。此值在 5.2 中引入。 |
InputDialogOptions 类型是 QFlags<InputDialogOption> 的同义词。它存储 InputDialogOption 值的 OR 组合。
另请参阅options,setOption() 和 testOption()。
枚举 QInputDialog::InputMode
此枚举描述了可以选择的对话框的不同输入模式。
常量 | 值 | 描述 |
---|---|---|
QInputDialog::TextInput | 0 | 用于输入文本字符串。 |
QInputDialog::IntInput | 1 | 用于输入整数。 |
QInputDialog::DoubleInput | 2 | 用于输入双精度浮点数。 |
另请参阅inputMode。
属性文档
cancelButtonText : QString
此属性包含用于取消对话框的按钮文本。
访问函数
QString | cancelButtonText() const |
void | setCancelButtonText(const QString &text) |
comboBoxEditable : bool
此属性包含用于输入对话框的复选框是否可编辑。
访问函数
bool | isComboBoxEditable() const |
void | setComboBoxEditable(bool editable) |
comboBoxItems : QStringList
此属性包含用于输入对话框复选框中的项目。
访问函数
QStringList | comboBoxItems() const |
void | setComboBoxItems(const QStringList &items) |
doubleDecimals : int
设置双精度微调框的精度(小数点后的位数)。
访问函数
int | doubleDecimals() const |
void | setDoubleDecimals(int decimals) |
另请参阅QDoubleSpinBox::setDecimals。
doubleMaximum : double
此属性包含输入的双精度浮点数值的最大值。
当输入对话框用于DoubleInput模式时,该属性才有意义。
访问函数
double | doubleMaximum() const |
void | setDoubleMaximum(double max) |
doubleMinimum : double
此属性包含输入的双精度浮点数值的最小值。
当输入对话框用于DoubleInput模式时,该属性才有意义。
访问函数
double | doubleMinimum() const |
void | setDoubleMinimum(double min) |
doubleStep : double
此属性包含增加和减少双精度值时的步长。
当输入对话框用于DoubleInput模式时,该属性才有意义。
访问函数
double | doubleStep() const |
void | setDoubleStep(double step) |
doubleValue : int
此属性包含表示当前双精度浮点数值的整数。
当输入对话框用于DoubleInput模式时,该属性才有意义。
访问函数
double | doubleValue() const |
void | setDoubleValue(double value) |
通知信号
void | doubleValueChanged(double value) |
inputMode : InputMode
此属性包含输入模式。
此属性有助于确定用于输入对话框的哪个小部件。
访问函数
QInputDialog::InputMode | inputMode() const |
void | setInputMode(QInputDialog::InputMode mode) |
intMaximum : int
此属性包含接受的输入整数值的最大值。
当输入对话框用于IntInput模式时,该属性才有意义。
访问函数
int | intMaximum() const |
void | setIntMaximum(int max) |
intMinimum : int
该属性存储接受的输入的最小整数值。
当输入对话框用于IntInput模式时,该属性才有意义。
访问函数
int | intMinimum() const |
void | setIntMinimum(int min) |
intStep : int
该属性存储整数值增加和减少的步长。
当输入对话框用于IntInput模式时,该属性才有意义。
访问函数
int | intStep() const |
void | setIntStep(int step) |
intValue : int
该属性存储当前的输入整数值。
当输入对话框用于IntInput模式时,该属性才有意义。
访问函数
int | intValue() const |
void | setIntValue(int value) |
通知信号
void | intValueChanged(int value) |
labelText : QString
该属性存储标签文本,描述需要输入的内容。
访问函数
QString | labelText() const |
void | setLabelText(const QString &text) |
okButtonText : QString
该属性存储用于接受对话框中录入的按钮的文本。
访问函数
QString | okButtonText() const |
void | setOkButtonText(const QString &text) |
options : InputDialogOptions
该属性存储影响对话框外观和感觉的各个选项。
默认情况下,所有选项均被禁用。
访问函数
QInputDialog::InputDialogOptions | options() const |
void | setOptions(QInputDialog::InputDialogOptions options) |
另请参阅setOption() 和 testOption。
textEchoMode : QLineEdit::EchoMode
该属性存储文本值的回显模式。
此属性仅在以 TextInput 模式使用输入对话框时相关。
访问函数
QLineEdit::EchoMode | textEchoMode() const |
void | setTextEchoMode(QLineEdit::EchoMode mode) |
textValue : QString
该属性存储输入对话框的文本值。
此属性仅在以 TextInput 模式使用输入对话框时相关。
访问函数
QString | textValue() const |
void | setTextValue(const QString &text) |
通知信号
void | textValueChanged(const QString &text) |
成员函数文档
QInputDialog::QInputDialog(QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())
以给定的 父对象 和窗口 标志 构造一个新的输入对话框。
[虚函数 无异常抛出]
QInputDialog::~QInputDialog()
销毁输入对话框。
[重写虚函数]
void QInputDialog::done(int result)
重写了: QDialog::done(int r).
关闭对话框并将结果代码设置为 result。如果以 exec() 调用显示此对话框,则 done() 会导致本地事件循环结束,并从 exec() 返回 result。
也请参阅 QDialog::done。
[信号]
void QInputDialog::doubleValueChanged(double value)
每当在对话框中双精度值发生变化时,此信号就会被触发。当前值由value指定。
此信号仅在输入对话框用于双精度输入模式时才有意义。
注意:属性doubleValue的通知信号。
[信号]
void QInputDialog::doubleValueSelected(double value)
每当用户通过接受对话框(例如,通过单击确定按钮)选中一个双精度值时,都会发出此信号。选中的值由value指定。
此信号仅在输入对话框用于双精度输入模式时才有意义。
[静态]
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 = nullptr, Qt::WindowFlags flags = Qt::WindowFlags(), double step = 1)
静态便捷函数,用于从用户处获取一个浮点数。
title是显示在对话框标题栏中的文本。label是显示给用户的文本(它应该指明应输入什么)。value是行编辑框将被设置到的默认浮点数值。min和max是用户可以选择的最小和最大值。decimals是数字可能有的最大小数位数。step是用户按下箭头按钮递增或递减值的增量。
如果ok非空,*ok将在用户按确定按钮时设置为true,在用户按取消按钮时设置为false。对话框的父级是parent。对话框将是模态的,并使用部件flags。
此函数返回用户输入的浮点数。
可以这样使用这个静态函数
bool ok; double d = QInputDialog::getDouble(this, tr("QInputDialog::getDouble()"), tr("Amount:"), 37.56, -10000, 10000, 2, &ok, Qt::WindowFlags(), 1); if (ok) doubleLabel->setText(QString("$%1").arg(d));
也请参阅 getText、getInt、getItem和getMultiLineText。
[静态]
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 = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())
静态便捷函数,用于从用户处获取一个整数输入。
标题 是显示在对话框标题栏中的文本。 标签 是显示给用户的文本(它应该说明应该输入什么)。 值 是spinbox将被设置为的默认整数。 最小值 和 最大值 是用户可以选择的最小和最大值。 步长 是用户按箭头按钮增减值时值变化的量。
如果 确定 非空 *确定 将设置为 true,如果用户按下 确定,如果用户按下 取消 则设置为 false。对话框的父级是 父级。对话框将是模态的,并使用小部件 标志。
在成功的情况下,该函数返回用户输入的整数;在失败的情况下,它返回初始的 值。
可以这样使用这个静态函数
bool ok; int i = QInputDialog::getInt(this, tr("QInputDialog::getInt()"), tr("Percentage:"), 25, 0, 100, 1, &ok); if (ok) integerLabel->setText(tr("%1%").arg(i));
另请参阅 getText(),getDouble(),getItem() 和 getMultiLineText。
[静态]
QString QInputDialog::getItem(QWidget *parent, const QString &title, const QString &label, const QStringList &items, int current = 0, bool editable = true, bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone)
静态便利函数,让用户从一个字符串列表中选择一个项。
标题 是显示在对话框标题栏中的文本。 标签 是显示给用户的文本(它应该说明应该输入什么)。 项目 是插入到组合框中的字符串列表。 当前值 是应该作为当前项的项目编号。 输入法提示 是如果组合框可编辑且输入法处于活动状态时将使用的输入法提示。
如果 可编辑 为 true,用户可以输入自己的文本;否则,用户只能选择现有项目之一。
如果 ok 非空,*ok 将被设置为 true,如果用户按下 确定,如果用户按下 取消 将被设置为 false。对话框的父级是 父级。对话框将是模态的,并使用小部件 标志。
这个函数返回当前项的文本,如果 可编辑 为 true,则返回组合框当前文本。
可以这样使用这个静态函数
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() 和 getMultiLineText。
[静态]
QString QInputDialog::getMultiLineText(QWidget *parent, const QString &title, const QString &label, const QString &text = QString(), bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone)
静态便利函数,从用户处获取多行字符串。
标题是显示在对话框标题栏中的文本。标签是显示给用户的文本(它应该指明需要输入的内容)。文本是放置在纯文本编辑框中的默认文本。inputMethodHints是如果输入法处于活动状态将用于编辑小部件的输入法提示。
如果ok非空,则当用户按下确定时,将*i*设置为true,当用户按下取消时,设置为false。对话框的父级是parent。对话框将是模态的,并使用指定的flags小部件。
如果对话框被接受,此函数将返回对话框的纯文本编辑框中的文本。如果对话框被拒绝,则返回一个空的QString。
可以这样使用这个静态函数
bool ok; QString text = QInputDialog::getMultiLineText(this, tr("QInputDialog::getMultiLineText()"), tr("Address:"), "John Doe\nFreedom Street", &ok); if (ok && !text.isEmpty()) multiLineTextLabel->setText(text);
另请参阅getInt()、getDouble()、getItem()和getText()。
[静态]
QString QInputDialog::getText(QWidget *parent, const QString &title, const QString &label, QLineEdit::EchoMode mode = QLineEdit::Normal, const QString &text = QString(), bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone)
静态方便函数,用于从用户处获取字符串。
标题是显示在对话框标题栏中的文本。标签是显示给用户的文本(它应该指明需要输入的内容)。文本是放置在行编辑中的默认文本。mode是行编辑将使用的回声模式。inputMethodHints是如果输入法处于活动状态将用于编辑小部件的输入法提示。
如果ok非空,则当用户按下确定时,将*i*设置为true,当用户按下取消时,设置为false。对话框的父级是parent。对话框将是模态的,并使用指定的flags小部件。
如果对话框被接受,此函数将返回对话框的行编辑中的文本。如果对话框被拒绝,则返回一个空的QString。
可以这样使用这个静态函数
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()和getMultiLineText()。
[信号]
void QInputDialog::intValueChanged(int value)
每次在对话框中更改整数值时都会发出此信号。当前值由value指定。
此信号仅当在IntInput模式下使用输入对话框时才相关。
注意:属性intValue的通告信号。
[信号]
void QInputDialog::intValueSelected(int value)
用户接受对话框(例如通过单击确定按钮)选择整数值时,将发出此信号;选定的值由value指定。
此信号仅当在IntInput模式下使用输入对话框时才相关。
[覆盖虚函数]
QSize QInputDialog::minimumSizeHint() const
重新实现: QDialog::minimumSizeHint() const.
void QInputDialog::open(QObject *receiver, const char *member)
此函数将其中一个信号连接到receiver和member指定的槽。具体的信号取决于在member中指定的参数。这些参数是:
- textValueSelected(),如果member的第一个参数是QString。
- intValueSelected(),如果member的第一个参数是int。
- doubleValueSelected(),如果member的第一个参数是double。
- accepted(),如果member没有参数。
当对话框关闭时,将信号从槽断开。
void QInputDialog::setDoubleRange(double min, double max)
设置在DoubleInput模式下使用时,由对话框接受的double精度浮点值的范围,分别通过min和max指定最小和最大值。
void QInputDialog::setIntRange(int min, int max)
设置在IntInput模式下使用时,由对话框接受的整数值的范围,分别通过min和max指定最小和最大值。
void QInputDialog::setOption(QInputDialog::InputDialogOption option, bool on = true)
如果on为true,则启用指定的option;否则,清除指定的option。
另请参阅options和testOption。
[覆盖虚函数]
void QInputDialog::setVisible(bool visible)
重新实现: QDialog::setVisible(bool visible).
[覆盖虚函数]
QSize QInputDialog::sizeHint() const
重新实现: QDialog::sizeHint() const.
bool QInputDialog::testOption(QInputDialog::InputDialogOption option) const
如果给定的option被启用,则返回true
;否则,返回false。
[信号]
void QInputDialog::textValueChanged(const QString &text)
每当对话框中的文本字符串更改时,都会发出此信号。当前字符串由 text 指定。
此信号仅在输入对话框使用在 TextInput 模式时相关。
注意:属性 textValue 的通知信号。
[信号]
void QInputDialog::textValueSelected(const QString &text)
当用户通过接受对话框选择文本字符串(例如,通过单击 OK 按钮)时,会发出此信号。所选字符串由 text 指定。
此信号仅在输入对话框使用在 TextInput 模式时相关。
© 2024 The Qt Company Ltd. 本文档中的文档贡献是各自所有者的版权。本提供的文档是根据自由软件基金会发布的 GNU 自由文档许可证版本 1.3 条款许可的。Qt 及其相应的标志是芬兰的 The Qt Company Ltd. 和/或世界其他国家/地区的商标。所有其他商标均为其各自所有者的财产。