通过样式表自定义按钮外观
来源:互联网 发布:视频日语同声翻译软件 编辑:程序博客网 时间:2024/05/01 01:55
一、概述
根据《C++ GUI QT4编程》第二版,自定义QT控件的外观有两种方式:1、使用样式表;2、子类化QStytle
现在的需求是将QPushButton的外观定义成如下的样子:
具体的需求还包括:
当鼠标在button上时,颜色要改变;
当按下时,颜色要加深;
如果按下进入另外的状态,还要能改变外观;例如变成:
需求还不算难,下面就利用样式表对QPushButton进行改造吧。
二、主要内容
1、设计好图片
根据按钮的用途、所包含的状态设计好图片。如下图所示:
2、添加资源
用QT设计师打开窗体文件,右键点击QPushButton,选择"改变样式表",如图所示:
点击左上角的铅笔,为样式表添加图片资源:
添加完成后如下图所示:
3、使用样式表
下面的代码就定义了一般状态、鼠标停留,按下和禁止四中状态对应的图片显示。
可以看到上面有添加资源、添加渐变、添加颜色、添加字体个菜单,大家可以参考官网并自行摸索。
编辑样式表之后,可以在生成文件ui_mywindow.h中看到相关的代码:
记住,并不能直接在该文件中修改代码,ui_mywindow是自动生成的,编译时会忽略所有的改变!
到目前为止,似乎一切顺利。但是如果要改变图片系列怎么办?例如将转换为。可以利用setSytyleSheet方法,重新设置样式表。示例代码如下:
//设置播放按钮的图片//因为播放/暂停对应不同的图片系列void MyWindow::setPlayPauseBtnState(){int state = getPlayState();if (state==0){ui->PlayPause->setStyleSheet(QLatin1String("QPushButton{border-image: url(:/pause/pause_common.png);}\n""QPushButton:hover{\n""border-image: url(:/pause/pause_hover.png);\n""}\n""QPushButton:pressed{\n""border-image: url(:/pause/pause_down.png);\n""}"));} else{ui->PlayPause->setStyleSheet(QLatin1String("QPushButton{border-image: url(:/play/play_common.png);}\n""QPushButton:hover{\n""border-image: url(:/play/play_hover.png);\n""}\n""QPushButton:pressed{\n""border-image: url(:/play/play_down.png);\n""}"));}}
现在大功告成,我们来看看效果吧!
0 0
- 通过样式表自定义按钮外观
- java自定义按钮外观
- java自定义按钮外观
- java自定义按钮外观
- java自定义按钮外观
- java自定义按钮外观
- java自定义按钮外观
- java自定义按钮外观
- [Qt Quaterly]通过Qt4.2样式表定制程序外观
- ZT:通过Qt4.2样式表定制程序外观
- 通过Qt4.2样式表定制程序外观
- 通过Qt4.2样式表定制程序外观
- 通过Qt4.2样式表定制程序外观
- 通过Qt4.2样式表定制程序外观
- 通过Qt4.2样式表定制程序外观
- android按钮状态自定义样式表
- 自定义上传按钮样式
- [WPF] 自定义按钮样式
- SQL 入门笔记
- SQUID工作原理是什么
- 查看http请求中header传参
- Python用PyInstaller打包笔记
- android学习之路(四)----RenderScript
- 通过样式表自定义按钮外观
- drawable中的图片转换成URI的方法
- 6.25
- XML文件格式语法及DTD
- LAMP源码安装
- 实体化视图( materialized view )
- 用android动画实现手势动画
- Mac系统Java默认版本设置
- iOS开发之AsyncSocket使用教程