button

QButtonGroup

provides a container to organize groups of button widgets.
添加移除btn,查看选中的btn,找到想找的btn

函数描述
void addButton(QAbstractButton *button, int id = -1)添加button,且放置id
void removeButton(QAbstractButton *button)移除
QAbstractButton *QButtonGroup::checkedButton() constReturns the button group’s checked button, or 0 if no buttons are checked.
int QButtonGroup::checkedId() const返回选中的button的id,没有则-1
QAbstractButton * button(int id)const返回你下面还要找的button
buttons() const返回全部的zibutton
setExclusive(true)属性,可以设置为互斥
sinals
void    buttonClicked(QAbstractButton *button)
void    buttonClicked(int id)
void    buttonPressed(QAbstractButton *button)
void    buttonPressed(int id)
void    buttonReleased(QAbstractButton *button)
void    buttonReleased(int id)
void    buttonToggled(QAbstractButton *button, bool checked)
void    buttonToggled(int id, bool checked)
/*
 * QButtonGroup have add remove but select one only
 *
*/
mywidget::mywidget()
{
    setWindowTitle("my widget test");
    QVBoxLayout *layout=new QVBoxLayout(this);

    pbtn_group=new QButtonGroup;
    QCheckBox *pradio_btn1=new QCheckBox("radio1");
    QCheckBox *pradio_btn2=new QCheckBox("radio2");

    QCheckBox *pradio_btn3=new QCheckBox("radio3");
    QCheckBox *pradio_btn4=new QCheckBox("radio4");
    pbtn_group->addButton(pradio_btn1,0);
    pbtn_group->addButton(pradio_btn2,1);
    pbtn_group->addButton(pradio_btn3,2);
    pbtn_group->addButton(pradio_btn4,3);
    pradio_btn1->setChecked(true);
    pradio_btn2->setChecked(true);
    pbtn_group->setExclusive(true);

//    connect(pbtn_group,SIGNAL(buttonClicked(int)),this,SLOT(reaction(int)));
    //use the another way to connect
    connect(pbtn_group, QOverload<int>::of(&QButtonGroup::buttonClicked),[&](int i){
        qDebug()<<"selct is :"<<i<<' '<<pbtn_group->checkedButton()->text();
        pbtn_group->button(2)->setChecked(true);
    });
    layout->addWidget(pradio_btn1);
    layout->addWidget(pradio_btn2);
    layout->addWidget(pradio_btn3);
    layout->addWidget(pradio_btn4);

    this->setFixedSize(300,300);
    this->show();
}


/*
 * 新技能..................
 * connect(buttonGroup, QOverload<int, bool>::of(&QButtonGroup::buttonToggled),
 * [=](int id, bool checked){ });
 */
 void mywidget::reaction(int i)
    {
     /*
      * 1.输出被选中的button的id和text
      * pbtn_group->checkedId();
      * pbtn_group->checkedButton()->text();
      * 2.改变选中的button,id=2
     */
        qDebug()<<"selct is :"<<i<<' '<<pbtn_group->checkedButton()->text();
        pbtn_group->button(2)->setChecked(true);
    }
QPushButton
设置
功能描述
void setAutoDefault(bool)
void setDefault(bool)默认的按钮
void setFlat(bool)可以改变其中一些颜色属性
void setMenu(QMenu *menu)菜单
slots

void showmenu()

事件
virtual bool    event(QEvent *e)
virtual void    focusInEvent(QFocusEvent *e)
virtual void    focusOutEvent(QFocusEvent *e)
virtual void    keyPressEvent(QKeyEvent *e)
virtual void    paintEvent(QPaintEvent *)
QToolButton

工具按钮,具备菜单等等

void setMenu(QMenu * menu) 
设置按钮的弹出菜单。和QPushButton用法类似,详见:Qt之QPushButton

void setPopupMode(ToolButtonPopupMode mode) 
设置弹出菜单的方式,默认情况下,设置为DelayedPopup(延迟弹出)。

枚举QToolButton::ToolButtonPopupModevoid setToolButtonStyle(Qt::ToolButtonStyle style) 
void setArrowType(Qt::ArrowType type) 
设置按钮是否显示一个箭头,而不是一个正常的图标。这将显示一个箭头作为QToolButton的图标。 
默认情况下,这个属性被设置为Qt::NoArrow
QRadioButton

单选框

QCheckBox

复选框,且可以开启三种状态,主要用来多选和三种状态,它有一个信号statechanged()
找它的状态可以isChecked(),checkstate()

功能设置
函数描述
void setCheckState(Qt::CheckState state)
void setTristate(bool y = true)开启三种选择状态
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值