Qt学习笔记一_qt 如何写 <<

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
img
img

如果你需要这些资料,可以戳这里获取

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

statusBar->addWidget(label);

核心控件



QTextEdit \*textEdit  = new QTextEdit(this);
setCentralWidget(textEdit);

浮动窗口



QDockWidget \*dock = new QDockWidget(this);
addDockWidget(QT::RightDockWIdgetArea,dock);

**12 模态与非模态**


1 dialog.exec()模态  
 2 dialog.show 非模态


**13 标准对话框、文件对话框**


1 标准 QMessegeBox:关于about、问题question  
 2 文件对话框 QFileDialog



Qstring s=QFileDialog::getOpenFileName(this,"open","../“,"source(\*.cpp \*.h);;Text(\*.txt);;all(\*.\*)");

**14 QT4与QT5**



//QT4
Connect(button,SIGNAL(click()),this,SOLT(close()));
//QT5
Connect(button,&Qpushbutton::clicked,this,&widget::close);
Connect(button,&Qpushbutton::clicked,
[](){});

**15 lambda构成**


![在这里插入图片描述](https://img-blog.csdnimg.cn/20190109144259490.)  
 1 [],标识一个lambda的开始,=:值传递,&:引用传递  
 2 ()定义变量  
 3 变量可变,=时变量是const  
 4 异常  
 5 返回值


**16 样式表**


1 子部件,整个窗口,甚至整个应用程序  
 2 selector选择器:`label.setStyleSheet("Qlabel:(color:red;)");`


**17 事件**


1 鼠标,键盘,定时器  
 2 鼠标动作->转换成相应对象->交给event()函数->事件处理器 event()不直接处理事件,而是按照事件对象的类型分派给特定的事件处理函数(switch)  
 3 事件可以理解为一个中断,处理完又回到正在处理的程序中  
 4 事件处理函数全是虚函数,保护类型  
 5 鼠标事件里有坐标函数x()y()  
 6 QString格式化Qstring("(%1,%2)").arg(e->x()).arg->y());  
 7 键盘事件 e->key() == QT::Key\_A获取键盘键值


**18 定时器事件**


1 如幻灯片、闹钟一般  
 2 处理函数  
 3 id = startTimer(1)毫秒为单位;指定id开始  
 4 杀死定时器killTimer(id);


**19 事件的忽略与接收**


1 事件与信号,例鼠标按下事件与鼠标按下信号,结果是事件接收后,如果没继续调用事件,事件不会往下传,就不会发送click信号。  
 2 处理关闭窗口事件,接收事件e->accept(),事件不会往下传递,不关闭窗口,忽略事件e->ignore(),事件传递给父组件 。


**20 Event函数**


1 只要是控件继承于QWidget,就有event(),控件都有event(),我们只需重写  
 2 QEvent里面有事件的type  
 3 事件分发过程



void MyWidget::event(Qevent \*e)
{
	switch(e->type())
	{
		case QEvent::close;
		closeEvent(e);
		break;
		case Qevent::MouseMove;
		mouseMoveEvent(e);
		break;
	}
}

4 让事件按原来进行return Qwidget::event(e);当对某一类事件特殊处理时。


**21 事件过滤器**



bool eventFilter(Qobject \*obj,Qevent \*e)
{
	//
}

1 事件先通过事件过滤器然后是事件操作  
 2 事件过滤器和被安装过滤器的组件必须在同一线程。  
 换句话说,多线程无效。


**22 简单绘图**


1 定义



QPainter p;//画家
p.begin(this);//指定设备
p.drawPixmap(0,0,width(),height(),QPixmap("../bg.png"));
p.end();

2 //画直线  
 //定义画笔/画刷(画笔可定义颜色等),把画笔/画刷交 给画家,然后画直线  
 Update()//间接调用paintEvent(),整个窗口都重绘,也可以指定范围  
 3 重写绘图事件,如果给窗口绘图,一定要在paintEvent()中  
 4 填充



p.fillrect(0,0,0,0,Qbrush(Qt::white))//通过画家
Pixmap.fill(Qt::white);//通过绘图设备

**23 QPixmap与QBitmap**


1 绘图设备:  
 Qbitmap 黑白  
 Qpixmap 彩色  
 2 区别:  
 Qpixmap:针对屏幕进行优化了,和平台相关  
 Qimage:和平台无关,可以对图片进行修改,在线程中绘图  
 Qpicture:保存绘图的状态(二进制文件)


**24 绘图设备转换**



//pixmap
//to Image
Qpixmap temp = Qpixmap::fromImage(image)
Qimage temp =pixmap.toImage();

**25 不规则窗口**



//去窗口边框
setWindowFlags(Qt::FramlessWindowHint | windowsFlages())
//把窗口设置为透明
setAttribute(Qt::WA TranslucentBackground)//设定属性

**26 QFile**



Qstring path=QFileDialog::getOpenFileName(this,"open","../","TXT(\*.txt)");
If(!path.isEmpty()){Qfile file(path);//文件对象
Bool isOK = file.open(QIODevice::ReadOnly);//打开文件
If(isOK){
//读文件,默认只识别utf-8
QByteArray array = file.readAll();
Ui->textEdit->setText(array);
//第二种读文件方法
QByteArray array;
While(!file.atEnd())
{
//读一行
array+=file.readline();
}
Ui->text->setText(array);
}
file.close();


//写文件
Qstring path=QFileDialog::getSaveFileName(this,"save","../","TXT(\*.txt)");
//只写方式打开
//获取编辑区内容
Qstring str = ui->textEdit->toPlainText();
File.write(str.toUtf8());

**27 QString to QByteArray**



QString buf;
QByteArray a = buf.toUtf8();//中文
A = buf.toLocal8Bit();//本地编码

**28 QFileInfo获取文件信息**



QFileInfo info(QFile类型);
Info.fileName();//名字
Info.suffix();//后缀

img
img

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

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

img-y9hJwvuI-1715899473442)]

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

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值