Qt5基本对话框

本文详细介绍了Qt5中的几种标准对话框,包括QFileDialog用于打开和保存文件,QColorDialog用于选取颜色,QFontDialog用于选择字体,QInputDialog用于获取用户输入的字符串、整数或浮点数,以及QMessageBox用于显示各种类型的消息提示。通过实例代码展示了每种对话框的使用方法,帮助开发者更好地在应用程序中集成用户交互功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        Qt5中提供了一系列的对话框的调用。如标准文件对话框QFileDialog,标准颜色对话框QColorDialog,标准字体对话框QFontDialog,标准输入对话框QInputDialog以及标准消息对话框QMessageBox。下文对各 对话框详细介绍,各对话框的函数形式来源于Qt5.13版本(区别不大)。

目录

标准文件对话框QFileDialog

标准颜色对话框QColorDialog

标准字体对话框QFontDialog

标准输入对话框QInputDialog

标准字符串输入对话框

标准条目选择对话框

标准int/double输入对话框

消息对话框QMessageBox


标准文件对话框QFileDialog

        标准文件对话框的函数形式如下:

static QString getOpenFileName(
QWidget *parent = nullptr,//标准文件对话框的父窗口
const QString &caption = QString(),//标准文件对话框的标题名
const QString &dir = QString(),//指定默认的目录,若此参数带有文件名,则文件是默认选择的文件
const QString &filter = QString(),//过滤器,只有与过滤器匹配的文件类型才显示
QString *selectedFilter = nullptr,//
Options options = Options()//
);

        创建一个文件对话框示例:

QString path = QFileDialog::getOpenFileName(this,"open file","/","C++ files(*.cpp);;Head files(*.h)");

标准颜色对话框QColorDialog

        标准颜色对话框函数形式如下:

static QColor getColor(
const QColor &initial = Qt::white,//默认白色,
QWidget *parent = nullptr,//标准颜色对话框父窗口
const QString &title = QString(),//标准颜色对话框窗口名
ColorDialogOptions options = ColorDialogOptions()//
);

        创建一个颜色对话框示例:

QColor color1 = QColorDialog::getColor();
QColor color2 = QColorDialog::getColor(Qt::blue);
QColor color3 = QColorDialog::getColor(Qt::blue,this,"颜色对话框");

标准字体对话框QFontDialog

        标准字体对话框函数形式如下:

static QFont getFont(
bool *ok, //若用户单击OK按钮,则参数*ok为true,函数返回用户选择字体;否则为false,返回默认字体;
QWidget *parent = nullptr//标准对话框的父窗口
);
static QFont getFont(
bool *ok, const QFont &initial, 
QWidget *parent = nullptr, 
const QString &title = QString(),
FontDialogOptions options = FontDialogOptions()
);

        创建一个字体 对话框示例:

bool ok;
QFont font = QFontDialog::getFont(&ok);

标准输入对话框QInputDialog

标准字符串输入对话框

        标准字符串对话框函数形式如下:

static QString getText(
QWidget *parent, //标准输入框的父窗口
const QString &title, //标准输入框的标题
const QString &label,//标准输入框的标签提示
QLineEdit::EchoMode echo = QLineEdit::Normal,//指定标准输入框中QLineEdit的输入模式
const QString &text = QString(), //标准输入框的默认文字
bool *ok = nullptr,//若为true表示标准输入框的确认按钮按下;若为false表示取消按钮按下
Qt::WindowFlags flags = Qt::WindowFlags(),//指明 输入框的窗口标识
Qt::InputMethodHints inputMethodHints = Qt::ImhNone//
);

        创建一个标准字符输入框:

bool ok;
QString text = QInputDialog::getText(this,tr("标准字符串输入对话框"),tr("请输入姓名:"),QLineEdit::Normal,tr("张三"),&ok);

标准条目选择对话框

        标准条目选择对话框 函数形式如下:

static QString getItem(
QWidget *parent, //标准输入对话框的父窗口
const QString &title, //标准输入对话框的标题名
const QString &label,//标准输入框的标签提示
const QStringList &items, //指定标准输入框QCombox控件可选条目QStringList对象
int current = 0, //指定QCombox控件默认条目序号 
bool editable = true,//指定QCombox控件中显示文字是否可编辑
bool *ok = nullptr, //若为true,则表示OK按钮被点击;若为false,则表示Cancle按钮被点击
Qt::WindowFlags flags = Qt::WindowFlags(),//指明标准输入框的窗口标识
Qt::InputMethodHints inputMethodHints = Qt::ImhNone//
);

        创建一个标准条目对话框:

QStringList sexItem;
sexItem << tr("man") << tr("women");
bool ok;
QString sex = QInputDialog::getItem(this,tr("standardTermsDialog"),tr("Please select sex"),sexItem, 0, false,&ok);

标准int/double输入对话框

        标准int或double输入对话框函数表现形式如下:

static int getInt(
QWidget *parent, //标准输入框的父窗口
const QString &title, //标准输入框的标题
const QString &label, //标准输入框的提示信息
int value = 0,//标准输入框当前值
int minValue = -2147483647, //标准输入框最小值
int maxValue = 2147483647,//标准输入框最大值
int step = 1, //指定QSpinBox控件的步进值
bool *ok = nullptr, //是否按下ok按钮
Qt::WindowFlags flags = Qt::WindowFlags()//指定窗口标识
);
static double getDouble(
QWidget *parent, //
const QString &title, //
const QString &label, //
double value = 0,//
double minValue = -2147483647, //
double maxValue = 2147483647,//
int decimals = 1, //指定QSpinBox控件的步进值
bool *ok = nullptr, //
Qt::WindowFlags flags = Qt::WindowFlags()//
);
// ### Qt 6: merge overloads
static double getDouble(
QWidget *parent, 
const QString &title, 
const QString &label, 
double value,
double minValue, 
double maxValue, 
int decimals, 
bool *ok, 
Qt::WindowFlags flags,
double step
);

        创建标准输入框示例:

bool ok;
int age = QInputDialog::getInt(this,"input int","please input age:",18,0,100,1,&ok);
double score = QInputDialog::getInt(this,"input int","please input score:",80,0,100,1,&ok);

消息对话框QMessageBox

        在实际应用开发中,经常会遇到各种各样的消息框来为用户提供一些提示。Qt提供了QMessageBox类用于实现此功能。常见的消息对话框 有Question消息框,Information消息框,Warning消息框,Critical消息框,About消息框,AboutQt消息框以及Custom消息框。这些消息框用法大同小异,Question消息框表示一个简单询问,Information消息框作为正常提示,Warning消息框提醒用户发生了一个小错误,Critical消息框警告用户发生了一个严重的错误。

        消息对话框函数形式如下:

static StandardButton information(
QWidget *parent, 
const QString &title,
const QString &text, 
StandardButtons buttons = Ok,
StandardButton defaultButton = NoButton
);
static StandardButton question(
QWidget *parent, 
const QString &title,
const QString &text, 
StandardButtons buttons = StandardButtons(Yes | No),
StandardButton defaultButton = NoButton
);
static StandardButton warning(
QWidget *parent, 
const QString &title,
const QString &text, 
StandardButtons buttons = Ok,
StandardButton defaultButton = NoButton
);
static StandardButton critical(
QWidget *parent, 
const QString &title,
const QString &text, 
StandardButtons buttons = Ok,
StandardButton defaultButton = NoButton
);
static void about(
QWidget *parent, 
const QString &title, 
const QString &text);
static void aboutQt(
QWidget *parent, 
const QString &title = QString()
);

        对话框示例如下:

QMessageBox::question(this,tr("Question消息框"),tr("是否结束程序?"),QMessageBox::Ok|QMessageBox::Cancel,QMessageBox::Ok);
QMessageBox::information(this,tr("Information消息框"),tr("Information消息提示"));
QMessageBox::warning(this,tr("Warning消息框"),tr("warning提示内容"),QMessageBox::Save|QMessageBox::Discard|QMessage::Cancel,QMessageBox::Save);
QMessageBox::critical(this,tr("Critical消息框"),tr("Critical消息提示"));
QMessageBox::About(this,tr("About消息框"),tr("这是一个About消息框测试"));
QMessageBox::aboutQt(this,tr("About Qt消息框"));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值