当前位置:首页 » 《我的小黑屋》 » 正文

【QT】常用控件(二)

14 人参与  2024年10月20日 12:40  分类 : 《我的小黑屋》  评论

点击全文阅读


在这里插入图片描述
个人主页~

常用控件(一)~


常用控件

三、按钮类控件1、Push Buttonwidget.hwidget.cpp 2、Radio Button3、Check Box 四、显示类控件1、label

三、按钮类控件

1、Push Button

QPushButton继承自QAbstractButton,它是所有按钮的父类

我们从这个按钮的属性表中可以看到,QPushButton的父类是QAbstractButton,上面是QAbstractButton的父类QWidget,再向上就是QWidget的父类QObject

在这里插入图片描述
其中在QAbstractButton中,与QPushButton相关性较大的属性有这些:
text:按钮文本
icon:按钮图标
iconSize:按钮图标尺寸
shortCut:按钮快捷键
autoRepeat:按钮重复触发设置
autoRepeatDelay:重复触发的延时时间
autoRepeatInterval:重复触发的周期

下面我们来展示使用一下以上提到的这些属性

widget.h

#ifndef WIDGET_H#define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACEnamespace Ui { class Widget; }QT_END_NAMESPACEclass Widget : public QWidget{    Q_OBJECTpublic:    Widget(QWidget *parent = nullptr);    ~Widget();private slots:    void on_pushButton_left_clicked();    void on_pushButton_up_clicked();    void on_pushButton_down_clicked();    void on_pushButton_right_clicked();private:    Ui::Widget *ui;};#endif // WIDGET_H

widget.cpp

#include "widget.h"#include "ui_widget.h"#include <QDebug>Widget::Widget(QWidget *parent)    : QWidget(parent)    , ui(new Ui::Widget){    ui->setupUi(this);    ui->pushButton_target->setIcon(QIcon(":/slm.jpg"));    ui->pushButton_target->setIconSize(QSize(200,200));    ui->pushButton_up->setIcon(QIcon(":/up.png"));    ui->pushButton_up->setIconSize(QSize(100,100));    ui->pushButton_down->setIcon(QIcon(":/down.png"));    ui->pushButton_down->setIconSize(QSize(100,100));    ui->pushButton_left->setIcon(QIcon(":/left.png"));    ui->pushButton_left->setIconSize(QSize(100,100));    ui->pushButton_right->setIcon(QIcon(":/right.png"));    ui->pushButton_right->setIconSize(QSize(100,100));    ui->pushButton_up->setShortcut(Qt::Key_W);    ui->pushButton_down->setShortcut(Qt::Key_S);    ui->pushButton_left->setShortcut(Qt::Key_A);    ui->pushButton_right->setShortcut(Qt::Key_D);}Widget::~Widget(){    delete ui;}void Widget::on_pushButton_left_clicked(){    QRect r = ui->pushButton_target->geometry();    ui->pushButton_target->setGeometry(r.x()-10,r.y(),r.width(),r.height());    qDebug() << "left";}void Widget::on_pushButton_up_clicked(){    QRect r = ui->pushButton_target->geometry();    ui->pushButton_target->setGeometry(r.x(),r.y() - 10,r.width(),r.height());    qDebug() << "up";}void Widget::on_pushButton_down_clicked(){    QRect r = ui->pushButton_target->geometry();    ui->pushButton_target->setGeometry(r.x(),r.y() + 10,r.width(),r.height());    qDebug() << "down";}void Widget::on_pushButton_right_clicked(){    QRect r = ui->pushButton_target->geometry();    ui->pushButton_target->setGeometry(r.x()+10,r.y(),r.width(),r.height());    qDebug() << "right";}

pushbutton

观察视频我们可以发现,当我使用键盘快捷键按住时,会发生连点,而我用鼠标按住不会发生连点,这都是生成的默认值,我们可以通过下面的函数来打开鼠标连点模式

setAutoRepeat(true);

通过下面函数设置两次连点之间的最小时间

SetAutoRepeatDelay(1000);

我们知道有些游戏的挂是有连点器的,我们可以通过下面的函数来设置一个连点器,它是每经过特定的时间就会触发一次点击

setAutoRepeatInterval(500);

2、Radio Button

RadioButton就是单选选项,可以让我们在多个选项中选择一个,和QAbstractButton相关的属性:

checkable:能否被选中
checked:是否被选中
autoExclusive:是否选择后会取消其他按钮的选中,对于RadioButton默认为是

RadioButton

如果想要设置默认值,只需要在构造函数中先设置好初始值就行

但是这样的一个问题就是,如果我在界面上设置了十个RadioButton,但是这十个RadioButton对应的是五个判断题,那我们应该分五组,每组有一个被选择,此时我们就要用到qbuttongroup来进行分组

RadioButton_2

3、Check Box

qcheckbox是复选按钮,可以选中多个选项

checkbox

四、显示类控件

1、label

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

属性说明
text设置文本
textFormat设置文本格式
pixmap设置包含的图片
scaledContents设置自动拉伸
alignment设置对齐方式
wordWrap设置自动换行
indent设置文本缩进
margin设置文本和边框之间的间距
openExternalLinks设置是否允许打开外部链接
buddy设置关联伙伴

在这里插入图片描述
第一段是普通文本,第二段是富文本,第三段是markdown文本

label

这里设置了自动拉伸但是不可充斥整个边框
在这里插入图片描述
想要充斥整个边框就需要用到C++多态的知识,对于父类的虚函数如果我们在子类中重写,将会执行子类的重写后的函数,这里的resizeEvent是一个在我们调整窗口大小的时候自动调用的函数,我们将其重写,将图片设置为充斥整个窗口

label_2

这里的QFrame用来设置边框的的性质,认识这个性质好让我们的下一步进行操作
在这里插入图片描述

#include "widget.h"#include "ui_widget.h"Widget::Widget(QWidget *parent)    : QWidget(parent)    , ui(new Ui::Widget){    ui->setupUi(this);    ui->label->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);//垂直水平居中    ui->label->setText("super_little_monster");    ui->label_2->setAlignment(Qt::AlignTop|Qt::AlignLeft);    ui->label_2->setWordWrap(true);//自动换行    ui->label_2->setText("这是⼀个很⻓的⽂本这是⼀个很⻓的⽂本这是⼀个很⻓的⽂本这是⼀个很⻓的⽂本这是⼀个很⻓的⽂本这是⼀个很⻓的⽂本");    //ui->label_2->setText("super_little_monster super_little_monster super_little_monster");    ui->label_3->setAlignment(Qt::AlignTop|Qt::AlignLeft);    ui->label_3->setIndent(20);//上左下有20的间距,右侧没有    ui->label_3->setWordWrap(true);    ui->label_3->setText("这是⼀个很⻓的⽂本这是⼀个很⻓的⽂本这是⼀个很⻓的⽂本这是⼀个很⻓的⽂本这是⼀个很⻓的⽂本这是⼀个很⻓的⽂本");    //ui->label_3->setText("super_little_monster super_little_monster super_little_monster");    ui->label_4->setAlignment(Qt::AlignTop|Qt::AlignLeft);    ui->label_4->setMargin(20);//上下左右都有20的间距    ui->label_4->setWordWrap(true);    ui->label_4->setText("这是⼀个很⻓的⽂本这是⼀个很⻓的⽂本这是⼀个很⻓的⽂本这是⼀个很⻓的⽂本这是⼀个很⻓的⽂本这是⼀个很⻓的⽂本");    //ui->label_4->setText("super_little_monster super_little_monster super_little_monster");}Widget::~Widget(){    delete ui;}

在这里插入图片描述
对于openExternalLinks,直接设置true或false

对于buddy
当我们把label的内容设置为“快捷键&”+某个按键的形式,当前label所绑定的buddy将会可以被键盘上的组合键alt+某个按键选中

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

这里生成的就可以被组合键也是快捷键选中


今日分享就到这里了~

在这里插入图片描述


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/174521.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 夫君和小三霸占了我的将军府,我杀疯了阅读_雪儿谭绍木兰全集_小说后续在线阅读_无删减免费完结_
  • 鹿溪小说(鹿溪)终章+番外(穿进恐怖游戏后,我和反派HE了)一口气阅读
  • 完结文留给儿子的副卡月月刷爆,他却因睡桥底被送进收容所列表_完结文留给儿子的副卡月月刷爆,他却因睡桥底被送进收容所(娄墨霆宋佑轩)
  • 你活着,却死在我等你的第三年后续+番外_谨言佳佳温以宁全集_小说后续在线阅读_无删减免费完结_
  • 相思溺于夏时雨小说(裴景澈初念可)章节目录+起始篇章(相思溺于夏时雨)全章无套路在线
  • 未婚夫重生归来叫停手术,把剥开肚子的我困在手术台上40分钟(裴临渊阮离歌)
  • 完结文离婚是你提,净身出户你又哭什么精彩分享列表_完结文离婚是你提,净身出户你又哭什么精彩分享(苏铭余素伊)
  • 全书浏览哥哥重生救我,我带队灭了组织!(陈致远陈知韫)_哥哥重生救我,我带队灭了组织!(陈致远陈知韫)全书结局
  • 全文算命赚功德,我直接飞升成仙(楚天河林风)列表_全文算命赚功德,我直接飞升成仙
  • 八零丈夫抛妻弃子后悔不当初完整文本_顾尧全文_小说后续在线阅读_无删减免费完结_
  • 殉情三年,侯门主母休夫日百棺开道附加(殉情三年,侯门主母休夫日百棺开道)(沈宁鸢谢挽舟)全本浏览阅读连载中
  • 傅沉舟黎枝小说完整在线阅读(悲风诉尽离别)前传列表

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1