• day_3QT学习


    1           自定义控件封装

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

    1.2          .ui中 设计 QSpinBox和QSlider 两个控件

    1.3          Widget中使用自定义控件,拖拽一个Widget,点击提升为,点击添加,点击提升

    1.4          实现功能,改变数字,滑动条跟着移动 ,信号槽监听。

    1.5          提供 getNum  和 setNum对外接口

    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");

    12        

  • 相关阅读:
    Python 数据类型
    Python 基础
    多表联查和子查询
    python基础中数据类型
    小说体验报告--微信输入法语音转文字--atm转账--签到礼盒的设计点
    PC端和移动端 微信加入群聊--游戏签到 --模拟打车的测试用例设计点
    jmeter连接mysql数据库时报无法创建PoolableConnectionFactory(拒绝用户的root@localhost访问(使用密码:YES))
    jmeter 软件测试
    postman的使用
    Fiddler抓取 模拟机HTTPS包
  • 原文地址:https://www.cnblogs.com/gjianli/p/14342054.html
Copyright © 2020-2023  润新知