目录
消息对话框:
QMessageBox是Qt中用于显示消息对话框的标准组件,常用于提示、警告、错误或者询问操作。
information():
QMessageBox::information
是 Qt 框架中用于显示标准信息对话框的函数,其作用是向用户传递中性提示信息(如操作成功、状态通知等),对话框默认带有蓝色信息图标和确定按钮。按钮组合需按位或(|
)连接。
cpp
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
),用户按回车键时会触发该按钮。
- 类型:
示例:
cpp
// 基本用法(仅显示确定按钮)
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 中用于显示标准警告对话框的函数,用于向用户提示潜在风险或需要确认的操作(如未保存的更改、操作不可逆等)。对话框默认带有黄色警告图标和确定按钮。
cpp
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
),避免用户误操作。
- 类型:
示例:
cpp
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 中用于显示严重错误对话框的函数,通常用于提示程序无法继续执行的致命问题(如文件损坏、权限不足等)。对话框默认带有红色错误图标和确定按钮。
cpp
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"按钮组合。
cpp
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
防止误触)。
- 类型:
示例:
cpp
int ret = QMessageBox::question(this, "退出", "确定退出程序?所有未保存数据将丢失!");
if (ret == QMessageBox::Yes) {
QApplication::quit(); // 用户确认退出
}
文件对话框:
Qt中的文件对话框(QFileDialog
)是用于让用户选择文件或目录的标准对话框,支持以下功能:
打开/保存单个或多个文件,选择目录,文件名过滤(如仅显示.txt
文件),自定义默认路径和对话框标题。
getOpenFileName():
用于弹出一个标准文件选择对话框,允许用户选择单个文件进行打开操作。
cpp
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
- 作用:返回用户选择的文件完整路径,取消操作时返回空字符串。
示例:
cpp
QString filePath = QFileDialog::getOpenFileName(
this,
"选择图片",
"/home",
"图片文件 (*.png *.jpg);;所有文件 (*.*)"
);
if (!filePath.isEmpty()) {
qDebug() << "已选择文件:" << filePath;
}
getOpenFileNames():
用于弹出一个标准文件选择对话框,允许用户选择多个文件进行打开操作,返回选中的文件路径列表。
cpp
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
- 作用:返回用户选择的文件完整路径列表(按选择顺序排列),取消操作时返回空列表。
示例:
cpp
QStringList files = QFileDialog::getOpenFileNames(
this,
"选择多张图片",
QDir::homePath(),
"图片 (*.png *.jpg);;所有文件 (*.*)"
);
if (!files.isEmpty()) {
qDebug() << "已选择文件:" << files.join(", ");
}
getSaveFileName():
用于弹出一个标准文件保存对话框,允许用户指定文件保存路径和名称。
cpp
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():
用于弹出一个标准目录选择对话框,允许用户选择单个目录(文件夹)而非文件。
cpp
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
- 作用:返回用户选择的目录绝对路径,取消操作时返回空字符串。
示例:
cpp
QString dirPath = QFileDialog::getExistingDirectory(
this,
"选择项目目录",
QDir::homePath(),
QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks
);
if (!dirPath.isEmpty()) {
qDebug() << "已选择目录:" << dirPath;
}
颜色对话框:
颜色对话框是图形用户界面中的标准对话框,允许用户通过可视化界面选择颜色。它通常提供以下功能:调色板选择,RGB/HSV值调整,自定义颜色保存,透明度设置(Alpha通道)。
getColor()函数:
Qt中用于快速调用标准颜色选择对话框的静态函数。
cpp
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()
检测)。
示例:
cpp
QColor color = QColorDialog::getColor(
Qt::green, // 初始为绿色
this, // 父窗口
"选择文本颜色", // 标题
QColorDialog::ShowAlphaChannel // 显示透明度选项
);
if (color.isValid()) {
qDebug() << "选择的颜色:" << color.name(QColor::HexArgb);
}
字体对话框:
字体对话框是图形用户界面(GUI)中的标准组件,允许用户通过可视化界面选择字体及其样式属性。它通常提供以下功能:选择字体家族(如Arial、Times New Roman),设置字体大小(字号),调整字体样式(加粗、斜体、下划线等),预览字体效果。
getFont()函数:
Qt中用于快速调用标准字体选择对话框的静态函数,返回用户选择的字体。
cpp
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":返回选择的字体(可通过
示例:
cpp
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():
弹出模态对话框,获取用户输入的文本字符串(如用户名、密码等)。
cpp
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
参数判断)。
示例:
cpp
bool ok;
QString name = QInputDialog::getText(
this,
"登录",
"请输入用户名:",
QLineEdit::Normal,
"Guest",
&ok
);
if (ok && !name.isEmpty()) {
qDebug() << "输入的用户名:" << name;
}
getInt():
弹出模态对话框,获取用户输入的整数(如年龄、数量等)。
cpp
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
参数判断是否有效).
- 用户点击确认 :返回输入框中的数值(自动限制在
示例:
cpp
bool ok;
int age = QInputDialog::getInt(
this, // 父窗口
"年龄验证", // 标题
"请输入年龄 (1-120):", // 标签
25, // 默认值
1, // 最小值
120, // 最大值
1, // 步进
&ok // 输出参数
);
if (ok) {
qDebug() << "用户输入的年龄:" << age;
} else {
qDebug() << "用户取消了输入";
}
getItem():
Qt提供的静态函数,用于快速生成一个下拉选择对话框,允许用户从预定义的选项列表中选择一个值。
cpp
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
参数判断)。
示例:
cpp
QStringList languages = {"中文", "English", "日本語"};
bool ok;
QString selected = QInputDialog::getItem(
this, // 父窗口
"语言设置", // 标题
"选择界面语言:", // 标签
languages, // 选项列表
1, // 默认选中"English"(索引1)
false, // 禁止编辑
&ok // 输出参数
);
if (ok && !selected.isEmpty()) {
qDebug() << "用户选择:" << selected;
}