嵌入式Qt 标准对话框 -消息对话框QMessageBox-文件对话框QFileDialog

{
qDebug() << “Ok button is clicked!”
}


![](https://img-blog.csdnimg.cn/direct/6003f7b6413147dc904723c7f0103005.png)


##  三.文件对话框


![](https://img-blog.csdnimg.cn/direct/5aa6ec1b759a46198be226ccc85b1cd8.png)


文件对话框的使用方式:



//定义文件对话框,并指定父窗口
QFileDialog fd(this);

//设置属性,即 打开模式:AcceptOpen,保存模式:AcceptSave
fd.setAcceptMode(QFileDialog :: AcceptOpen);
//在打开模式下又分为两种模式: 选择单个文件(ExistingFile), 选择多个文件(ExistingFiles),
fd.setFileMode(QFileDialog ::ExistingFile);

// 以模态方式使用
if(fd.exec() == QFileDialog ::Accepted)
{
// 得到用户所选择的文件,使用 selectedFiles
//返回值为QStringList链表 链表中信息 即所选择的文件: 文件路径+名文件路径+名
QString fs = fd.selectedFiles();
}


![](https://img-blog.csdnimg.cn/direct/72341a6cc26a4822a4e292d1598b4d0a.png)


## 四.对话框代码实现


main.c:



#include <QtGui/QApplication>
#include “Widget.h”

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;

w.show();

return a.exec();

}


Widget.h



#ifndef WIDGET_H
#define WIDGET_H

#include <QtGui/QWidget>
#include

class Widget : public QWidget
{
Q_OBJECT
private:
QPushButton SimpleMsgBtn;
QPushButton CustomMsgBtn;
QPushButton OpenFileBtn;
QPushButton SaveFileBtn;
private slots:
void SimpleMsgBtn_Clicked();
void CustomMsgBtn_Clicked();
void OpenFileBtn_Clicked();
void SaveFileBtn_Clicked();
public:
Widget(QWidget *parent = 0);
~Widget();
};

#endif


Widget.c:



#include “Widget.h”
#include
#include
#include

Widget::Widget(QWidget *parent) : QWidget(parent),
SimpleMsgBtn(this), CustomMsgBtn(this), OpenFileBtn(this), SaveFileBtn(this)
{
SimpleMsgBtn.setText(“Simple Message Dialog”);
SimpleMsgBtn.move(20, 20);
SimpleMsgBtn.resize(160, 30);

CustomMsgBtn.setText("Custom Message Dialog");
CustomMsgBtn.move(20, 70);
CustomMsgBtn.resize(160, 30);

OpenFileBtn.setText("Open File Dialog");
OpenFileBtn.move(20, 120);
OpenFileBtn.resize(160, 30);

SaveFileBtn.setText("Save File Dialog");
SaveFileBtn.move(20, 170);
SaveFileBtn.resize(160, 30);

resize(200, 220);
setFixedSize(200, 220);

connect(&SimpleMsgBtn, SIGNAL(clicked()), this, SLOT(SimpleMsgBtn_Clicked()));
connect(&CustomMsgBtn, SIGNAL(clicked()), this, SLOT(CustomMsgBtn_Clicked()));
connect(&OpenFileBtn, SIGNAL(clicked()), this, SLOT(OpenFileBtn_Clicked()));
connect(&SaveFileBtn, SIGNAL(clicked()), this, SLOT(SaveFileBtn_Clicked()));

}

void Widget::SimpleMsgBtn_Clicked()
{
QMessageBox msg(this);

msg.setText("This is a message dialog!");

msg.exec();

}

void Widget::CustomMsgBtn_Clicked()
{
QMessageBox msg(this);

msg.setWindowTitle("Window Title");
msg.setText("This is a detail message dialog!");
msg.setIcon(QMessageBox::Information);
msg.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel | QMessageBox::YesToAll);

if( msg.exec() == QMessageBox::Ok )
{
    qDebug() << "Ok button is clicked!";
}

}

void Widget::OpenFileBtn_Clicked()
{
QFileDialog dlg(this);

dlg.setAcceptMode(QFileDialog::AcceptOpen);
dlg.setFilter("Text(*.txt)");
dlg.setFileMode(QFileDialog::ExistingFiles);

if( dlg.exec() == QFileDialog::Accepted )
{
    QStringList fs = dlg.selectedFiles();

    for(int i=0; i<fs.count(); i++)
    {

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!

升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!

  • 28
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值