paintevent参数_Qt学习: QPaintEvent和QMouseEvent的简单程序示例
QMouseEvent下可以被重写的虚函数:
1.void mousePressEvent(QMouseEvent *event); //鼠标键被按下的事件.
2.void mouseReleaseEvent(QMouseEvent *event); //鼠标键被放开的事件.
3.void mouseMoveEvent(QMouseEvent *event); //按住鼠标键移动的事件.
4.void mouseDoubleClickEvent(QMouseEvent *event); //鼠标键被双击的事件.
QMouseEvent类中的重要函数:
1.QPoint pos(); //返回鼠标相对于父部件的坐标.
2.QPoint globalPos(); //返回鼠标的全局坐标.
3.QMouseButton button(); //返回鼠标被点击的键.
“c.cpp”下的代码:#include "c.h"c::c(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
}
c::~c()
{
}void c::mouseMoveEvent(QMouseEvent *event)
{ //保存鼠标移动的时候的尾坐标.
end = event->pos(); //用来重绘更新.可以理解为调用paintEvent函数,但不一定是立即调用的.在此程序中可以理解为:马上更新窗口上显示的图像.
update();
}void c::paintEvent(QPaintEvent *event)
{ //画一个矩形.
QPainter painter(this);
painter.setPen(Qt::red);
QRect temp(start, end);
painter.setBrush(Qt::green);
painter.drawRect(temp);
}void c::mouseReleaseEvent(QMouseEvent *event)
{ //当左键释放后,保存尾坐标.
if (event->button() == Qt::LeftButton)
{ this->end = event->pos();
update();
}
}void c::mousePressEvent(QMouseEvent *event)
{ //当左键被按下时,保存首坐标.并更新重绘.
if (event->button() == Qt::LeftButton)
{ //点击的时候定下初始位置.
this->start = event->pos();
}
}123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
“c.h”的代码:#ifndef C_H#define C_H#include #include "ui_c.h"#include #include #include #include #include #include class c : public QMainWindow
{
Q_OBJECTpublic: c(QWidget *parent = 0);
~c();protected: void mouseMoveEvent(QMouseEvent *event); void mouseReleaseEvent(QMouseEvent *event); void mousePressEvent(QMouseEvent *event); void paintEvent(QPaintEvent *event);private:
Ui::cClass ui;
QPoint start;
QPoint end;
};#endif // C_H1234567891011121314151617181920212223242526272829303132
最后是”main.cpp”下的代码:#include "c.h"#include int main(int argc, char *argv[])
{
QApplication a(argc, argv);
c w;
w.show(); return a.exec();
}
paintevent参数_Qt学习: QPaintEvent和QMouseEvent的简单程序示例相关推荐
- paintevent参数_QT 作图事件 PaintEvent
QT 绘制事件 PaintEvent 对事件的响应是通过信号与槽调用 事件中根据事件触发的条件发出不同的信号 比如:鼠标事件发出clicked与dblclicked等信号 QT中事件是怎么实现的? Q ...
- 嵌入式成长轨迹34 【嵌入式学习阶段】【ARM环境调试】【QT 移植环境及简单程序示例】---补充《ok6410 Qt移植百科全书》...
更新版 http://www.cnblogs.com/zeedmood/archive/2012/12/08/2808393.html 书上提及的有这些,分别说明下,里边打*可以不弄: Tslib ...
- SSH学习笔记(9)__Spring5_概述/简单程序/整合日志
Spring5学习笔记 本文章基于B站UP主 孙帅suns 的视频教程<孙哥说Spring5>进行整理记录,本文章仅用于个人学习/交流使用. 参考博客:https://blog.csdn. ...
- Mysql一些重要配置参数的学习与整理(一)
2019独角兽企业重金招聘Python工程师标准>>> 原文地址:Mysql一些重要配置参数的学习与整理(一) 最近一直在进行mysql的学习,主要是学习mysql的一些配置参数,了 ...
- Mysql一些重要配置参数的学习与整理(二)
2019独角兽企业重金招聘Python工程师标准>>> 原文地址:Mysql一些重要配置参数的学习与整理(二) 上一篇,Mysql一些重要配置参数的学习与整理(一)中,我们了解和学习 ...
- 长尾序列用户行为建模中可转移参数的学习(KDD-2020)
本文给大家分享的是阿里和浙大合作发表在KDD-2020上的文章<Learning Transferrable Parameters for Long-tailed Sequential User ...
- tensorflow学习笔记二——建立一个简单的神经网络拟合二次函数
tensorflow学习笔记二--建立一个简单的神经网络 2016-09-23 16:04 2973人阅读 评论(2) 收藏 举报 分类: tensorflow(4) 目录(?)[+] 本笔记目的 ...
- php django mysql配置文件_Mysql学习Django+mysql配置与简单操作数据库实例代码
<Mysql学习Django+mysql配置与简单操作数据库实例代码>要点: 本文介绍了Mysql学习Django+mysql配置与简单操作数据库实例代码,希望对您有用.如果有疑问,可以联 ...
- 贝叶斯优化神经网络参数_贝叶斯超参数优化:神经网络,TensorFlow,相预测示例
贝叶斯优化神经网络参数 The purpose of this work is to optimize the neural network model hyper-parameters to est ...
最新文章
- python的plt函数_plt.plot画图函数
- 周志华《机器学习》课后习题解析(第四章):决策树
- 介绍“又一个” Cloud Foundry Gradle插件
- 教学计划计算机,计算机教学计划模板
- dwr java有返回值但是js获取不到返回值_一探究竟:Java反射效率低的原因到底在哪?...
- Git提交错了不用慌,这三招帮你修改记录
- thinkphp中I(parm)用法的注意事项
- SSH框架下的在线人数统计的一种解决途径
- POJ 1050 To the Max (最大子矩阵和)
- Oracle数据库下载
- vc sp5 补丁下载地址
- windbg分析BSOD dump文件实战
- amd显卡用黑苹果输出黑屏_黑苹果XFX讯景显卡刷vBIOS教程,使其黑苹果显卡更稳定完美,不再黑屏...
- 2019-PINN-A deep learning framework for solving forward and ... nonlinear PDEs
- linux 断开远程vnc,Linux停VNC远程控制的使用方法
- 选择深度学习的GPU卡
- PTA 租用游艇问题
- 第十六节 桥、桥、桥,得一桥得天下
- Mq报错:Caused by: com.rabbitmq.client.ShutdownSignalException
- 龙芯中科科创板上市:市值357亿 成国产CPU第一股