【Qt】常用控件(一)

QPushButton

属性说明
text按钮中的文本
icon按钮中的图标
iconSize按钮中图标的尺寸
shortCut按钮对应的快捷键
autoRepeat按钮是否会重复触发。当鼠标左键按住不放时,如果设为true,则会持续产生鼠标点击事件;如果设为false,则必须释放鼠标,再次按下鼠标时才能产生点击事件。
autoRepeatDelay重复触发的延时时间,按住按钮多久之后,开始重复触发
autoRepeatInterval重复触发的周期

设置图标
在这里插入图片描述

设置快捷键:
在这里插入图片描述

QRadioButton

QRadioButton 表示单选按钮,选择一个,其他就不能被选择。

属性说明
checkable是否能选中
checked是否已经被选中,checkable是checked的前提条件
autoExclusive是否排他。选中一个按钮之后是否会取消其他按钮的选中。对于QRadioButton来说默认就是排他的。

在这里插入图片描述

由于QRadioButton是单选按钮,具有排他性,所以下面五个按钮中,只能选择一个:

在这里插入图片描述

此时就需要使用 QButtonGroup 对单选按钮进行分组:

在这里插入图片描述

QCheckBox

QCheckBox 表示复选按钮,可以选择多个。

在这里插入图片描述

QLable

QLable 可以用来显示文本和图片

属性说明
textQLabel 中的文本
textFormat文本的格式(Qt::PlainText 纯文本、Qt::RichText 富文本)
Qt::RichText 富文本(支持html标签)、Qt::MarkdownText markdown格式(老版本Qt不支持)
Qt::AutoText 根据文本内容自动决定文本格式
pixmapQLabel内部包含的图片
scaledContents设为true表示内容自动拉伸填充QLabel、设为false则不会自动拉伸
alignment对齐方式。可以设置水平和垂直方向如何对齐
wordWrap设为true内部的文本会自动换行,false则不会换行
indent设置文本缩进。水平和垂直方向都生效
margin内部文本和边框之间的边距,四个方向
openExternalLinks是否允许打开一个外部的链接(当QLabel文本内容包含url的时候)
buddy给QLabel关联一个“伙伴”,这样点击QLabel时就能激活对应的伙伴。
例如伙伴如果是一个QCheckBox,那么该QCheckBox就会被选中

显示文本:

在这里插入图片描述

显示图片:

(图片如何插入可到上一文章查看)

在这里插入图片描述

如果图片太小或太大,不能完全显示,我们就可以使用自动拉伸:ui->label->setScaledContents(true);

在这里插入图片描述

现在就有个新问题了,当我们调整窗口大小时,图片还是固定的长度,也就是QLabel不会随着窗口的调整而变化。现在我们先添加代码,再做解释:
先到widget.h文件中添加:
在这里插入图片描述

再到widget.cpp中添加(鼠标点击刚刚写的resizeEvent,按alt+回车键即可在widget.cpp创建好函数):

在这里插入图片描述

这里的 resizeEvent 是一个用来处理窗口大小变化的事件,当窗口大小发生变化时,就会触发 resizeEvent,为了响应这种事件,我们就可以按照我们的需求(图片随着窗口大小变,而图片又是自动拉伸在Label中,所以让label随着窗口变即可)来重写 resizeEvent() 方法。

在这里插入图片描述

设置对齐方式:

在这里插入图片描述

设置换行

在这里插入图片描述

设置缩进和边距

在这里插入图片描述

设置伙伴关系

例如下图,当Label 和 radioButton 绑定了伙伴关系之后,通过快捷键 Alt + A 就可以选单选按钮选项一了。(使用 & 加上一个字符来表示快捷键)

在这里插入图片描述

QProgressBar

QProgressBar 表示一个进度条(最小值到最大值通常设置为0%-100%)。

属性说明
minimum进度条最小值
maximum进度条最大值
value进度条当前值
alignment文本在进度条中的对齐方式。
Qt::AlignLeft:左对齐
Qt::AlignRight:右对齐
Qt::AlignCenter:居中对齐
Qt::AlignJustify:两端对齐
textVisible进度条的数字是否可见
orientation进度条的方向是水平还是垂直
invertAppearance是否朝反方向增长进度
textDirection文本的朝向
format展示的数字格式。
%p:表示进度的百分比(0-100)
%v:表示进度的数值(0-100)
%m:表示剩余时间(单位毫秒)
%t:表示总时间(单位毫秒)

在这里插入图片描述

下面通过一个例子来演示进度条的使用:
widget.h中:

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QTimer>

QT_BEGIN_NAMESPACE
namespace Ui {
class Widget;
}
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

    void handle();	//槽函数

private:
    Ui::Widget *ui;
    QTimer* timer;	//定时器
};
#endif // WIDGET_H

widget.cpp中:

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    timer = new QTimer(this);
    connect(timer,&QTimer::timeout,this,&Widget::handle);
    //连接后启动计时器(每100ms触发timeout信号)
    timer->start(100);
}

Widget::~Widget()
{
    delete ui;
}

void Widget::handle()
{
    //获取当前进度条的值
    int value = ui->progressBar->value();
    if(value >= 100)
    {
        //进度条到达100 停止
        timer->stop();
        return;
    }
    //设置进度条
    ui->progressBar->setValue(value+1);
}

在这里插入图片描述
QTimer 是软件定时器,父类为QObject。QTimer 的主要功能是设置以毫秒为单位的定时周期,然后惊醒连续定时或单次定时。启动定时器后,会触发 timeout() 信号,与之关联的槽函数就会定时处理。

修改进度条颜色:

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

QCalendarWidget

QCalendarWidget 表示一个日历。

属性说明
selectedDate当前选中的日期
minimumDate最小日期
maximumDate最大日期
firstDayOfWeek每周的第一天(日历的第一列)是周几
gridVisible是否显示表格的边框
selectionMode是否允许选择日期
navigationBarVisible日历上方标题是否显示
horizontalHeaderFormat日历上方显示的日期格式
verticalHeaderFormat日历第一列显示的内容格式
dateEditEnable是否允许日期被编辑

重要信号

信号说明
selectionChanged(const QDate&)当前选中的日期发生改变时发出
activated(const QDate&)当双击一个有效的日期或者按下回车键时发出,形参是一个QDate类型,保存了选中的日期
currentPageChanged(int, int)当年月份改变时发出,形参表示改变后的新年份和月份

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值