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 指定绘图设备
评论0