Qt颜色面板的设置

在这里插入图片描述

多个QPushButton公用一个槽函数

 connect(ui->pBtnClrUnset,SIGNAL(clicked(bool)),this,SLOT(slotColor()));
    connect(ui->pBtnClrRed,SIGNAL(clicked(bool)),this,SLOT(slotColor()));
    connect(ui->pBtnClrBlue,SIGNAL(clicked(bool)),this,SLOT(slotColor()));
    connect(ui->pBtnClrGreen,SIGNAL(clicked(bool)),this,SLOT(slotColor()));
    connect(ui->pBtnClrWhite,SIGNAL(clicked(bool)),this,SLOT(slotColor()));
    connect(ui->pBtnClrUnknown,SIGNAL(clicked(bool)),this,SLOT(slotColor()));

slotColor()函数中,对QPushButton进行动态转换

void Widget::slotColor()
{
    int i;
    QPushButton* pBtn = dynamic_cast<QPushButton*>(this->sender());
    if(pBtn)
    {
        if(pBtn==ui->pBtnClrUnset)
        {
            i=0;
            setColor(i,pBtn);
        }
        else if(pBtn==ui->pBtnClrRed)
        {
            i=1;
            setColor(i,pBtn);
        }
        else if(pBtn==ui->pBtnClrBlue)
        {
            i=2;
            setColor(i,pBtn);
        }
        else if(pBtn==ui->pBtnClrWhite)
        {
            i=3;
            setColor(i,pBtn);
        }
        else if(pBtn==ui->pBtnClrGreen)
        {
            i=4;
            setColor(i,pBtn);
        }
        else if(pBtn==ui->pBtnClrUnknown)
        {
            i=5;
            setColor(i,pBtn);
        }
    }
}

设置给QPushButton设置颜色值

void Widget::setColor(int &i,QPushButton* p)
{
    QMap<int,QColor> m_Color ;
    QColor color = QColorDialog::getColor(m_Color.value(i),this,QString::fromUtf8("颜色设置"),QColorDialog::DontUseNativeDialog);
    if(color.isValid())
    {
        p->setStyleSheet(QString("background-color:rgb(%1,%2,%3)").arg(color.red()).arg(color.green()).arg(color.blue()));
    }
}

每天进步一点点,向大厂靠近

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值