Qt(常用的对话框)
目录
消息对话框:
information():
示例:
warning():
示例:
critical():
question():
示例:
文件对话框:
getOpenFileName():
返回值
示例:
getOpenFileNames():
返回值
示例:
getSaveFileName():
返回值
getExistingDirectory():
返回值
示例:
颜色对话框:
getColor()函数:
返回值
示例:
字体对话框:
getFont()函数:
返回值
示例:
输入对话框:
getText():
返回值
示例:
getInt():
返回值
示例:
getItem():
返回值
示例:
消息对话框:
QMessageBox是Qt中用于显示消息对话框的标准组件,常用于提示、警告、错误或者询问操作。
information():
QMessageBox::information
是 Qt 框架中用于显示标准信息对话框的函数,其作用是向用户传递中性提示信息(如操作成功、状态通知等),对话框默认带有蓝色信息图标和确定按钮。按钮组合需按位或(|
)连接。
QMessageBox::information(QWidget *parent, // 父窗口指针const QString &title, // 对话框标题const QString &text, // 提示内容QMessageBox::StandardButtons buttons = QMessageBox::Ok, // 按钮组合QMessageBox::StandardButton defaultButton = QMessageBox::NoButton // 默认选中按钮
);
-
parent
- 类型:
QWidget*
- 作用:指定父窗口,对话框会居中显示并阻塞父窗口。若为
nullptr
,则作为独立窗口显示。
- 类型:
-
title
- 类型:
QString
- 作用:对话框标题栏显示的文本(如“提示”或“系统消息”)。
- 类型:
-
text
- 类型:
QString
- 作用:对话框主体显示的提示信息(如“文件保存成功”)。
- 类型:
-
buttons
(可选)- 类型:
QMessageBox::StandardButtons
- 默认值:
QMessageBox::Ok
- 作用:指定对话框中显示的按钮组合,常用值包括:
QMessageBox::Ok
(默认)QMessageBox::Yes | QMessageBox::No
(需接收返回值判断用户选择)
- 类型:
-
defaultButton
(可选)- 类型:
QMessageBox::StandardButton
- 默认值:
QMessageBox::NoButton
- 作用:指定默认高亮的按钮(如
QMessageBox::Yes
),用户按回车键时会触发该按钮。
- 类型:
示例:
// 基本用法(仅显示确定按钮)
QMessageBox::information(this, "成功", "数据已保存!");// 高级用法(带Yes/No按钮和默认选项)
int ret = QMessageBox::information(nullptr,"确认","是否退出程序?",QMessageBox::Yes | QMessageBox::No,QMessageBox::No // 默认选中"No"
);
if (ret == QMessageBox::Yes) {qApp->quit(); // 退出应用
}
warning():
QMessageBox::warning
是 Qt 中用于显示标准警告对话框的函数,用于向用户提示潜在风险或需要确认的操作(如未保存的更改、操作不可逆等)。对话框默认带有黄色警告图标和确定按钮。
QMessageBox::warning(QWidget *parent, // 父窗口指针const QString &title, // 对话框标题const QString &text, // 警告内容QMessageBox::StandardButtons buttons = QMessageBox::Ok, // 按钮组合QMessageBox::StandardButton defaultButton = QMessageBox::NoButton // 默认选中按钮
);
-
parent
- 类型:
QWidget*
- 作用:指定父窗口,对话框会居中显示并阻塞父窗口。若为
nullptr
,则作为独立窗口显示。
- 类型:
-
title
- 类型:
QString
- 作用:对话框标题栏显示的文本(如“警告”或“注意”)。
- 类型:
-
text
- 类型:
QString
- 作用:对话框主体显示的警告信息(如“未保存的更改将丢失!”)。
- 类型:
-
buttons
(可选)- 类型:
QMessageBox::StandardButtons
- 默认值:
QMessageBox::Ok
- 作用:指定按钮组合,常用值包括:
QMessageBox::Ok
(默认)QMessageBox::Yes | QMessageBox::No
(需接收返回值判断用户选择)QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel(保存,不保存,取消)
- 类型:
-
defaultButton
(可选)- 类型:
QMessageBox::StandardButton
- 默认值:
QMessageBox::NoButton
- 作用:指定默认高亮的按钮(如
QMessageBox::No
),避免用户误操作。
- 类型:
示例:
int ret = QMessageBox::warning(this, "警告", "文件未保存,是否保存更改?",QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel);
switch (ret) {case QMessageBox::Save:saveFile(); // 保存文件break;case QMessageBox::Discard:closeWithoutSaving(); // 直接关闭break;case QMessageBox::Cancel:// 取消关闭操作break;
}
critical():
QMessageBox::critical
是 Qt 中用于显示严重错误对话框的函数,通常用于提示程序无法继续执行的致命问题(如文件损坏、权限不足等)。对话框默认带有红色错误图标和确定按钮。
QMessageBox::critical(QWidget *parent, // 父窗口指针const QString &title, // 对话框标题const QString &text, // 错误详情QMessageBox::StandardButtons buttons = QMessageBox::Ok, // 按钮组合QMessageBox::StandardButton defaultButton = QMessageBox::NoButton // 默认选中按钮
);
-
parent
- 类型:
QWidget*
- 作用:指定父窗口,对话框会居中显示并阻塞父窗口。若为
nullptr
,则作为独立窗口显示。
- 类型:
-
title
- 类型:
QString
- 作用:对话框标题栏文本(如“致命错误”或“系统崩溃”)。
- 类型:
-
text
- 类型:
QString
- 作用:详细错误信息(如“无法访问数据库:连接超时”)。
- 类型:
-
buttons
(可选)- 类型:
QMessageBox::StandardButtons
- 默认值:
QMessageBox::Ok
- 作用:指定按钮组合,常见值包括:
QMessageBox::Ok
(默认)QMessageBox::Retry | QMessageBox::Abort
(需处理重试或终止逻辑)
- 类型:
-
defaultButton
(可选)- 类型:
QMessageBox::StandardButton
- 默认值:
QMessageBox::NoButton
- 作用:指定默认高亮的按钮(如
QMessageBox::Abort
避免误操作)。
- 类型:
question():
QMessageBox::question
是 Qt 中用于显示询问对话框的标准函数,主要用于需要用户明确确认或选择的场景(如删除确认、操作授权等)。对话框默认带有问号图标和"Yes/No"按钮组合。
QMessageBox::StandardButton QMessageBox::question(QWidget *parent, // 父窗口指针const QString &title, // 对话框标题const QString &text, // 询问内容QMessageBox::StandardButtons buttons = QMessageBox::Yes | QMessageBox::No, // 按钮组合QMessageBox::StandardButton defaultButton = QMessageBox::NoButton // 默认选中按钮
);
-
parent
- 类型:
QWidget*
- 作用:指定父窗口,对话框会居中显示并模态阻塞父窗口。传递
nullptr
时独立显示。
- 类型:
-
title
- 类型:
QString
- 作用:对话框标题栏文本(如"确认操作"或"系统提示")。
- 类型:
-
text
- 类型:
QString
- 作用:具体的询问内容(如"确定要删除此文件吗?删除后不可恢复!")。
- 类型:
-
buttons
(可选)- 类型:
QMessageBox::StandardButtons
- 默认值:
QMessageBox::Yes | QMessageBox::No
- 其他常用选项:
QMessageBox::Ok | QMessageBox::Cancel
QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel(保存,不保存,取消)
- 类型:
-
defaultButton
(可选)- 类型:
QMessageBox::StandardButton
- 默认值:
QMessageBox::NoButton
(无默认高亮) - 安全实践:建议对高风险操作设置默认按钮(如
QMessageBox::No
防止误触)。
- 类型:
示例:
int ret = QMessageBox::question(this, "退出", "确定退出程序?所有未保存数据将丢失!");
if (ret == QMessageBox::Yes) {QApplication::quit(); // 用户确认退出
}
文件对话框:
Qt中的文件对话框(QFileDialog
)是用于让用户选择文件或目录的标准对话框,支持以下功能:
打开/保存单个或多个文件,选择目录,文件名过滤(如仅显示.txt
文件),自定义默认路径和对话框标题。
getOpenFileName():
用于弹出一个标准文件选择对话框,允许用户选择单个文件进行打开操作。
QString file = QFileDialog::getOpenFileName(QWidget *parent = nullptr, // 父窗口const QString &caption = QString(), // 对话框标题const QString &dir = QString(), // 初始目录const QString &filter = QString(), // 文件过滤器QString *selectedFilter = nullptr, // 接收用户选择的过滤器QFileDialog::Options options = Options() // 附加选项
);
-
parent
- 类型:
QWidget*
- 作用:指定父窗口指针,对话框会居中显示并模态阻塞父窗口。
- 默认值:
nullptr
(独立窗口)
- 类型:
-
caption
- 类型:
QString
- 作用:对话框标题栏文本(如"选择配置文件")。
- 默认值:空字符串
- 类型:
-
dir
- 类型:
QString
- 作用:初始显示的目录路径(如
"/home/user"
)。 - 默认值:空字符串(使用系统默认目录)
- 类型:
-
filter
- 类型:
QString
- 作用:文件类型过滤器,格式为
"描述 (*.扩展名);;描述 (*.扩展名)"
。 - 示例:
"文本文件 (*.txt);;图片 (*.png *.jpg)"
- 默认值:空字符串(显示所有文件)
- 类型:
-
selectedFilter
- 类型:
QString*
- 作用:返回用户选择的过滤器字符串(需预先声明变量传入地址)。
- 默认值:
nullptr
(不返回)
- 类型:
-
options
- 类型:
QFileDialog::Options
- 作用:控制对话框行为的标志组合,常用选项:
DontUseNativeDialog
:强制使用Qt样式对话框ReadOnly
:禁止重命名文件ShowDirsOnly
:仅显示目录
- 默认值:空(使用系统默认行为)
- 类型:
返回值
- 类型:
QString
- 作用:返回用户选择的文件完整路径,取消操作时返回空字符串。
示例:
QString filePath = QFileDialog::getOpenFileName(this, "选择图片", "/home", "图片文件 (*.png *.jpg);;所有文件 (*.*)"
);
if (!filePath.isEmpty()) {qDebug() << "已选择文件:" << filePath;
}
getOpenFileNames():
用于弹出一个标准文件选择对话框,允许用户选择多个文件进行打开操作,返回选中的文件路径列表。
QStringList QFileDialog::getOpenFileNames(QWidget *parent = nullptr,const QString &caption = QString(),const QString &dir = QString(),const QString &filter = QString(),QString *selectedFilter = nullptr,QFileDialog::Options options = Options()
);
-
parent
- 类型:
QWidget*
- 作用:指定父窗口指针,对话框会居中显示并模态阻塞父窗口
- 默认值:
nullptr
(独立窗口)
- 类型:
-
caption
- 类型:
QString
- 作用:对话框标题栏文本(如"选择多个图片")
- 默认值:空字符串
- 类型:
-
dir
- 类型:
QString
- 作用:初始显示的目录路径(如
"/home/pictures"
) - 默认值:空字符串(使用系统默认目录)
- 类型:
-
filter
- 类型:
QString
- 作用:文件类型过滤器,格式为
"描述 (*.扩展名);;描述 (*.扩展名)"
- 示例:
"图片 (*.png *.jpg);;文档 (*.pdf *.docx)"
- 默认值:空字符串(显示所有文件)
- 类型:
-
selectedFilter
- 类型:
QString*
- 作用:返回用户选择的过滤器字符串(需预先声明变量传入地址)
- 默认值:
nullptr
(不返回)
- 类型:
-
options
- 类型:
QFileDialog::Options
- 作用:控制对话框行为的标志组合,常用选项:
DontUseNativeDialog
:强制使用Qt样式对话框ReadOnly
:禁止重命名文件
- 默认值:空(使用系统默认行为)
- 类型:
返回值
- 类型:
QStringList
- 作用:返回用户选择的文件完整路径列表(按选择顺序排列),取消操作时返回空列表。
示例:
QStringList files = QFileDialog::getOpenFileNames(this,"选择多张图片",QDir::homePath(),"图片 (*.png *.jpg);;所有文件 (*.*)"
);
if (!files.isEmpty()) {qDebug() << "已选择文件:" << files.join(", ");
}
getSaveFileName():
用于弹出一个标准文件保存对话框,允许用户指定文件保存路径和名称。
QString QFileDialog::getSaveFileName(QWidget *parent = nullptr,const QString &caption = QString(),const QString &dir = QString(),const QString &filter = QString(),QString *selectedFilter = nullptr,QFileDialog::Options options = Options()
);
-
parent
- 类型:
QWidget*
- 作用:指定父窗口指针,对话框会居中显示并模态阻塞父窗口
- 默认值:
nullptr
(独立窗口)
- 类型:
-
caption
- 类型:
QString
- 作用:对话框标题栏文本(如"保存文件")
- 默认值:空字符串
- 类型:
-
dir
- 类型:
QString
- 作用:初始显示的目录路径(如
"/home/documents"
) - 默认值:空字符串(使用系统默认目录)
- 类型:
-
filter
- 类型:
QString
- 作用:文件类型过滤器,格式为
"描述 (*.扩展名);;描述 (*.扩展名)"
- 示例:
"文本文件 (*.txt);;PDF文件 (*.pdf)"
- 默认值:空字符串(显示所有文件)
- 类型:
-
selectedFilter
- 类型:
QString*
- 作用:返回用户选择的过滤器字符串(需预先声明变量传入地址)
- 默认值:
nullptr
(不返回)
- 类型:
-
options
- 类型:
QFileDialog::Options
- 作用:控制对话框行为的标志组合,常用选项:
DontConfirmOverwrite
:禁用覆盖确认提示DontUseNativeDialog
:强制使用Qt样式对话框
- 默认值:空(使用系统默认行为)
- 类型:
返回值
- 类型:
QString
- 作用:返回用户指定的文件完整路径,取消操作时返回空字符串。
getExistingDirectory():
用于弹出一个标准目录选择对话框,允许用户选择单个目录(文件夹)而非文件。
QString QFileDialog::getExistingDirectory(QWidget *parent = nullptr,const QString &caption = QString(),const QString &dir = QString(),QFileDialog::Options options = ShowDirsOnly
);
-
parent
- 类型:
QWidget*
- 作用:指定父窗口指针,对话框会居中显示并模态阻塞父窗口
- 默认值:
nullptr
(独立窗口)
- 类型:
-
caption
- 类型:
QString
- 作用:对话框标题栏文本(如"选择保存目录")
- 默认值:空字符串
- 类型:
-
dir
- 类型:
QString
- 作用:初始显示的目录路径(如
"/home/downloads"
) - 默认值:空字符串(使用系统默认目录)
- 类型:
-
options
- 类型:
QFileDialog::Options
- 作用:控制对话框行为的标志组合,特有选项:
ShowDirsOnly
:仅显示目录(默认启用)DontResolveSymlinks
:不解析符号链接DontUseNativeDialog
:强制使用Qt样式对话框
- 默认值:
ShowDirsOnly
- 类型:
返回值
- 类型:
QString
- 作用:返回用户选择的目录绝对路径,取消操作时返回空字符串。
示例:
QString dirPath = QFileDialog::getExistingDirectory(this,"选择项目目录",QDir::homePath(),QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks
);
if (!dirPath.isEmpty()) {qDebug() << "已选择目录:" << dirPath;
}
颜色对话框:
颜色对话框是图形用户界面中的标准对话框,允许用户通过可视化界面选择颜色。它通常提供以下功能:调色板选择,RGB/HSV值调整,自定义颜色保存,透明度设置(Alpha通道)。
getColor()函数:
Qt中用于快速调用标准颜色选择对话框的静态函数。
QColor QColorDialog::getColor(const QColor &initial = Qt::white, // 初始颜色QWidget *parent = nullptr, // 父窗口const QString &title = QString(), // 对话框标题QColorDialog::ColorDialogOptions options = ColorDialogOptions() // 选项
);
-
initial
- 类型:
QColor
- 作用:对话框打开时默认选中的颜色
- 默认值:白色(
Qt::white
) - 示例:
QColor(255, 0, 0)
表示红色
- 类型:
-
parent
- 类型:
QWidget*
- 作用:指定父窗口,对话框会居中显示并模态阻塞父窗口
- 默认值:
nullptr
(独立窗口)
- 类型:
-
title
- 类型:
QString
- 作用:对话框标题栏文本(如"选择背景色")
- 默认值:空字符串(使用系统默认标题)
- 类型:
-
options
- 类型:
QColorDialog::ColorDialogOptions
- 作用:控制对话框行为的标志组合,常用选项:
ShowAlphaChannel
:显示透明度选项NoButtons
:隐藏"OK/Cancel"按钮(需自定义确认逻辑)DontUseNativeDialog
:强制使用Qt样式对话框
- 默认值:空(使用系统原生对话框)
- 类型:
返回值
- 类型:
QColor
- 行为:
- 用户点击"OK":返回选择的颜色(包含RGBA值)
- 用户点击"Cancel":返回无效颜色(可通过
QColor::isValid()
检测)。
示例:
QColor color = QColorDialog::getColor(Qt::green, // 初始为绿色this, // 父窗口"选择文本颜色", // 标题QColorDialog::ShowAlphaChannel // 显示透明度选项
);if (color.isValid()) {qDebug() << "选择的颜色:" << color.name(QColor::HexArgb);
}
字体对话框:
字体对话框是图形用户界面(GUI)中的标准组件,允许用户通过可视化界面选择字体及其样式属性。它通常提供以下功能:选择字体家族(如Arial、Times New Roman),设置字体大小(字号),调整字体样式(加粗、斜体、下划线等),预览字体效果。
getFont()函数:
Qt中用于快速调用标准字体选择对话框的静态函数,返回用户选择的字体。
QFont QFontDialog::getFont(bool *ok, // 输出参数:用户是否确认选择const QFont &initial = QFont(), // 初始字体QWidget *parent = nullptr, // 父窗口const QString &title = QString(), // 对话框标题QFontDialog::FontDialogOptions options = FontDialogOptions() // 选项
);
-
ok
- 类型:
bool*
(指针) - 作用:输出参数,用户点击"OK"时设为
true
,点击"Cancel"时设为false
- 注意:可传递
nullptr
忽略此参数
- 类型:
-
initial
- 类型:
QFont
- 作用:对话框打开时默认选中的字体
- 默认值:系统默认字体(通常为无样式、12pt)
- 示例:
QFont("Arial", 14, QFont::Bold)
- 类型:
-
parent
- 类型:
QWidget*
- 作用:指定父窗口,对话框会模态阻塞父窗口并居中显示
- 默认值:
nullptr
(独立窗口)
- 类型:
-
title
- 类型:
QString
- 作用:对话框标题栏文本(如"选择标题字体")
- 默认值:空字符串(使用系统默认标题)
- 类型:
-
options
- 类型:
QFontDialog::FontDialogOptions
- 作用:控制对话框行为的标志组合,常用选项:
NoButtons
:隐藏"OK/Cancel"按钮(需自定义确认逻辑)DontUseNativeDialog
:强制使用Qt样式对话框(非系统原生)MonospacedFonts
:仅显示等宽字体ScalableFonts
:仅显示可缩放字体
- 默认值:空(使用系统原生对话框)
- 类型:
返回值
- 类型:
QFont
- 行为:
- 用户点击"OK":返回选择的字体(可通过
ok
参数判断有效性) - 用户点击"Cancel":返回初始字体(
ok
设为false
)。
- 用户点击"OK":返回选择的字体(可通过
示例:
bool fontSelected;
QFont font = QFontDialog::getFont(&fontSelected, // 输出参数QFont("Times New Roman", 10), // 初始字体this, // 父窗口"选择正文字体", // 标题QFontDialog::DontUseNativeDialog // 选项
);if (fontSelected) {qDebug() << "选择的字体:" << font.family() << "字号:" << font.pointSize();
}
输入对话框:
输入对话框是图形用户界面(GUI)中的标准组件,用于快速获取用户的文本或数字输入。它通常包含:标题和提示文本,输入框(单行/多行),确认和取消按钮,输入验证功能(如数字范围限制)。
Qt提供了QInputDialog
类,包含两个常用静态函数:getText()
(文本输入)和getInt()
(整数输入)。
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 hints = Qt::ImhNone // 输入法提示
);
参数名 | 类型 | 作用 | 默认值 |
---|---|---|---|
parent | QWidget* | 父窗口指针(居中显示) | nullptr |
title | QString | 对话框标题栏文本 | 必填 |
label | QString | 输入框前的说明文字(如"用户名:") | 必填 |
mode | QLineEdit::EchoMode | 控制输入显示方式: - Normal :明文- Password :密码掩码- PasswordEchoOnEdit :编辑时明文 | Normal |
text | QString | 输入框默认内容 | 空字符串 |
ok | bool* | 输出参数,用户点击确认时为true | nullptr (可忽略) |
flags | Qt::WindowFlags | 控制对话框窗口行为(如置顶) | 默认窗口标志 |
hints | Qt::InputMethodHints | 输入法提示(如ImhDigitsOnly 仅数字) | ImhNone |
返回值
- 类型:
QString
- 行为:
- 用户确认:返回输入的文本
- 用户取消:返回空字符串(需通过
ok
参数判断)。
示例:
bool ok;
QString name = QInputDialog::getText(this, "登录", "请输入用户名:", QLineEdit::Normal, "Guest", &ok
);
if (ok && !name.isEmpty()) {qDebug() << "输入的用户名:" << name;
}
getInt():
弹出模态对话框,获取用户输入的整数(如年龄、数量等)。
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() // [高级] 窗口行为控制
);
参数名 | 类型 | 作用 | 默认值 |
---|---|---|---|
parent | QWidget* | 指定父窗口,对话框会模态阻塞父窗口并居中显示 | nullptr |
title | QString | 对话框标题栏文本(如"参数设置") | 必填 |
label | QString | 输入框前的说明文字(如"阈值:") | 必填 |
value | int | 输入框默认显示的数值 | 0 |
min | int | 允许输入的最小值(用户无法输入更小的数) | -2^31+1 |
max | int | 允许输入的最大值(用户无法输入更大的数) | 2^31-1 |
step | int | 调节按钮(▲/▼)的步进值 | 1 |
ok | bool* | 输出参数: - true :用户点击确认- false :用户点击取消 | nullptr |
flags | WindowFlags | 高级选项:控制对话框行为(如Qt::WindowStaysOnTopHint 置顶) | 默认窗口标志 |
返回值
- 类型:
int
- 行为:
- 用户点击确认:返回输入框中的数值(自动限制在
min
~max
范围内) - 用户点击取消:返回默认值
value
(需通过ok
参数判断是否有效).
- 用户点击确认:返回输入框中的数值(自动限制在
示例:
bool ok;
int age = QInputDialog::getInt(this, // 父窗口"年龄验证", // 标题"请输入年龄 (1-120):", // 标签25, // 默认值1, // 最小值120, // 最大值1, // 步进&ok // 输出参数
);if (ok) {qDebug() << "用户输入的年龄:" << age;
} else {qDebug() << "用户取消了输入";
}
getItem():
Qt提供的静态函数,用于快速生成一个下拉选择对话框,允许用户从预定义的选项列表中选择一个值。
QStringList items = {"选项1", "选项2", "选项3"};
QString QInputDialog::getItem(QWidget *parent, // [可选] 父窗口指针const QString &title, // 对话框标题const QString &label, // 选择框标签const QStringList &items, // 可选项列表int current = 0, // [可选] 默认选中项的索引bool editable = false, // [可选] 是否允许编辑输入bool *ok = nullptr, // [可选] 输出参数(用户是否确认)Qt::WindowFlags flags = Qt::WindowFlags(), // [高级] 窗口标志Qt::InputMethodHints hints = Qt::ImhNone // [高级] 输入法提示
);
int current// [可选] 默认选中项的索引必须小于QStringList items = {"选项1", "选项2", "选项3"}的选项个数,否则会导致崩溃。
参数名 | 类型 | 作用 | 默认值 |
---|---|---|---|
parent | QWidget* | 父窗口指针(用于居中显示) | nullptr |
title | QString | 对话框标题(如"选择语言") | 必填 |
label | QString | 选择框前的说明文字(如"请选择:") | 必填 |
items | QStringList | 下拉框的可选项列表(如{"选项1", "选项2"} ) | 必填 |
current | int | 默认选中项的索引(从0开始) | 0 |
editable | bool | 是否允许用户编辑输入(true =可编辑,false =仅选择) | false |
ok | bool* | 输出参数: - true :用户点击确认- false :用户点击取消 | nullptr |
flags | WindowFlags | 控制对话框行为(如Qt::WindowStaysOnTopHint 置顶) | 默认值 |
hints | InputMethodHints | 输入法提示(如Qt::ImhNoPredictiveText 禁用预测输入) | ImhNone |
返回值
- 类型:
QString
- 行为:
- 用户点击确认:返回选中的文本(或编辑后的内容)
- 用户点击取消:返回空字符串(需通过
ok
参数判断)。
示例:
QStringList languages = {"中文", "English", "日本語"};
bool ok;
QString selected = QInputDialog::getItem(this, // 父窗口"语言设置", // 标题"选择界面语言:", // 标签languages, // 选项列表1, // 默认选中"English"(索引1)false, // 禁止编辑&ok // 输出参数
);if (ok && !selected.isEmpty()) {qDebug() << "用户选择:" << selected;
}