• 5499阅读
  • 7回复

我想实现两个事件间的通信该怎么办?具体如下 [复制链接]

上一主题 下一主题
离线denglangyu
 

只看楼主 倒序阅读 楼主  发表于: 2009-01-10
— 本帖被 XChinux 执行加亮操作(2009-01-14) —
比如说我重载了paintEvent事件,与mousePressEvent事件,paintEvent事件在不断的画,我想通过点击鼠标来让他暂停,然后再点击,他又开始画.
这该怎么办?我新手,手上没书,电子书又全是英文的,社大还未毕业,看不懂
麻烦各位大虾指点下,发个教程也行,或者直接告诉我怎么做?
但是请详细解释下 用到的东西来自哪里 ,我好去学习
离线xjcook

只看该作者 1楼 发表于: 2009-01-11
你给你的类加一个标记就可以了,在 paintEvent里面检测到这个标记就直接返回了
在mousePressEvent里按下的时候把标记设置你你需要的。
离线denglangyu

只看该作者 2楼 发表于: 2009-01-12
请问下 给类加标记 是怎么回事            所谓加标记 涉及QT的什么知识,或者是C++的特性吗》 第一次听到。
离线long5337

只看该作者 3楼 发表于: 2009-01-18
没有看明白,谁能说的清楚一点吗??
离线nmiirq

只看该作者 4楼 发表于: 2009-01-19
所谓的标记大致的意思是一个全局性的变量或类的变量,让两个函数都可以访问,在mousePressEvent里设置这个变量是否有效,paint函数里来根据这个变量的值决定是否要画,就达到了控制的目的了!
离线duduqq

只看该作者 5楼 发表于: 2009-01-19
楼上的正解
离线ghnie

只看该作者 6楼 发表于: 2009-01-22
paintEvent事件可以暂停吗?
好像不可以吧。

只有在paintEvent里提前return,让其不执行后续代码吧?
离线280923299
只看该作者 7楼 发表于: 2009-01-29
先声明一个bool draw;

void mousePressEvent(..)
{
if (draw)
draw =false;
else
draw =true;
update();
}

void paintEvent(...)
{
...
if (draw)
//draw
else
return;
快速回复
限100 字节
 
上一个 下一个