QSlider使用技巧
2012-01-02 18:56
267 查看
1. 创建一个简单的QSlider
注意,在这里面speedSlider->setPageStep(1);是设置QSlider上一次鼠标点击,滑动柄移动的距离,若不设置,默认步长是setRange()中设置的大小。
2. 通过QSS更改QSlider的样式
参考链接:(http://blog.sina.com.cn/s/blog_791f544a0100s2ml.html)
"
QSlider中有四个比较重要的辅助控制器(subcontrol),groove表示槽的部分,handle表示滑块,add-page表示未滑过的槽部分,sub-page表示已滑过的槽部分。在辅助控制器后面可以设置状态,horizontal就是QSS生效的QSlider的状态,注意这里设置的方向一定要和slider对象的方向一致,如果slider是vertical的,QSS设定的是horizontal的,那么是看不到效果的。
"
注意:在使用border-image后,
margin:-5px -7px;
是为了控制滑动柄的高何宽。至于原理,请参考《C++ GUI QT4编程(第2版)》19章--自定义外观
3. QSlider自动移动到鼠标点击位置
(参考链接:http://hi.baidu.com/%E9%F3%B3%BE%BE%B2/blog/item/b1f69d351a67633f0a55a9d9.html)
网上有网友实现了,关于这个效果,我自己还没有实现,今后应该用得上,在此做个记录
显示效果截图:
关于样式表的例子,诺基亚官网上有一篇很好的文章,链接如下:
http://developer.qt.nokia.com/doc/qt-4.8/stylesheet-examples.html
[align=left]// 中部云台速度控制[/align] [align=left] QWidget *speedWidget = createWidgetWithSize(tabWidget, 210, 20);[/align] [align=left] QLabel *minus = new QLabel("-");[/align] [align=left] QLabel *add = new QLabel("+");[/align] [align=left] minus->setObjectName("minusLabel");[/align] [align=left] add->setObjectName("addLabel");[/align] [align=left] [/align] [align=left] QHBoxLayout *speedLayout = new QHBoxLayout();[/align] [align=left] speedLayout->setContentsMargins(5,2,3,0);[/align] [align=left] speedLayout->setSpacing(0);[/align] [align=left] speedSlider = new QSlider(Qt::Horizontal, tabWidget);[/align] [align=left] speedSlider->setObjectName("speedSlider");[/align] [align=left] speedSlider->setRange(0,10);[/align] [align=left] speedSlider->setPageStep(1);[/align] [align=left] speedLayout->addWidget(minus);[/align] [align=left] speedLayout->addWidget(speedSlider);[/align] [align=left] speedLayout->addWidget(add);[/align] [align=left] speedWidget->setLayout(speedLayout);[/align] |
2. 通过QSS更改QSlider的样式
参考链接:(http://blog.sina.com.cn/s/blog_791f544a0100s2ml.html)
"
QSlider中有四个比较重要的辅助控制器(subcontrol),groove表示槽的部分,handle表示滑块,add-page表示未滑过的槽部分,sub-page表示已滑过的槽部分。在辅助控制器后面可以设置状态,horizontal就是QSS生效的QSlider的状态,注意这里设置的方向一定要和slider对象的方向一致,如果slider是vertical的,QSS设定的是horizontal的,那么是看不到效果的。
"
[align=left]#speedSlider::groove:horizontal{[/align] [align=left]border: 1px solid #666;[/align] [align=left]border-bottom:1px solid #fff;[/align] [align=left]border-right:1px solid #fff;[/align] [align=left]border-radius:3px;[/align] [align=left]height: 4px;[/align] [align=left]left:12px;[/align] [align=left]right:12px;[/align] [align=left]margin:0px;[/align] [align=left]background-color: #999;[/align] [align=left]margin:0px;[/align] [align=left]}[/align] [align=left]#speedSlider::handle:horizontal{[/align] [align=left]border-image:url(./images/speed-slider-handle.jpg);[/align] [align=left]width:10px;[/align] [align=left]margin:-5px -7px; [/align] [align=left]}[/align] |
margin:-5px -7px;
是为了控制滑动柄的高何宽。至于原理,请参考《C++ GUI QT4编程(第2版)》19章--自定义外观
3. QSlider自动移动到鼠标点击位置
(参考链接:http://hi.baidu.com/%E9%F3%B3%BE%BE%B2/blog/item/b1f69d351a67633f0a55a9d9.html)
网上有网友实现了,关于这个效果,我自己还没有实现,今后应该用得上,在此做个记录
显示效果截图:
关于样式表的例子,诺基亚官网上有一篇很好的文章,链接如下:
http://developer.qt.nokia.com/doc/qt-4.8/stylesheet-examples.html
相关文章推荐
- Delphi使用技巧四则
- 第4章 ListView 使用技巧——剩下部分
- office-word使用技巧——查找&替换
- DevExpress部分使用技巧
- php语言中使用json的技巧及json的实现代码详解
- CSS教程:关于H1的使用技巧
- 使用ImageMagick 的提示与技巧 三
- linux 技巧:使用 screen 管理你的远程会话
- git 使用技巧
- Vim编译器的常用使用方法与技巧
- Pycharm使用技巧:File Encoding(修改文件编码)
- CListCtrl 使用技巧
- skynet 控制台管理使用技巧
- Silverlight中使用动画的技巧
- Android的Gradle技巧 2.7签署版本APK使用Android Studio
- 【原】Dialog & Windows 使用技巧
- Python使用技巧
- iOS开发之WIFI,3G/4G两种网络同时使用技巧
- BugFree使用技巧 转载
- powerdesigner使用技巧