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


![](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++)
    {
        qDebug() << fs[i];
    }
}

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

深知大多数嵌入式工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

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

img

img

img

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

img

img

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

如果你觉得这些内容对你有帮助,可以+V:Vip1104z获取!!! (备注:嵌入式)

img

最后

资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~

你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!

src=“https://i-blog.csdnimg.cn/blog_migrate/6539017ca5b14a42adfb487db3ae2e96.jpeg” alt=“img” style=“zoom: 67%;” />

最后

资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~

你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!

更多资料点击此处获qu!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值