我想做一个游戏,在dialog的子类里定义游戏窗口包括相关按钮,然后把自定义一个画图类B(继承自widget),用于游戏的具体实现(包括绘图)。
我在dialog的子类里生命声明了类B的指针,并在该构造函数里创建对象,然后在类B实现paintevent,这就在dialog的子类里的窗口上能绘图,-----但是在相关按钮中创建对象,然后在dialog的子类窗口就不能绘图,发现paintevent没有调用,这是为什么呢,是不是画图类B的对象必须在窗口类的构造函数中创建啊???
QT 画图时在按钮的槽函数中创建对象,点击按钮时,paintevent就不会执行是怎么回事
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- qtchen_1988 2019-10-14 09:56关注
因为在构造函数创建时,主调用(父类)还未执行 show();全部构建后才执行showEvent(); 这时,子类也执行了showEvent(); 所以能显示。
但是你在按钮的槽函数创建子类,这时父类已经show了,不再执行showEvent(); 子类也就不会自动执行showEvent();所以看不到。结论:
你在创建子类后,添加一行: wgt->show(); 假设子类名称(wgt);解决 1无用
悬赏问题
- ¥15 想问一下stata17中这段代码哪里有问题呀
- ¥15 flink cdc无法实时同步mysql数据
- ¥100 有人会搭建GPT-J-6B框架吗?有偿
- ¥15 求差集那个函数有问题,有无佬可以解决
- ¥15 【提问】基于Invest的水源涵养
- ¥20 微信网友居然可以通过vx号找到我绑的手机号
- ¥15 寻一个支付宝扫码远程授权登录的软件助手app
- ¥15 解riccati方程组
- ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
- ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决