QT中对话框的操作

QT中对话框的操作

1.对话框的分类

  • 模态对话框(不可以对其他窗口进行操作)
  • 非模态对话框(可以对其他窗口进行操作)

2.模态对话框的创建

//创建一个按钮,可以通过点击按钮实现打开一个模态对话框
QPushButton *btn_open_dialog = new QPushButton("打开一个对话框",this);
connect(btn_open_dialog,&QPushButton::clicked,this,[=](){
    //创建模态对话框
    QDialog dlg(this);
    //调整模态对话框的大小,太小会报警告
    dlg.resize(200,100);
    //模态对话框执行操作,会阻塞后面的代码执行
    dlg.exec();
    qDebug() << "模态对话框弹出来了....";

});

3.非模态对话框的创建

//非模态对话框
//创建一个按钮,可以通过点击按钮实现打开一个非模态对话框
QPushButton *btn_open_dialog2 = new QPushButton("打开一个非模态对话框",this);
//绑定信号和槽函数
connect(btn_open_dialog2,&QPushButton::clicked,this,[=](){
    //创建一个非模态对话框
    QDialog *dlg2 = new QDialog(this);
    //调整模态对话框的大小,太小会报警告
    dlg2->resize(200,100);
    //设置属性,关闭窗口的时候销毁对象
    dlg2->setAttribute(Qt::WA_DeleteOnClose);
    //显示对话框,非阻塞,后面的代码依然会执行
    dlg2->show();
    qDebug() << "非模态对话框弹出来了....";
});

4.消息对话框QMessageBox

使用静态成员函数创建对话框

//消息对话框
QMessageBox::critical(this,"Critical","错误");

//信息对话框
QMessageBox::information(this,"Information","消息");

//提问对话框
//参数: 父亲、标题、提示内容、按键类型、默认关联回车按键
if(QMessageBox::Save == QMessageBox::question(this,"ques","提问",QMessageBox::Save|QMessageBox::Cancel,QMessageBox::Save)){
    qDebug() << "点击的是保存";
}
else{
    qDebug() << "点击的是取消";
}

//警告对话框
QMessageBox::warning(this,"warning","警告");

5.其他标准对话框

5.1颜色对话框

//颜色对话框
QColor color = QColorDialog::getColor(QColor(255,0,0));
qDebug() << "r = " << color.red() << " g = "<< color.green() << " b = " << color.blue();

5.2 文件对话框

 //文件对话框,参数:父亲、标题、默认打开路径、过滤文件格式
 //返回值是选取的路径
 QString filepath = QFileDialog::getOpenFileName(this,"打开文件","./","(*).txt");
 qDebug() << "opened file is" << filepath.toUtf8().data();

最后一个参数是过滤器,多个过滤器之间使用进行分割
例如

QString fileName = QFileDialog::getOpenFileName(this,
                                                    tr("打开图片文件"),
                                                     "/home/lhd/tongji/Raccoon/map_editor/map" ,
                                                    "JPEG Files(*.jpg);;PNG Files(*.png);;PGM Files(*.pgm)");

5.3字体对话框

//字体对话框
bool flag;
QFont font = QFontDialog::getFont(&flag,QFont("华文彩云",36));
qDebug() << "字体:" << font.family() << " 字号:" << font.pointSize()
<< " 是否加粗:" << font.bold() << " 是否倾斜:" << font.italic();

当然还有很多其他的标准对话框,这里只列出了几个常用的,如果需要了解其他对话框可以查看QT的帮助文档。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值