button

xiaoxiao2022-06-11  22

QButtonGroup

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

函数描述void addButton(QAbstractButton *button, int id = -1)添加button,且放置idvoid 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,没有则-1QAbstractButton * button(int id)const返回你下面还要找的buttonbuttons() const返回全部的zibuttonsetExclusive(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)开启三种选择状态
转载请注明原文地址: https://www.6miu.com/read-4932024.html

最新回复(0)