QT 工具栏上action失效时改变样式

由于css中没有针对action状态的选项,所以在它失效时样式无法改变,只能从代码中进行设置

代码如下:

QAction*MainWindow::createAction(QString name)
{
   QAction *action = new QAction(name,this);
   action->setObjectName(name);
   return action;
}
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
        ui->setupUi(this);

            //新创建的action
            auto aaa = createAction("aaa");
            ui->mainToolBar->addAction(aaa);
            ui->mainToolBar->widgetForAction(aaa)->setObjectName(aaa->objectName());

            auto bbb = createAction("bbb");
            ui->mainToolBar->addAction(bbb);
            ui->mainToolBar->widgetForAction(bbb)->setObjectName(bbb->objectName());

            auto ccc = createAction("ccc");
            ui->mainToolBar->addAction(ccc);
            ui->mainToolBar->widgetForAction(ccc)->setObjectName(ccc->objectName());

            //界面上工具栏添加的action
            ui->mainToolBar->widgetForAction(ui->actionOpen)->setObjectName(ui->actionOpen->objectName());

            ui->mainToolBar->setStyleSheet
            (
              "QToolButton#aaa { background:red }"
              "QToolButton#bbb { background:blue }"
              "QToolButton#ccc { background:green }"
            );
            //给指定action改变背景样式{action失效时,css中无法对action状态进行分类}
            if(!(ui->actionOpen->isEnabled()))
           {
                ui->mainToolBar->setStyleSheet
                (
                  "QToolButton#actionOpen { background:gray }"
                );
            }
}

action失效时效果如下:

 

 action未失效时:

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值