• 6531阅读
  • 11回复

[提问]帮分析下相机菜单的实现思路 [复制链接]

上一主题 下一主题
离线shoelace
 
只看楼主 倒序阅读 楼主  发表于: 2012-12-19


要完成的菜单效果如图。
实现的功能:
按方向键的时候可以上下移动焦点,右键进入到下一级目录。左键返回到上一级菜单。
背景随焦点高亮显示,比如图中焦点在子菜单的第一item上,安装这栏的子菜单背景色高亮。(图中看的不是很清楚)
焦点在菜单那栏的时候媒体格式那个画面不显示。
焦点在媒体格式那栏时,按menu键,焦点回主菜单。

现在我的思路有两个问题
1 怎么让背景色随着焦点变化,比如焦点在菜单上时,整个菜单背景都亮。
2 焦点移动方法。采用Qt的focusNextChild()  focusPreviousChild()的话,会移动到菜单的最后一个item上,而不是刚才的item.或者说我的各个对象的父子关系创建的比较乱。
离线meibined

只看该作者 1楼 发表于: 2012-12-20
pushbutton有个函数setdown(),可以设置按钮为pressed状态
可以配合QSS设置hover和pressed状态
弄一个变量保存当前setDown的按钮的索引,然后捕捉按键进行事件的处理。
离线shoelace
只看该作者 2楼 发表于: 2012-12-20
抱歉我想问下,在捕捉按键进行事件的处理的时候,因为子对象不可用了,传给父对象后,怎么处理。
离线meibined

只看该作者 3楼 发表于: 2012-12-23
回 2楼(shoelace) 的帖子
什么意思?问题要描述清楚点
离线roywillow

只看该作者 4楼 发表于: 2012-12-23
这让我想起了QListWiget/QListView+QStackedWidget了
跟creator的选项配置对话框有类似的结构
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线shoelace
只看该作者 5楼 发表于: 2012-12-23
引用第4楼roywillow于2012-12-23 16:46发表的  :
这让我想起了QListWiget/QListView+QStackedWidget了
跟creator的选项配置对话框有类似的结构



是滴,我也是使用这些控件做的。
就是焦点控制这块蒙圈了
因为没有触摸屏,只有按键,来回移动两次就乱了。
比如说,焦点在最右侧的执行上时,按左键返回到菜单,再按左键返回主菜单。怎么实现。
离线shoelace
只看该作者 6楼 发表于: 2012-12-23
谁能提供各焦点移动的思路?
默认焦点在左侧主菜单上,按确认键移动到子菜单,再按确定到执行按钮。
焦点在执行按钮上时,按左键焦点移动到子菜单,
焦点在子菜单上时,按左键焦点移动到主菜单,
离线roywillow

只看该作者 7楼 发表于: 2012-12-23
回 6楼(shoelace) 的帖子
你是说要用方向键来操作是么
如果不是很复杂的话……不知道QShortcut如何
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线shoelace
只看该作者 8楼 发表于: 2012-12-24
哦?我看看那。多谢。
离线shoelace
只看该作者 9楼 发表于: 2012-12-24
Re:回 6楼(shoelace) 的帖子
引用第7楼roywillow于2012-12-23 18:14发表的 回 6楼(shoelace) 的帖子 :
你是说要用方向键来操作是么
如果不是很复杂的话……不知道QShortcut如何

我看了下QShortcut是设置快捷键的吧,如果我想只是通过左右按键进行操作的话呢,
离线roywillow

只看该作者 10楼 发表于: 2012-12-24
回 9楼(shoelace) 的帖子
因为有时候处理key event太麻烦,所以就用QShortcut代替
我觉得你可以尝试重写key event,其中用focusNext之类的来移动焦点?
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线shoelace
只看该作者 11楼 发表于: 2012-12-24
Re:回 9楼(shoelace) 的帖子
引用第10楼roywillow于2012-12-24 11:17发表的 回 9楼(shoelace) 的帖子 :
因为有时候处理key event太麻烦,所以就用QShortcut代替
我觉得你可以尝试重写key event,其中用focusNext之类的来移动焦点?



哦?哇,大虾你一直在线阿。
因为我前面用的Qlistwidget,用focusnext pre,设置的是Tab顺序的焦点,不是近来的item。
就是说如果菜单有5项,我选择了第3项进去后,返回的时候返回第五项了。
快速回复
限100 字节
 
上一个 下一个