Qt的QPushButton设置图标,设置一组互斥键

一、btn的图标设置有以下2种方法,任一种都可以:

(1)btn->setIcon(QIcon(":PortPath/Resource/skin/1.jgpg"));   
 //注意::PortPath/Resource/skin/1.jgpg路径需要添加在工程.qrc路径中
<file>Resource/skin/1.jpg</file>

  btn->setIconSize(QSize(20,20));

(2)QPixmap pixmag;

    pixmag.load(":PortPath/Resource/skin/1.jgpg");

    QPixmap pix;

    pix = pixmag.copy(QRect(0,0,12,12)); //不同条件,设置不同的图片

    btn->setIcon(QIcon(pix));   

    btn->setIconSize(QSize(20,20));
  
上面(1)(2)的路径可以设置相对路径,则就可以不用在.qrc文件中添加路径了,
如下设置btn图标的方法:

QString path =  QApplication::applicationDirPath()+"skin/a.jgpg";

btn->setIcon(QPixmap(path)); 

二、设置RadioButton,QpushButton互斥,及设置一组按键是一个整体,它们之间的关系是互斥的。

1、添加成一个整体:



void QButtonGroup::addButton(QAbstractButton *button, int id = -1)

button的参考可以是
QCheckBox, QPushButton, QRadioButton, and QToolButton,

id可以是设置的添加button的索引,在事件捕获时,会传递对应的索引值id。

2、捕获点击事件

捕捉点击按键或者按钮的事件有下面两个:

(1)[signal] void QButtonGroup::buttonClicked(int id)

connect(buttonGroup,SIGNAL((buttonClicked(QAbstractButton(int)),

this,SLOT(onButtonClicked(int));



(2)[signal] void QButtonGroup::buttonClicked(QAbstractButton *button)

connect(m_pButtonGroup, SIGNAL(buttonClicked(QAbstractButton*)), this, SLOT(onButtonClicked(QAbstractButton*)));

事件捕获处理如下

(参考于Qt 之 QRadioButton_青春不老,奋斗不止!-CSDN博客_qradiobutton):

void MainWindow::onButtonClicked(QAbstractButton *button)
{
    // 当前点击的按钮
    qDebug() << QString("Clicked Button : %1").arg(button->text());

    // 遍历按钮,获取选中状态
    QList<QAbstractButton*> list = m_pButtonGroup->buttons();
    foreach (QAbstractButton *pButton, list)
    {
        QString strStatus = pButton->isChecked() ? "Checked" : "Unchecked";
        qDebug() << QString("Button : %1 is %2").arg(button->text()).arg(strStatus);
    }
}

附:QCheckbox设置互斥键:

Qt 之 QCheckBox_青春不老,奋斗不止!-CSDN博客_qcheckbox

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值