zoukankan      html  css  js  c++  java
  • 设置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
  • 相关阅读:
    codeforces——模拟
    线段树水题
    编码格式分类: 前后端传递数据的编码格式contentType
    爬虫之爬取求职小网站
    auth 模块使用篇
    后端获取前端的多个数据用getlist
    字符串值的替换
    单例的5种开启方式
    forms 组件的功能和使用
    cookie和session 的初步介绍
  • 原文地址:https://www.cnblogs.com/findumars/p/5553933.html
Copyright © 2011-2022 走看看