Qt(常用的对话框)

目录

消息对话框:

information():

示例:

warning():

示例:

critical():

question():

示例:

文件对话框:

getOpenFileName():

‌返回值‌

示例:

getOpenFileNames():

‌返回值‌

示例:

getSaveFileName():

‌返回值‌

getExistingDirectory():

‌返回值‌

示例:

颜色对话框:

getColor()函数:

‌返回值‌

示例:

字体对话框:

getFont()函数:

‌返回值‌

示例:

输入对话框:

getText():

‌返回值‌

示例:

getInt():

‌返回值‌

示例:

getItem():

‌返回值‌

示例:


消息对话框:

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 // 默认选中按钮
);
  1. **parent**‌

    • 类型:QWidget*
    • 作用:指定父窗口,对话框会居中显示并阻塞父窗口。若为nullptr,则作为独立窗口显示。
  2. ‌**title**‌

    • 类型:QString
    • 作用:对话框标题栏显示的文本(如"提示"或"系统消息")。
  3. ‌**text**‌

    • 类型:QString
    • 作用:对话框主体显示的提示信息(如"文件保存成功")。
  4. ‌**buttons**‌(可选)

    • 类型:QMessageBox::StandardButtons
    • 默认值:QMessageBox::Ok
    • 作用:指定对话框中显示的按钮组合,常用值包括:
      • QMessageBox::Ok(默认)
      • QMessageBox::Yes | QMessageBox::No(需接收返回值判断用户选择)
  5. ‌**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 // 默认选中按钮
);
  1. ‌**parent**‌

    • 类型:QWidget*
    • 作用:指定父窗口,对话框会居中显示并阻塞父窗口。若为nullptr,则作为独立窗口显示。
  2. ‌**title**‌

    • 类型:QString
    • 作用:对话框标题栏显示的文本(如"警告"或"注意")。
  3. ‌**text**‌

    • 类型:QString
    • 作用:对话框主体显示的警告信息(如"未保存的更改将丢失!")。
  4. ‌**buttons**‌(可选)

    • 类型:QMessageBox::StandardButtons
    • 默认值:QMessageBox::Ok
    • 作用:指定按钮组合,常用值包括:
      • QMessageBox::Ok(默认)
      • QMessageBox::Yes | QMessageBox::No(需接收返回值判断用户选择)
      • QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel(保存,不保存,取消)
  5. ‌**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 // 默认选中按钮
);
  1. ‌**parent**‌

    • 类型:QWidget*
    • 作用:指定父窗口,对话框会居中显示并阻塞父窗口。若为nullptr,则作为独立窗口显示。
  2. ‌**title**‌

    • 类型:QString
    • 作用:对话框标题栏文本(如"致命错误"或"系统崩溃")。
  3. ‌**text**‌

    • 类型:QString
    • 作用:详细错误信息(如"无法访问数据库:连接超时")。
  4. ‌**buttons**‌(可选)

    • 类型:QMessageBox::StandardButtons
    • 默认值:QMessageBox::Ok
    • 作用:指定按钮组合,常见值包括:
      • QMessageBox::Ok(默认)
      • QMessageBox::Retry | QMessageBox::Abort(需处理重试或终止逻辑)
  5. ‌**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          // 默认选中按钮
);
  1. ‌**parent**‌

    • 类型:QWidget*
    • 作用:指定父窗口,对话框会居中显示并模态阻塞父窗口。传递nullptr时独立显示。
  2. ‌**title**‌

    • 类型:QString
    • 作用:对话框标题栏文本(如"确认操作"或"系统提示")。
  3. ‌**text**‌

    • 类型:QString
    • 作用:具体的询问内容(如"确定要删除此文件吗?删除后不可恢复!")。
  4. ‌**buttons**‌(可选)

    • 类型:QMessageBox::StandardButtons
    • 默认值:QMessageBox::Yes | QMessageBox::No
    • 其他常用选项:
      • QMessageBox::Ok | QMessageBox::Cancel
      • QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel(保存,不保存,取消)
  5. ‌**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() // 附加选项
);
  1. ‌**parent**‌

    • 类型:QWidget*
    • 作用:指定父窗口指针,对话框会居中显示并模态阻塞父窗口。
    • 默认值:nullptr(独立窗口)
  2. ‌**caption**‌

    • 类型:QString
    • 作用:对话框标题栏文本(如"选择配置文件")。
    • 默认值:空字符串
  3. ‌**dir**‌

    • 类型:QString
    • 作用:初始显示的目录路径(如"/home/user")。
    • 默认值:空字符串(使用系统默认目录)
  4. ‌**filter**‌

    • 类型:QString
    • 作用:文件类型过滤器,格式为"描述 (*.扩展名);;描述 (*.扩展名)"
    • 示例:"文本文件 (*.txt);;图片 (*.png *.jpg)"
    • 默认值:空字符串(显示所有文件)
  5. ‌**selectedFilter**‌

    • 类型:QString*
    • 作用:返回用户选择的过滤器字符串(需预先声明变量传入地址)。
    • 默认值:nullptr(不返回)
  6. ‌**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()
);
  1. **parent**‌

    • 类型:QWidget*
    • 作用:指定父窗口指针,对话框会居中显示并模态阻塞父窗口
    • 默认值:nullptr(独立窗口)
  2. ‌**caption**‌

    • 类型:QString
    • 作用:对话框标题栏文本(如"选择多个图片")
    • 默认值:空字符串
  3. ‌**dir**‌

    • 类型:QString
    • 作用:初始显示的目录路径(如"/home/pictures"
    • 默认值:空字符串(使用系统默认目录)
  4. ‌**filter**‌

    • 类型:QString
    • 作用:文件类型过滤器,格式为"描述 (*.扩展名);;描述 (*.扩展名)"
    • 示例:"图片 (*.png *.jpg);;文档 (*.pdf *.docx)"
    • 默认值:空字符串(显示所有文件)
  5. ‌**selectedFilter**‌

    • 类型:QString*
    • 作用:返回用户选择的过滤器字符串(需预先声明变量传入地址)
    • 默认值:nullptr(不返回)
  6. ‌**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()
);
  1. ‌**parent**‌

    • 类型:QWidget*
    • 作用:指定父窗口指针,对话框会居中显示并模态阻塞父窗口
    • 默认值:nullptr(独立窗口)
  2. ‌**caption**‌

    • 类型:QString
    • 作用:对话框标题栏文本(如"保存文件")
    • 默认值:空字符串
  3. ‌**dir**‌

    • 类型:QString
    • 作用:初始显示的目录路径(如"/home/documents"
    • 默认值:空字符串(使用系统默认目录)
  4. ‌**filter**‌

    • 类型:QString
    • 作用:文件类型过滤器,格式为"描述 (*.扩展名);;描述 (*.扩展名)"
    • 示例:"文本文件 (*.txt);;PDF文件 (*.pdf)"
    • 默认值:空字符串(显示所有文件)
  5. ‌**selectedFilter**‌

    • 类型:QString*
    • 作用:返回用户选择的过滤器字符串(需预先声明变量传入地址)
    • 默认值:nullptr(不返回)
  6. ‌**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
);
  1. ‌**parent**‌

    • 类型:QWidget*
    • 作用:指定父窗口指针,对话框会居中显示并模态阻塞父窗口
    • 默认值:nullptr(独立窗口)
  2. ‌**caption**‌

    • 类型:QString
    • 作用:对话框标题栏文本(如"选择保存目录")
    • 默认值:空字符串
  3. ‌**dir**‌

    • 类型:QString
    • 作用:初始显示的目录路径(如"/home/downloads"
    • 默认值:空字符串(使用系统默认目录)
  4. ‌**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()  // 选项
);
  1. **initial**‌

    • 类型:QColor
    • 作用:对话框打开时默认选中的颜色
    • 默认值:白色(Qt::white
    • 示例:QColor(255, 0, 0) 表示红色
  2. ‌**parent**‌

    • 类型:QWidget*
    • 作用:指定父窗口,对话框会居中显示并模态阻塞父窗口
    • 默认值:nullptr(独立窗口)
  3. ‌**title**‌

    • 类型:QString
    • 作用:对话框标题栏文本(如"选择背景色")
    • 默认值:空字符串(使用系统默认标题)
  4. ‌**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()  // 选项
);
  1. **ok**‌

    • 类型:bool*(指针)
    • 作用:输出参数,用户点击"OK"时设为true,点击"Cancel"时设为false
    • 注意:可传递nullptr忽略此参数
  2. ‌**initial**‌

    • 类型:QFont
    • 作用:对话框打开时默认选中的字体
    • 默认值:系统默认字体(通常为无样式、12pt)
    • 示例:QFont("Arial", 14, QFont::Bold)
  3. ‌**parent**‌

    • 类型:QWidget*
    • 作用:指定父窗口,对话框会模态阻塞父窗口并居中显示
    • 默认值:nullptr(独立窗口)
  4. ‌**title**‌

    • 类型:QString
    • 作用:对话框标题栏文本(如"选择标题字体")
    • 默认值:空字符串(使用系统默认标题)
  5. ‌**options**‌

    • 类型:QFontDialog::FontDialogOptions
    • 作用:控制对话框行为的标志组合,常用选项:
      • NoButtons:隐藏"OK/Cancel"按钮(需自定义确认逻辑)
      • DontUseNativeDialog:强制使用Qt样式对话框(非系统原生)
      • MonospacedFonts:仅显示等宽字体
      • ScalableFonts:仅显示可缩放字体
    • 默认值:空(使用系统原生对话框)
返回值
  • 类型:QFont
  • 行为:
    • 用户点击"OK":返回选择的字体(可通过ok参数判断有效性)
    • 用户点击"Cancel":返回初始字体(ok设为false)。

示例:

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;
}
相关推荐
_extraordinary_6 小时前
Java HTTP协议(一)--- HTTP,报文格式,请求和响应
java·开发语言·http
小墨宝6 小时前
umijs 4.0学习 - umijs 的项目搭建+自动化eslint保存+项目结构
开发语言·前端·javascript
_凌凌漆_5 天前
【Qt】Qt中对MVC,MVP的理解
qt
侃侃_天下8 天前
最终的信号类
开发语言·c++·算法
echoarts8 天前
Rayon Rust中的数据并行库入门教程
开发语言·其他·算法·rust
Aomnitrix8 天前
知识管理新范式——cpolar+Wiki.js打造企业级分布式知识库
开发语言·javascript·分布式
每天回答3个问题8 天前
UE5C++编译遇到MSB3073
开发语言·c++·ue5
伍哥的传说8 天前
Vite Plugin PWA – 零配置构建现代渐进式Web应用
开发语言·前端·javascript·web app·pwa·service worker·workbox
小莞尔8 天前
【51单片机】【protues仿真】 基于51单片机八路抢答器系统
c语言·开发语言·单片机·嵌入式硬件·51单片机