新手求教Qt paintEvent如何执行不同按钮发出的不同指令

时间:2022-07-05 00:09:36
捣鼓到现在,累计出了这几个问题,希望大家解答下,新手
1、我设置了两个按钮,都在相同区域画图,把绘图都写在paintevent中了,能控制一个按钮执行一个画图操作而不是两个画图都执行呢?是不是控制button的ID ?还是用事件过滤器?还是调用函数再判断?
2、在一个类成员函数里面的对象怎么调用?我在cpp中写了一个void类型的函数,里面定义了变量int m ,如果在相同类不同函数上引用?我用.提示的作用域不够。用静态全局变量怎么样?

9 个解决方案

#1


楼主 第一个问题没听明白。
第二个问题:你那是想要在类中的其他方法里面用另一个方法的局部变量啊?你把那个局部变量定义成类中变量不就成了么?

#2


引用 1 楼 xiaoliang_1 的回复:
楼主 第一个问题没听明白。
第二个问题:你那是想要在类中的其他方法里面用另一个方法的局部变量啊?你把那个局部变量定义成类中变量不就成了么?

第一个问题就是比如我设置了按钮A 和B ,他俩功能都是在一个区域里面绘制,一个绘制白色,一个绘制黑色。我想点击A 时绘制白色 不调用黑色的代码。但是我按钮A 和B 都是直接传给update。 绘制颜色的代码都在paintEvent中,如果我按下按钮A 的时候总是绘制白色和绘制黑色都执行。怎么一对一控制啊?

#3


在线等啊,能有人帮忙解决下么

#4


用一个变量把按过哪个按钮存起来,至于怎么存,有个比较笨的方法就是通过信号槽,按了按键之后触发一个槽,在槽里给变量赋值,然后在paintevent做判断就行了。

#5


每个按钮对应一个标记变量,记录该按钮是否被按下,并在paintEvent()中根据标记变量的状态来分别执行不同的语句吧。
Lz是否觉得此方法可行?

#6


引用 4 楼 free510 的回复:
用一个变量把按过哪个按钮存起来,至于怎么存,有个比较笨的方法就是通过信号槽,按了按键之后触发一个槽,在槽里给变量赋值,然后在paintevent做判断就行了。

我设置了个bool全局变量,按钮关联了槽函数和update();我打算一按下按钮布尔变量就为true,但在paintEvent事件控制布尔变量不起作用,是不是我全局变量设置没设置对么?
如果我在头文件下面写上static bool judge;那么在paintevent中引用judge 提示undefined reference to `Maze::judge' 是这个原因么?

#7


引用 5 楼 blueliuyun 的回复:
每个按钮对应一个标记变量,记录该按钮是否被按下,并在paintEvent()中根据标记变量的状态来分别执行不同的语句吧。
Lz是否觉得此方法可行?

恩,我按照四楼的做法试下还是出错,另外能用sender()函数在paintEvent事件中做么?
能给个示范么?
谢谢

#8


还有在线的么?
能给支个招么,谢谢

#9


请问楼主最后怎么做的啊?可以知道下么

#1


楼主 第一个问题没听明白。
第二个问题:你那是想要在类中的其他方法里面用另一个方法的局部变量啊?你把那个局部变量定义成类中变量不就成了么?

#2


引用 1 楼 xiaoliang_1 的回复:
楼主 第一个问题没听明白。
第二个问题:你那是想要在类中的其他方法里面用另一个方法的局部变量啊?你把那个局部变量定义成类中变量不就成了么?

第一个问题就是比如我设置了按钮A 和B ,他俩功能都是在一个区域里面绘制,一个绘制白色,一个绘制黑色。我想点击A 时绘制白色 不调用黑色的代码。但是我按钮A 和B 都是直接传给update。 绘制颜色的代码都在paintEvent中,如果我按下按钮A 的时候总是绘制白色和绘制黑色都执行。怎么一对一控制啊?

#3


在线等啊,能有人帮忙解决下么

#4


用一个变量把按过哪个按钮存起来,至于怎么存,有个比较笨的方法就是通过信号槽,按了按键之后触发一个槽,在槽里给变量赋值,然后在paintevent做判断就行了。

#5


每个按钮对应一个标记变量,记录该按钮是否被按下,并在paintEvent()中根据标记变量的状态来分别执行不同的语句吧。
Lz是否觉得此方法可行?

#6


引用 4 楼 free510 的回复:
用一个变量把按过哪个按钮存起来,至于怎么存,有个比较笨的方法就是通过信号槽,按了按键之后触发一个槽,在槽里给变量赋值,然后在paintevent做判断就行了。

我设置了个bool全局变量,按钮关联了槽函数和update();我打算一按下按钮布尔变量就为true,但在paintEvent事件控制布尔变量不起作用,是不是我全局变量设置没设置对么?
如果我在头文件下面写上static bool judge;那么在paintevent中引用judge 提示undefined reference to `Maze::judge' 是这个原因么?

#7


引用 5 楼 blueliuyun 的回复:
每个按钮对应一个标记变量,记录该按钮是否被按下,并在paintEvent()中根据标记变量的状态来分别执行不同的语句吧。
Lz是否觉得此方法可行?

恩,我按照四楼的做法试下还是出错,另外能用sender()函数在paintEvent事件中做么?
能给个示范么?
谢谢

#8


还有在线的么?
能给支个招么,谢谢

#9


请问楼主最后怎么做的啊?可以知道下么