在Qt中,常用的按钮类型有很多种,每种按钮都有其特定的用途和特点。以下是一些常用按钮及其简要说明:
QPushButton
最常用的按钮:可以用于执行命令或触发操作。
常用API:
//创建按钮对象指针
//构造函数的参数:1.按钮图标QIcon(),2.按钮文本内容QString,3.依赖的父窗口
QPushButton *btn_clickme=new QPushButton( QIcon(),"点击我",this);
//设置按钮图标
btn_clickme->setIcon(QIcon());
//设置图标大小
btn_clickme->setIconSize( iconSize() );
//设置文本内容
btn_clickme->setText("ClickMe");
//设置按钮是否显示
btn_clickme->setVisible(true);
常用信号:
QPushButton::clicked();//常用信号函数
//示例:
connect(btn_clickme,&QPushButton::clicked,[=]()
{
qDebug()<<"you have clicked me";
});
运行效果:
QRadioButton
单选框,用于在一组互斥的选项中进行选择一个。
常用API:
//单选框:同一个容器下,只能同时选中一个
//参数:1.文本内容 2.依赖的父窗口
QRadioButton *rb_male=new QRadioButton(this);
QRadioButton *rb_female=new QRadioButton("女",this);
//设置父窗口、设置文本
rb_male->setParent(this);
rb_male->setText("男");
//设置选中状态
rb_female->setChecked( true );//当前选中
//移动位置
rb_male->move(50,50);
//设置是否可选
rb_female->setCheckable(false);//不可选
常用信号:
//信号函数:clicked()
connect(rb_male,&QRadioButton::clicked,[=](){
qDebug()<<"选中了male";
});
//槽函数:toggle()
QPushButton *btnSure=new QPushButton(this);
connect(btnSure,&QPushButton::clicked,rb_male,&QRadioButton::toggle);
//当点击btnSure按钮时,rb_male就会处于被选中的状态
运行效果:
QCheckBox
复选框,用于启用或禁用某个选项,可以选择多个选项。
复选框与单选框的区别主要在于一个是单选一个是多选。这就是线上答单选题和多选题的状态。
但是多选框有一个比较特殊的属性,就是可以是半选状态,相信大家平常都见过:全不选,部分选,全选这三个按钮的状态。这三个状态对应的属性值分别为0,1,2。具体是哪个属性呢?
我们这时候看到的其实是一些枚举值,我们可以转换成int来看:
QToolButton
工具按钮,常用于工具栏,通常与图标一起使用。与普通按钮类似,只不过默认会将文本内容属性给关闭掉,所以经常是放在工具栏的图标操作。
常用API:
设置图标:
ui->toolButton->setIcon(QIcon("图标路径"));
开启文本:
选择toolButtonStyle即工具按钮模式即可,我们可以看到提供了五种基本的模式:
只有图标、只有文本、文本在图标右侧、文本在图标下面、遵循依赖的父容器的主题风格(无文本)。
将autoRaise属性设置为true后,我们就可以将按钮的背景色设置为透明,当鼠标悬浮在按钮上时会升起按钮轮廓:
运行效果:
其它按钮
QCommandLinkButton
命令链接按钮,通常用于替换普通按钮,用于在界面上提供更为直观的操作选择。
QPushButton with Icons
按钮可以使用图标显示,更为美观。
iconButton->setIcon(QIcon("path/to/icon.png"));
iconButton->setText("带图标按钮");
QDialogButtonBox
对话框按钮框,提供一组标准的按钮(例如,确认、取消)用于对话框。
QPushButton *okButton = buttonBox->addButton(QDialogButtonBox::Ok);
QPushButton *cancelButton = buttonBox->addButton(QDialogButtonBox::Cancel);
QPushButton with Toggle
可切换按钮,允许用户在两种状态间切换(如开/关)。
toggleButton->setCheckable(true);
QPushButton with Styles
通过样式表(QSS)可以自定义按钮外观。
styledButton->setStyleSheet("background-color: green; color: white;");
感谢大家!