QT 对话框

1.模态&非模态对话框

通过点击菜单栏“新建”按钮打开对话框

使用connect连接按钮点击信号和主窗口弹出对话框的动作

connect(ui->actionnew,&QAction::

::triggered,[=](){

        QDialog dlg(this);

        dlg.exec();

        qDebug()<<"模态对话框已打开"; //模态对话框弹出时无法进行其它操作      

});

上述代码后[=](){}采用了LAMBAD表达式的方法

括号内的对话框可以换成其它形式的对话框

非模态对话框

QDialog *dlg=new QDialog(this);

this->show();

dlg->setAttribute(Qt::WA_DeleteOnClose);//55号属性

qDebug()<<"非模态对话框已弹出";//非模态对话框弹出式可以在其他窗口进行操作

为了防止对话框一闪而过,将变量放在堆区,通过指针实现,为了防止内存占用,用到了setAttribute函数设置在关闭对话框时释放内存,否则重复打开关闭的对话框内存没有被释放,只有在关闭主窗口时才释放。

消息对话框

错误对话框

QMessageBox::critical(this,"critical","错误");

信息对话框

QMessageBox::information(this,"information","信息");

警告对话框

QMessageBox::warning(this,":warning","警告");

提问对话框

QMessageBox::question(this,":warning","是否保存");

消息对话框直接调用QMessageBox静态成员函数实现,参数列表中,参数1是主对话框,参数2为对话框标题,参数3为提示语,参数4为按键类型,参数5为默认关联回车按键。

例如提问对话框

if(QMessageBox::Save==QMessageBox::question(this,":warning","是否保存",QMessageBox::Save|QMessageBox::Cancel,QMessageBox::Cancel)){

qDebug()<<"文件已保存";

}

else{

         qDebug()<<"取消保存";

}

question的返回类型为standardButton,也就是你选择的按键,当你直接回车时,默认关联的取消,通过返回值确认选择的按键,并作出相应的动作

文件对话框

QFileDialog::getOpenFileName(this,"打开文件",文件路径);

函数的返回值是文件全路径名

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值