QT界面开发【常用控件-按钮组】

时间:2024-10-26 18:14:13

在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;");

感谢大家!