QT 总结

设置控件的边角为圆角:

border-top-left-radius 设置左上角圆角;
border-top-right-radius 设置右上角圆角;
border-bottom-left-radius 设置左下角圆角;
border-bottom-right-radius 设置右下角圆角;
border-radius 设置四个角圆角;
更改样式表代码如下:

效果如下:

提升为"自定义控件"
右击窗口 点击“提升为”

然后就可以在指定创建的控件中提升为自定义的控件了。

QFont改变字体颜色和其他属性
QFont font;
font.setPixelSize(20);//文字像素大小
font.setFamily(“微软雅黑”);//字体
1
2
3
ui->customPlot_3->xAxis->setBasePen(QPen(Qt::white));//设置线条为白色
ui->customPlot_3->xAxis->setTickPen(QPen(Qt::white));//设置锯齿格子为白色
ui->customPlot_3->xAxis->setTickLabelFont(font);//设置x轴的字体
ui->customPlot_3->xAxis->setTickLabelColor(Qt::white);//设置x轴的label颜色
1
2
3
4
效果图如下:

QT实现listwidget改变调节stackwidget界面。
void MainWindow::on_listWidget_currentRowChanged(int currentRow)
{
ui->stackedWidget->setCurrentIndex(currentRow);
}

		              				Qt开发

day5:事件 鼠标事件 键盘事件 过滤事件 定时器事件
绘图事件
事件(函数):指的是在QT的类中预先定义好的某些特定信号对应的处理函数,这些特定的 信号一般是由外设发出,如鼠标、键盘、定时器等,这些处理函数是虚函数 , 在工程中使用时需要重写。
QObject–>虚函数–》事件函数
事件函数和槽函数的区别:
事件函数:是QT类中提前定义好的虚函数,使用时需要重写,但不需要使用connect和 信号进行关联。一旦信号发出,对应的事件函数就会被调用。
槽函数:可以是提前定义好的(但不是虚函数,不需要重写),也可以是自定义的(不是 虚函数,不需要重写),使用时需要用connect将信号和槽关联。
键盘事件:
键盘按压事件–》keyPressEvent()
键盘释放事件–>keyReleaseEvent()
鼠标事件:
鼠标按压事件–》mousePressEvent()
鼠标释放事件–>mouseReleaseEvent()
鼠标移动事件–>mouseMoveEvent()
鼠标双击事件–>mouseDoubleClickEvent()
过滤器事件:鼠标 键盘
过滤事件–》eventFilter
QEvent:通用事件类 它派生出来了QKeyEvent和QMouseEvent
定时器事件:
QT中的定时器有两种用法:
1 QTimer timeout–>槽函数
2 每一个QT工程都包含一个默认的定时器
启动:this->startTimer(1000);
当定时时间到时,对应的定时器事件函数就会被系统自动调用
定时器事件–》timerEvent()

  绘图事件: QPaintEvent
     画一条线
		分析:1 鼠标移动--》收集移动的点值--》保存--》容器--》QList<QPoint> list;
				2 绘图事件-->从容器中取出点值,绘制成一条线
   画多条线
		分析:
			1 鼠标移动--》收集移动的点值--》保存--》容器--》
				QVector< QVector<QPoint> >  _lines;//线集合对象
			2 鼠标按压--》点值--》保存--》容器
				创建一条新线	
			3 绘图事件--》二层循环  线--》点
     画图--》QImage
	pt.drawImage(0,0,drawing,0,0,this->width(),this->height())
	参数1:目标窗体的起始位置X坐标
       参数2:目标窗体的起始位置Y坐标
	参数3:需要绘制的源图片
	参数4:源图片的起始位置X坐标
	参数5:源图片的起始位置Y坐标
	参数6:目标窗体的宽度
	参数7:目标窗体的高度
   画圆  QPointer  
   画鼠标跟踪器		            

day6:线程 网络编程 数据库 network QTcpsocket QTcpserver
QT高级编程:IO–》QFile 进程–>QProcess 线程–>QThread 网络编程 数据库
Linux系统高级编程:IO 进程 线程 网络编程 数据库–>sqlite
1 线程–》QThread–>线程基类
QT为什么需要线程?
当界面的某个成员函数中有比较耗时的操作时,界面就会出现卡死的现象。
如何解决?可以创建一个线程,让其处理耗时的操作,当前进程返回正常值。

	在QT工程中要使用线程,需要那些因素?
		1 需要定义一个线程类对象           派生类线程对象
		2 需要在类中重写线程执行函数run()
		3 启动线程   对象.start()

  总结:
		1 新定义一个线程类继承自QThread
		2 重写线程执行函数run()
		3 在主界面中启动线程(start),则run()就会被自动调用,用户无需主动调用run。
		4 当子线程要退出时,给主进程发信号,主进程在对应的槽函数中回收资源。
		emit  信号函数
   pthread_create(,threadFunc)

2 网络编程
	QTcpSocket
	QUdpSocket
  3 数据库
   sqlite  mysql
   API-->open  exec  close
	sql指令:创建表  create table student()
				插入   insert into student () values ()
				删除   delete from student ?
				修改   update 
				查询   select  *from student
  QSqlDatabase   db= QSqlDatabase::addDatabase("QSQLITE");
  QSqlQuery   que=
				que.exec(sql指令)
  test517.s3db
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值