QT使用简介3

1. 自定义控件封装

  • 1.1 添加新文件 - Qt – 设计师界面类 (.h .cpp .ui) 设置名aaa

  • 1.2 .ui中 设计 QSpinBox和QSlider 两个控件
    在这里插入图片描述

  • 1.3 Widget中使用自定义控件,拖拽一个Widget,点击提升为aaa,点击添加,点击提升
    在这里插入图片描述

  • 1.4 实现功能,改变数字,滑动条跟着移动 ,信号槽监听。
    在这里插入图片描述

  • 1.5 提供 getNumsetNum对外接口
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 1.6 测试接口
    在这里插入图片描述

2. Qt中的事件

  • 2.1 鼠标事件
  • 2.2 鼠标进入事件 enterEvent
  • 2.3 鼠标离开事件 leaveEvent
  • 2.4 鼠标按下 mousePressEvent ( QMouseEvent ev)
  • 2.5 鼠标释放 mouseReleaseEvent
  • 2.6 鼠标移动 mouseMoveEvent
  • 2.7 ev->x() x坐标 ev->y() y坐标
  • 2.8 ev->button() 可以判断所有按键 Qt::LeftButton Qt::RightButton
  • 2.9 ev->buttons()判断组合按键 判断move时候的左右键 结合 & 操作符
  • 2.10 格式化字符串 QString( “ %1 %2 ” ).arg( 111 ).arg(222)
  • 2.11 设置鼠标追踪 setMouseTracking(true);
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

3. 定时器1

  • 3.1 利用事件 void timerEvent ( QTimerEvent * ev)
  • 3.2 启动定时器 startTimer( 1000) 毫秒单位
  • 3.3 timerEvent 的返回值是定时器的唯一标示 可以和ev->timerId 做比较
    在这里插入图片描述
    在这里插入图片描述

4. 定时器2

  • 4.1 利用定时器类 QTimer

  • 4.2 创建定时器对象 QTimer * timer = new QTimer(this)

  • 4.3 启动定时器 timer->start(毫秒)

  • 4.4 每隔一定毫秒,发送信号 timeout ,进行监听
    在这里插入图片描述

  • 4.5 暂停 timer->stop
    在这里插入图片描述

5. event事件

  • 5.1 用途:用于事件的分发
  • 5.2 也可以做拦截操作,不建议
  • 5.3 bool event( QEvent * e);
  • 5.4 返回值 如果是true 代表用户处理这个事件,不向下分发了
  • 5.5 e->type() == 鼠标按下 …
    在这里插入图片描述
    在这里插入图片描述

6. 事件过滤器

  • 6.1 在程序将时间分发到事件分发器前,可以利用过滤器做拦截
  • 6.2 步骤
    • 6.2.1 1、给控件安装事件过滤器
    • 6.2.2 2、重写 eventFilter函数 (obj , ev)
      在这里插入图片描述
      在这里插入图片描述
      -

7. QPainter 绘图

  • 7.1 绘图事件 void paintEvent()

  • 7.2 声明一个画家对象 QPainter painter(this) this指定绘图设备

  • 7.3 画线、画圆、画矩形、画文字
    在这里插入图片描述

  • 7.4 设置画笔 QPen 设置画笔宽度 、风格

  • 7.5 设置画刷 QBrush 设置画刷 风格

8. QPainter高级设置

  • 8.1 抗锯齿 效率低
    • 8.1.1 painter.setRenderHint(QPainter::Antialiasing);
  • 8.2 对画家进行移动
    • 8.2.1 painter.translate(100,0);
    • 8.2.2 保存状态 save
    • 8.2.3 还原状态 restore
  • 8.3 如果想手动调用绘图事件 利用update
  • 8.4 利用画家画图片 painter.drawPixmap( x,y,QPixmap( 路飞) )

9. QPaintDevice绘图设备

  • 9.1 QPixmap QImage QBitmap(黑白色) QPicture QWidget
  • 9.2 QPixmap 对不同平台做了显示的优化
    • 9.2.1 QPixmap pix( 300,300)
    • 9.2.2 pix.fill( 填充颜色 )
    • 9.2.3 利用画家 往pix上画画 QPainter painter( & pix)
    • 9.2.4 保存 pix.save( “路径”)
  • 9.3 Qimage 可以对像素进行访问
    • 9.3.1 使用和QPixmap差不多 QImage img(300,300,QImage::Format_RGB32);
    • 9.3.2 其他流程和QPixmap一样
    • 9.3.3 可以对像素进行修改 img.setPixel(i,j,value);
  • 9.4 QPicture 记录和重现 绘图指令
    • 9.4.1 QPicture pic
    • 9.4.2 painter.begin(&pic);
    • 9.4.3 保存 pic.save( 任意后缀名 )
    • 9.4.4 重现 利用画家可以重现painter.drawPicture(0,0,pic);

10. QFile 对文件进行读写操作

  • 10.1 QFile进行读写操作
  • 10.2 QFile file( path 文件路径)
  • 10.3 读
    • 10.3.1 file.open(打开方式) QIODevice::readOnly
    • 10.3.2 全部读取 file.readAll() 按行读 file.readLine() atend()判断是否读到文件尾
    • 10.3.3 默认支持编码格式 utf-8
    • 10.3.4 利用编码格式类 指定格式 QTextCodeC
    • 10.3.5 QTextCodec * codec = QTextCodec::codecForName(“gbk”);
    • 10.3.6 //ui->textEdit->setText( codec->toUnicode(array) );
      - 10.3.7 文件对象关闭 close
  • 10.4 写
    • 10.4.1 file.open( QIODevice::writeOnly / Append)
      - 10.4.2 file.write(内容)
      - 10.4.3 file.close 关闭

11. QFileInfo 读取文件信息

  • 11.1 QFileInfo info(路径)
  • 11.2 qDebug() << “大小:” << info.size() << " 后缀名:" << info.suffix() << " 文件名称:“<<info.fileName() << " 文件路径:”<< info.filePath();
  • 11.3 qDebug() << “创建日期:” << info.created().toString(“yyyy/MM/dd hh:mm:ss”);
  • 11.4 qDebug() << “最后修改日期:”<<info.lastModified().toString(“yyyy-MM-dd hh:mm:ss”);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值