设置QPushButton的平面与突出(遍历控件)
#include "ui_maindialog.h"
#include "maindialog.h"
#include <QState>
#include <QEventTransition>
#include <QStateMachine>
#include <qDebug>
MainDialog::MainDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::MainDialog)
{
ui->setupUi(this);
setWindowFlags(Qt::WindowStaysOnTopHint);
/*遍历界面上所有button*/
QList<QPushButton *> button = this->findChildren<QPushButton *>();
qDebug() << button.count();
for(int i=0; i < button.count(); i++)//通过i的范围确定需要设置哪些button
{
setDynamicImage(button.at(i));
}
}
void MainDialog::setDynamicImage(QPushButton *button)
{
/*定义两种状态(鼠标进入button/退出button)*/
QState *inside = new QState;
inside->assignProperty(button,"flat", "false");//设置button为凸起
QState *outside = new QState;
outside->assignProperty(button, "flat", "true");//设置button为平面
/*把进入、退出事件与button关联*/
QEventTransition *enterTransition = new QEventTransition(button, QEvent::Enter);
enterTransition->setTargetState(inside);//鼠标进入button
outside->addTransition(enterTransition);//把outside状态,连接到enterTransition变化中去
QEventTransition *leaveTransition = new QEventTransition(button, QEvent::Leave);
leaveTransition->setTargetState(outside);//鼠标退出button
inside->addTransition(leaveTransition);//把inside状态,连接到leaveTransition变化中去
/*定义状态机*/
QStateMachine *machine = new QStateMachine(this);
/*在状态机中添加这两种状态*/
machine->addState(inside);
machine->addState(outside);
/*设置初始状态*/
machine->setInitialState(outside);
/*启动状态机*/
machine->start();
}
MainDialog::~MainDialog()
{
delete ui;
} http://blog.csdn.net/mingxia_sui/article/details/7760163
设置QPushButton的平面与突出(遍历控件)的更多相关文章
- javascript客户端遍历控件与获取父容器对象
javascript客户端遍历控件与获取父容器对象示例代码 1,遍历也面中所有的控件function findControlAll() { var inputs=document. ...
- wpf 遍历控件及其值
/// <summary> /// 遍历控件及其值 /// </summary> /// <param name="uiControls">界面 ...
- javascript遍历控件(实例详解)
js遍历页面控件, 代码如下 复制代码 var inputArr = document.forms[0]; for( var i = 0; i < inputArr.length; i++ ...
- 老李推荐:第14章9节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-遍历控件树查找控件
老李推荐:第14章9节<MonkeyRunner源码剖析> HierarchyViewer实现原理-遍历控件树查找控件 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员 ...
- 设置TextBlock默认样式后,其他控件的Text相关属性设置失效问题
问题: 定义了默认TextBlock样式后,再次自定义下拉框 or 其他控件 ,当内部含有TextBlock时,设置控件的字体相关样式无效,系统始终使用TextBlock设置默认样式 解决方案: 为相 ...
- 消息框MessageBox+遍历控件
消息对话框:主要用来显示信息,也可以警告.用户确认取消等. MessageBox.Show("展示内容","标题",MessageBoxButtons.按钮种类 ...
- jquery设置checkbox状态,设置dropdownlist选中值,隐藏某控件,给某控件追加东西
jquery设置checkbox状态 $("[ID$=chkType]").attr("checked", true); jquery设置dropdownlis ...
- 设置VS2010中自带的ActiveX控件测试容器TstCon
ActiveX控件:可以看做一个极小的服务器应用程序,他不能单独运行,需要嵌入到某个程序中才可以运行,我们可以自己写一个程序来测试自己写的程序(具体方法在下一篇文章阐述),第二种方法是利用VS(本人编 ...
- selenium遍历控件集合
场景:需要重复增加地址栏信息,如果地址信息超过了5个就不开始增加 如图: 1.找到控件集合,在遍历每个子元素,在进行选择 1.先找到最外层的div的控件集合 2.外层的css定位为: int star ...
随机推荐
- IOS 表视图(UITableVIew)的使用方法(2)名单的分段显示
我们可以采用名字分段法,名字分段会在之后的小节中显示,这是转而使用球员的角色分段发,以最直接的入手点讲解好UITableView的分段使用方法.本节示例时基于上节的SimpleTableViewCon ...
- 从基因组可视化工具——circos说起,circos安装
这是博客改版的第一篇博文,选择最近使用的生物信息学软件——circos开始写起.circos是用perl写的生物软件,从发表的文章来看 学习circos主要是熟悉配置文件的编辑方法,搞清楚其中的标 ...
- SumoLogic
SumoLogic>>>Loggly. https://diyunpeng.loggly.com/setup MonitorWare http://www.monitorware.c ...
- java实现冒泡排序,选择排序,插入排序,快速排序(简洁版)及性能测试
1.冒泡排序是排序里面最简单的了,但性能也最差,数量小的时候还可以,数量一多,是非常慢的. 它的时间复杂度是O(n*n),空间复杂度是O(1) 代码如下,很好理解. public void bubbl ...
- Android记录4--自定义ToggleButton+用SharedPreferences保存用户配置
Android记录4--自定义ToggleButton+用SharedPreferences保存用户配置 2013年8月14日Android记录 很多应用都会有用户设置,用户的一些偏好可以由用户来决定 ...
- _WSAStartup@8,该符号在函数 _main 中被引用
int WSAStartup( __in WORD wVersionRequested, __out LPWSADATA lpWSAData ); WSAStartup 格 式: int PASCA ...
- BI商业智能项目中的若干风险要素
BI商业智能项目应在 “业务驱动,总体规划,统一设计,分期实施” 的总体设计原则下分期实施,采取Agile BI方法论迭代开展,先确保核心功能满足客户需求,在总体规划下不断完善整个系统,以提高可交付性 ...
- Oracle包Package调用Package
Package左侧文件: create or replace package CALL_DETAILS is strdatarange varchar2(1) := '1'; numrow_num n ...
- OpenCV 安装
OpenCV 安装 一.环境说明: 操作系统:window10 opencv版本是:VERSION3.1 二.安装过程: [1]官网下载:http://opencv.org/downloads.htm ...
- 转: requirejs压缩打包r.js使用示例 2 (~~很详细的教程)
这一篇来认识下打包工具的paths参数,在入门一中 就介绍了require.config方法的paths参数.用来配置jquery模块的文件名(jQuery作为AMD模块时id为“jquery”, 但 ...