Qt常用控件介绍(一)

Qt Creator 的使用技巧

Qt Creator的常用快捷键

在这里插入图片描述在这里插入图片描述

按钮

Qt按钮部件是一种常用的部件之一,Qt内置六种按钮部件如下:
在这里插入图片描述
(1) QPushButton:下压按钮
(2) QToolButton:工具按钮
(3) QRadioButton:选择按钮
(4) QCheckBox:检查框
(5) QCommandLinkButton:命令链接按钮
(6) QDialogButtonBox:对话框按钮
这六种按钮部件作用简介如下:
QPushButton 继承 QAbstractButton 类,被 QCommandLinkButton 继承。通常用于执行命令或触发事件。
QToolButton 继承 QAbstractButton 类。是一种用于命令或者选项的可以快速访问的按钮,通常在 ToolBar 里面。工具按钮通常显示的是图标,而不是文本标签。 ToolButton 支持自动浮起。在自动浮起模式中,按钮只有在鼠标指向它的时候才绘制三维的框架。
QRadioButton 继承 QAbstractButton 类。 RadioButton 单选按钮(单选框)通常成组出现,用于提供两个或多个互斥选项。
QCheckBox 继承 QAbstractButton。复选按钮(复选框)与 RadioButton 的区别是选择模式,单选按钮提供多选一,复选按钮提供多选多。
QCommandLinkButton 控件中文名是“命令链接按钮”。QCommandLinkButton 继承 QPushButton。 QCommandLinkButton 控件和 RadioButton 相似,都是用于在互斥选项中选择一项。表
面上同平面按钮一样,但是 CommandLinkButton 除带有正常的按钮上的文字描述文本外,默认情况下,它也将携带一个箭头图标,表明按下按钮将打开另一个窗口或页面。
QDialogButtonBox 按 钮 盒 子 ( 按 钮 框 ), 是 由QDialogButtonBox 类 包 装 成 的 。
QDialogButtonBox 继承 QWidget。常用于对话框里自定义按钮,比如“确定”和“取消” 按钮。

QPushButton

//不完全代码
/* 引入 QPushButton 类 ,添加头文件*/
#include <QPushButton>
private:
/* 声明一个 QPushButton 对象 pushButton1 */
QPushButton *pushButton1;
/* 声明一个 QPushButton 对象 pushButton2 */
QPushButton *pushButton2;

private slots:
/* 声明对象 pushButton1 的槽函数 */
 void pushButton1_Clicked();
 /* 声明对象 pushButton2 的槽函数 */
 void pushButton2_Clicked();



/* mainwindow.cpp代码添加如下*/
/* 设置宽高为 800×480,位置在 0, 0。(0, 0)代表原点, Qt 默认最左上角的点为原点 */
this->setGeometry(0, 0, 800, 480);
/* 实例化两个按钮对象,并设置其显示文本为窗口皮肤 1 和窗口皮肤 2 */
pushButton1 = new QPushButton("窗口皮肤 1", this);
pushButton2 = new QPushButton("窗口皮肤 2", this);
/* 设定两个 QPushButton 对象的位置 */
pushButton1->setGeometry(300,200,80,40);
pushButton2->setGeometry(400,200,80,40);

/* 信号槽连接 */
connect(pushButton1, SIGNAL(clicked()), this,SLOT(pushButton1_Clicked()));
connect(pushButton2, SIGNAL(clicked()), this,SLOT(pushButton2_Clicked()));


/* 槽函数的实现 */
 void MainWindow::pushButton1_Clicked() {
   
 /* 设置主窗口的样式 1 */
this->setStyleSheet("QMainWindow { background-color:rgba(255, 245,238, 100%); }");
}
/* 槽函数的实现 */
 void MainWindow::pushButton2_Clicked()
  {
   
 /* 设置主窗口的样式 2 */
this->setStyleSheet("QMainWindow { background-color:rgba(100, 255,100, 100%); }");
//设置background-color 的 rgba 参数即可改变窗体的背景颜色

}
/*************
rgba() 函数使用红®、绿(g)、蓝(b)、透明度(a)的叠加来生成各式各样的颜色。

rgba 即红色、绿色、蓝色、透明度(red, green, blue, alpha)
在对应的位置就代表对应的颜色以及透明度

红色(r)0 到 255 间的整数,代表颜色中的红色成分
绿色(g)0 到 255 间的整数,代表颜色中的绿色成分
蓝色(b)0 到 255 间的整数,代表颜色中的蓝色成分
透明度(a)取值 0~1 之间, 代表透明度
***************/

运行效果如下:
在这里插入图片描述

QToolButton

工具按钮(QToolButton)区别于普通按钮(QPushButton)的一点是,工具按钮(QToolButton)可以带图标。这里区别下图标和按钮的背景图片是不一样的。通常我们在 QToolBar 这种工具条(工具栏)上设置不同的按钮。

/* 引入 QToolButton 类 */
#include <QToolButton>
/* 引入 QToolBar 类 */
#include <QToolBar>

private:
/* 声明一个 QToolButton 对象 */
QToolButton *toolButton;
/* 声明一个 QToolBar 对象 */
QToolBar *toolBar;


/****************mainwindow.cpp 编程添加代码***********/
#include <QStyle>
/* 实例化 QToolBar 对象 */
toolBar = new QToolBar(this);
/* 设置 toolBar 的位置和大小 */
toolBar->setGeometry(0, 0, 800, 100);

/* 实例化 QStyle 类对象,用于设置风格,调用系统类自带的图标 */
QStyle *style = QApplication::style();

/* 使用 Qt 自带的标准图标,可以在帮助文档里搜索 QStyle::StandardPixmap */
QIcon icon =style->standardIcon(QStyle::SP_TitleBarContextHelpButton);

/* 实例化 QToolButton 对象 */
toolButton = new QToolButton();
 /* 设置图标 */
toolButton->setIcon(icon);
/* 设置要显示的文本 */
 toolButton->setText("帮助");
/* 调用 setToolButtonStyle()方法,设置 toolButoon 的样式,设置为文本置于
图标下方 */
 toolButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);

/* 最后将 toolButton 添加到 ToolBar 里 */
 toolBar->addWidget(toolButton);

运行效果如下所示:
在这里插入图片描述

QRadioButton

QRadioButton 部件提供了一个带有文本标签的单选框(单选按钮)。
QRadioButton 是一个可以切换选中(checked)或未选中(unchecked)状态的选项按钮。单选框通常呈现给用户一个“多选一”的选择。也就是说,在一组单选框中,一次只能选中一个单选框。默认在同一个父对象下,初始化后点击它们是互斥状态。

/* 引入 QRadioButton */
#include <QRadioButton>
private:
/* 声明两个 QRadioButton 对象 */
QRadioButton *radioButton1;
QRadioButton *radioButton2;
/****************mainwindow.cpp 编程添加代码***********/
this->setStyleSheet("QMainWindow {background-color: rgba(200, 50,100, 100%);}");
/* 实例化对象 */
radioButton1 = new QRadioButton(this);
radioButton2 = new QRadioButton(this);

/* 设置两个 QRadioButton 的位置和显示大小 */
radioButton1->setGeometry(300, 200, 100, 50);
radioButton2->setGeometry(400, 200, 100, 50);

/* 设置两个 QRadioButton 的显示文本 */
radioButton1->setText("开关一");
radioButton2->setText("开关二");

/* 设置初始状态, radioButton1 的 Checked 为 false,另一个为 true*/
radioButton1->setChecked(false);
radioButton2->setChecked(true);

/****************main.cpp 编程添加代码***********/
#include <QFile>
 /* 指定文件 */
    QFile file(":/style.qss");

    /* 判断文件是否存在 */
    if (file.exists() ) {
   
        /* 以只读的方式打开 */
        file.open(QFile::ReadOnly);
        /* 以字符串的方式保存读出的结果 */
        QString styleSheet = QLatin1String(file.readAll());
        /* 设置全局样式 */
        qApp->setStyleSheet(styleSheet);
        /* 关闭文件 */
        file.close();
    }
 /****************qss文件 编程添加代码***********/   
    QRadioButton{
   
    spacing: 2px;
    color: white;
}
QRadioButton::indicator {
   
    width: 45px;
    height: 30px;
}
QRadioButton::indicator:unchecked {
   
    image: url(:/images/switch_off.png);
}
QRadioButton::indicator:checked {
   
    image: url(:/images/switch_on.png);
}

运行效果如下所示:
在这里插入图片描述

QCheckBox

QCheckBox 继承 QAbstractButton。复选按钮(复选框)与 RadioButton 的区别是选择模式,单选按钮提供多选一,复选按钮提供多选多。

/* 引入 QCheckBox */
#include <QCheckBox>
private:
 /* 声明一个 QCheckBox 对象 */
 QCheckBox *checkBox;
private slots:
 /* 声明 QCheckBox 的槽函数,并带参数传递,用这个参数接收信号的参数 */
void checkBoxStateChanged(int);
/****************mainwindow.cpp 编程添加代码***********/
this->setStyleSheet("QMainWindow {background-color: rgba(100, 100, 100, 100%);}");

    /* 实例化对象 */
    checkBox = new QCheckBox(this);

    /* 设置QCheckBox位置和显示大小 */
    checkBox->setGeometry(350, 200, 250, 50);

    /* 初始化三态复选框的状态为Checked */
    checkBox->setCheckState(Qt::Checked);

    /* 设置显示的文本 */
    checkBox->setText("初始化为Checked状态");

    /* 开启三态模式,必须开启,否则只有两种状态,即Checked和Unchecked */
    checkBox->setTristate();

    /* 连接checkBox的信号stateChanged(int),与我们定义的槽checkBoxStateChanged(int)连接 */
    connect(checkBox, SIGNAL(stateChanged(int)), this, SLOT(checkBoxStateChanged(int)));
/* 槽函数的实现 */
void MainWindow::checkBoxStateChanged(int state)
{
   
    /* 判断checkBox的state状态,设置checkBox的文本 */
    switch (state) {
   
    case Qt::Checked:
        /* 选中状态 */
        checkBox->
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

六竹书生__wa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值