QT之导航栏实现
来源:互联网 发布:广州c语言培训机构 编辑:程序博客网 时间:2024/05/21 10:49
有道词典大家一定用过,今天要分享的就是类似与有道词典侧边导航栏的做法(PS:有道词典 用的不是QT技术实现的 而是 Hex技术 点击查看详情)
上图就是有道词典的导航栏
开始正题,如何用QT来实现类似的效果
涉及的技术主要是QListWidget(列表窗口)和qstaqsta(堆叠窗口)的应用
(PS:在设计时先不用考虑好不好看,逻辑搞定了然后再用QSS代码美化)
具体怎么布局就不说了,你开行就好。
技术一 :如何在导航栏中间插入一跟横线(QLine)使界面逻辑性更强
可以把导航栏拆分成若干个QListWidget,先建一个widget,然后在widget上键若干个qlistwidget,在widget上加一些横线就很简单了ヾ(=゚・゚=)ノ喵♪ 不懂的看下图 黄色部分就是widget
技术二:怎么确定qlistwidget中所选的与QStackedWidget中页的对应关系?
这个要用到QListwidget中的信号 itemClicked(QListWidgetItem *) 顾名思义是item被点击的信号
再处理这个信号的槽函数中 用 currentRow()函数获得一选中的item的行号 再用QStackedWidget 中的setCurrentIndex(int pag) 把QStackedWidget显示到对应的页面就可以。其中的逻辑关系自己对应。
技术三:在选中不同的listwidget中的item时显示的是每个listwidget中都有选中的,这个和导航栏不太一样啊!
可以在响应itemClicked(QListWidgetItem *)的槽函数中加一个判断噻!用QListWidgetItem中的setSelected(bool)函数可以改变item被选中的状态,剩下的不多说了,很容易就有办法了!
技术四:在预览界面时界面好丑!
用QSS来美化!用QSS来美化!用QSS来美化!
下面提供一个我的美化方案,很简单,大家可以模仿的写
QListView { show-decoration-selected: 1;}QListView::item { min-height:40px; /*设置每个item的高度*/ border-style: none; /*去掉item的borber*/ color: rgb(88, 88, 88);/*文字颜色*/ font: 10pt "新宋体";}QListView::item:selected { border: none;border-style: none; background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #FAFBFE, stop: 1 #DCDEF1);/*这是一个渐变颜色*/ color: rgb(138,43,226); }QListView::item:hover { /*鼠标悬停时的效果*/ color: rgb(138,43,226);}技术五、为什么选中item时显示一个虚线框
因为默认是有焦点的,可以改变listwidget的焦点策略
QListwidegt的函数setFocusPolicy()改成NoFocus,用Qt设计师也可以改,有这个选项。
对了,记得设置item文字居中,该有设置qlistwidget的无边款效果 用setFrameShape(QListWidget::NoFrame);
教程完结!
效果图:
- QT之导航栏实现
- QT自定义控件之导航栏实现
- Qt - 导航栏的实现
- Qt Quick实现底部导航
- XAF之实现子导航栏
- Fragment之底部导航栏的实现
- Android底部导航栏实现之BottomNavigationBar
- Qt Quick实现页面之间的导航
- Intent之实现功能导航
- IOS成长之路-导航栏的实现
- IOS成长之路-导航栏的实现
- Android 大杂烩工程之底部导航栏的实现方式
- Android学习之BottomNavigationBar实现Android特色底部导航栏
- Android学习之BottomNavigationBar实现Android特色底部导航栏
- Android开发笔记之TabLayout实现导航栏的效果
- 实现导航Tab栏悬浮功能之改进版
- Android底部导航栏实现(一)之BottomNavigationBar
- Android底部导航栏实现(二)之RadioGroup
- 在C# 中使用接口
- 文章标题
- Java sdut ACM 2192 救基友记2
- 二十六、SpringBoot的Maven构建
- IMWeb训练营作业
- QT之导航栏实现
- Ubuntu 16.04 搜狗输入法突然用不了
- 吴军:未来,是2%人的世界
- CCFCSP201412-1门禁系统
- Gradle 1.12用户指南翻译——第五十七章. 编写自定义任务类
- 素数筛法
- pg学习_数据查询
- How to use fasterxml Jackson JSON serialization in Spring 4
- 34. Search for a Range