QT 标准对话框

1. 颜色对话框

#include <QColorDialog>

QColorDialog dialog(Qt::red, this);
dialog.setOption(QColorDialog::ShowAlphaChannel); //显示alpha选项
dialog.exec();

QColor color = dialog.currentColor(); //获取当前颜色
qDebug() << "color: " << color;
2. 文件对话框

#include <QFileDialog>

QString fileName = QFileDialog::getOpenFileName(this, tr("文件对话框"), "/home", tr("图片文件(*png *jpg);;文本文件(*txt)")); //选择单个文件
QStringList fileNames = QFileDialog::getOpenFileNames(this, tr("文件对话框"), "/home", tr("图片文件(*png *jpg);;文本文件(*txt)")); //选择多个文件
qDebug() << "fileName: " << fileName << "fileNames: " << fileNames;
3. 字体对话框

#include <QFontDialog>

bool ok;
QFont font = QFontDialog::getFont(&ok, this);
if(ok)
{
    ui->pushButton_2->setFont(font);
}
4. 输入对话框

#include <QInputDialog>

bool ok;
//获取字符串
QString string = QInputDialog::getText(this, tr("输入字符串对话框"), tr("请输入用户名:"), QLineEdit::Normal, tr("admin"), &ok);
//获取整数
int value1 = QInputDialog::getInt(this, tr("输入整数对话框"), tr("请输入整数:"), 100, -1000, 1000, 10, &ok);
//获取浮点
double value2 = QInputDialog::getDouble(this, tr("输入浮点对话框"), tr("请输入浮点数:"), 0.00, -1000, 1000, 2, &ok);
//获取条目
QStringList items;
items << tr("条目1") << tr("条目2");
QString item = QInputDialog::getItem(this, tr("输入条目对话框"), tr("请选择一个条目:"), items, 0, true, &ok);
5. 消息对话框

#include <QMessageBox>

//问题对话框
int ret1 = QMessageBox::question(this, tr("问题对话框"), tr("你了解Qt吗?"), QMessageBox::Yes, QMessageBox::No);
if(ret1 == QMessageBox::Yes)
{
    qDebug() << tr("问题!");
}

//提示对话框
int ret2 = QMessageBox::information(this, tr("提示对话框"), tr("这是Qt书!"), QMessageBox::Ok);
if(ret2 == QMessageBox::Ok)
{
    qDebug() << tr("提示!");
}

//警告对话框
int ret3 = QMessageBox::warning(this, tr("警告对话框"), tr("不能提前结束!"), QMessageBox::Abort);
if(ret3 == QMessageBox::Abort)
{
    qDebug() << tr("警告!");
}

//错误对话框
int ret4 = QMessageBox::critical(this, tr("严重错误对话框"), tr("严重错误!马上关闭文件!"), QMessageBox::YesAll);
if(ret4 == QMessageBox::YesAll)
{
    qDebug() << tr("错误!");
}

//关于对话框
QMessageBox::about(this, tr("关于对话框"), tr("学习QT!"));
6. 进度条

#include <QProgressDialog>

QProgressDialog dialog(tr("文件复制进度"), tr("取消"), 0, 50000, this);
dialog.setWindowTitle(tr("进度对话框"));
dialog.setWindowModality(Qt::WindowModal);
dialog.show();

for(int i=0; i<50000; i++)
{
    dialog.setValue(i);
    QCoreApplication::processEvents(); //避免界面冻结
    if(dialog.wasCanceled()) //取消
        break;
}
dialog.setValue(50000);
7. 错误对话框

#include <QErrorMessage>

QErrorMessage *dialog = new QErrorMessage(this);
dialog->setWindowTitle(tr("错误信息对话框"));
dialog->showMessage(tr("这里是出错信息!"));


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值