• 3971阅读
  • 6回复

[讨论]Qt应用程序所有界面实现,右键返回功能 [复制链接]

上一主题 下一主题
离线misgn
 

只看楼主 倒序阅读 楼主  发表于: 2017-06-21
回复本帖可获得3RMB金钱奖励!
每人最多可获奖1次,奖池剩余45RMB金钱 (中奖几率10%)
目前项目有一个需求,需要90%的界面实现,右键返回的功能。请教一下,大家的想法。
如何去实现,总不能每一个界面类都去重现 mouseEvent 把?
离线笑颜

只看该作者 1楼 发表于: 2017-06-21
C++继承机制不就是为了减少代码而生的吗?组织好继承关系,就能很好的提高代码利用率。比如,你如果想所有窗口都能鼠标移动,可以提炼一个移动的窗口父类,需要的直接继承就行了,注意一个菱形继承的问题。
1条评分金钱+3
misgn 金钱 +3 - 2017-06-22
离线never_forget

只看该作者 2楼 发表于: 2017-06-21
回 笑颜 的帖子
笑颜:C++继承机制不就是为了减少代码而生的吗?组织好继承关系,就能很好的提高代码利用率。比如,你如果想所有窗口都能鼠标移动,可以提炼一个移动的窗口父类,需要的直接继承就行了,注意一个菱形继承的问题。 (2017-06-21 15:38) 

楼主正解~~~
离线misgn

只看该作者 3楼 发表于: 2017-06-22
回 笑颜 的帖子
笑颜:C++继承机制不就是为了减少代码而生的吗?组织好继承关系,就能很好的提高代码利用率。比如,你如果想所有窗口都能鼠标移动,可以提炼一个移动的窗口父类,需要的直接继承就行了,注意一个菱形继承的问题。 (2017-06-21 15:38) 

谢谢,经过测试的可以的。
界面画多了,导致忘记 C++ 老本行。流汗!
离线misgn

只看该作者 4楼 发表于: 2017-06-22
昨天经过技术群,文档得到了以下三种方案。

1. 注册全局事件过滤器
2. 你写个基类,然后继承不就行了么。
3. 下一个继承与`QApplication`的`Event`事件,然后监测



第二种确定是可以用,但会和子窗体中的一些控件冲突,例如:你继承基类,然后子类中存在一个QLIneEdit,如果在LineEdit中进行右键事件,右键事件就会被QLineEdit给获取,处理,然后父窗体就无法处理右键事件了。
离线自强不吸

只看该作者 5楼 发表于: 2017-06-22
回 misgn 的帖子
misgn:昨天经过技术群,文档得到了以下三种方案。
1. 注册全局事件过滤器
2. 你写个基类,然后继承不就行了么。
3. 下一个继承与`QApplication`的`Event`事件,然后监测
....... (2017-06-22 09:25) 

那你就得把第一条和第二天结合起来啊
自强不吸!
离线misgn

只看该作者 6楼 发表于: 2017-06-30
回 自强不吸 的帖子
自强不吸:那你就得把第一条和第二天结合起来啊 (2017-06-22 16:42) 

目前仅通过第二条,已实现右键返回。
但右键的事件可能会被子控件给接受并处理掉。
但已经满足目前的需求。
快速回复
限100 字节
 
上一个 下一个