QT_ui常用控件

目录

1. 布局(Layout)

 2. 弹簧(Spacers)

 3. 按钮(Bottons)

 3.1 Push Botton

3.2 QToolButton

 3.3 Radio Button(单选)

3.3.1 设置Radio Button控件

3.3.2 设置默认勾选

3.3.3 设置勾选时进行的操作

3.4 Check Box(复选)

 4. Item Widgets

 4.1 QListWidget

 4.1.1 代码实现

 4.3.2 ui 实现

4.2 QTreeWidget

4.2.1 代码实现

 4.2.2 ui 实现

4.3 QTableWidget

4.3.1 ui实现

​编辑​​编辑​​编辑​​编辑​

5. Containers

5.1 Group Box

5.2 Scroll Area

5.3 Tool Box

5.4 Tab Widget

5.5 Stacked Widget

5.6 Dock Widget

 5.6.1 代码实现

 5.6.2 ui 实现

6. Input Widgets

 6.1 Combo Box

6.1.1 代码实现

6.1.2  ui 实现

6.2 Font Combo Box

​编辑

6.3 Line Edit

 ​编辑

6.3 Text Edit

 6.4 Plain Text Edit

6.5 Spin Box

6.6 Double Spin Box

6.7 Time Edit

6.8 Date Edit

6.9 Date/Time Edit

6.10 Dial

6.11 Horizontal Scroll Bar

6.12 Vertical Scroll Bar

6.13 Horizontal Slider

6.14 Vertical Slider

6.15 Key Sequence Edit

7. Display Widgets

7.1 Label

​编辑 ​编辑

7.1.2 添加动图


1. 布局(Layout)

 非常常用

1.可以直接拖动创建一个指定布局窗口

2.也可先把控件放在同一个Widget窗口中,再选择布局

 2. 弹簧(Spacers)

可以控制控件的位置

选中弹簧在属性栏中可以控制弹簧大小(Fixed为固定弹簧)

 3. 按钮(Bottons)

常用的有

Push Botton

 3.1 Push Botton

点击响应

加载图标

加载图标,在属性栏中icon模块选择资源

在inconSize中修改图标大小

3.2 QToolButton

工具按钮,常用于显示图片,可以通过调整按钮的类型来调整文字与图片的关系

ToolButtonIconOnly   只显示图片

ToolButtonTextOnly   只显示文本

ToolButtonTextBesideIcon   文本在图片旁

如图第二个按钮为ToolButtonIconOnly类型

autoRaise控制背景是否透明

 3.3 Radio Button(单选)

3.3.1 设置Radio Button控件

单独放是可以选中

放在同一个框框中可以做到只能选一个

 

3.3.2 设置默认勾选

初始是都没选中

可通过代码来实现默认选项使用  Radio Button->setChecked(true)

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    
    //单选按钮  默认选中 男
    ui->rbtn_man->setChecked(true);
}

 运行结果

3.3.3 设置勾选时进行的操作

使用connect来链接点击后的操作

//点击女单选按钮  打印输出
    connect(ui->rbtn_woman,&QRadioButton::clicked,[=](){
        qDebug()<<"选中“女”";
    });

 

3.4 Check Box(复选)

可以同时多选

Check Box作为信号有专门的发信号函数,stateChanged有参数state

槽函数必须要有int 这个参数

 //复选按钮 点击环境好后 监听
    connect(ui->checkBox,&QCheckBox::stateChanged,[=](int state){
        qDebug()<<state;
    });

 2为全选中    0为未选中

可在属性栏中勾选tristate选项可以触发半选  输出1

 

 4. Item Widgets

QListWidget

QTreeWidget

QTableWidget

 4.1 QListWidget

QListWidget 是qt中的列表框控件,它用于显示多个列表项

列表项对应的类是QListWidgetItem.

 4.1.1 代码实现

使用QListWidgetItem          创建列表项

ui->listWidget->addItem()    将列表项加载到控件中

item->setTexAlignment(Qt::   )      设置对齐方式

ui->listWidget->addItems(QStringList)可以一次性放入多个列表项,但不能设置对齐方式

    //listWidget
    QListWidgetItem* item = new QListWidgetItem("锄禾日当午");

    ui->listWidget->addItem(item);
    //居中
    item->setTextAlignment(Qt::AlignHCenter);

    //QStringList    QList<QString>
    QStringList list;
    list << "锄禾日当午" <<"汗滴禾下土" << "谁知盘中餐" << "粒粒皆辛苦";
    //addItems参数为QStringList  可以放多行   但不能居中
    ui->listWidget->addItems(list);

 运行结果

 4.3.2 ui 实现

可以轻松实现各种功能

4.2 QTreeWidget

4.2.1 代码实现

QTreeWidget 是 Qt 框架提供的一种树形控件,它能以树形结构展示数据(或者文件)之间的包含关系。

头:ui->treeWidget->setHeaderLables (QStringList);

根:ui->treeWidget->addTopLevelItem (QTreeWidgetItem*);

枝:QTreeWidgetItem->addChild (QTreeWidgetItem*);

    //treeWidget树控件使用
    //设置头
    ui->treeWidget->setHeaderLabels(QStringList() << "英雄" << "分路");

    QTreeWidgetItem* proItem1 = new QTreeWidgetItem(QStringList() << "中路");
    QTreeWidgetItem* proItem2 = new QTreeWidgetItem(QStringList() << "对抗路");
    QTreeWidgetItem* proItem3 = new QTreeWidgetItem(QStringList() << "发育路");

    //将根放到树中
    ui->treeWidget->addTopLevelItem(proItem1);
    ui->treeWidget->addTopLevelItem(proItem2);
    ui->treeWidget->addTopLevelItem(proItem3);

    QStringList hero1;
    QStringList hero2;
    QStringList hero3;
    hero1 << "马超" << "以吃中路兵线文明,接管中路并线则征服峡谷";
    hero2 << "马超" << "对抗路一哥,自加强两星期后惨遭大砍";
    hero3 << "元神" << "著名演员桑杰伦说到,除非对抗路削弱,否则元神就是打发育路";

    QTreeWidgetItem* l1 = new QTreeWidgetItem(hero1);
    QTreeWidgetItem* l2 = new QTreeWidgetItem(hero2);
    QTreeWidgetItem* l3 = new QTreeWidgetItem(hero3);
    //在根里添加枝杈
    proItem1->addChild(l1);
    proItem2->addChild(l2);
    proItem3->addChild(l3);

 

 4.2.2 ui 实现

 

4.3 QTableWidget

4.3.1 ui实现

5. Containers

Group Box           分组容器

Scroll Area           可以上下滑动的窗口

Tool Box               分组容器

Tab Widget           多个标签的窗口

Stacked Widget    栈容器窗口,可以链接按钮

5.1 Group Box

一个分组容器,可以将一些控件组在一个区域,便于功能分区

 

5.2 Scroll Area

对区域内增加一个上下滑动的滑块

 

5.3 Tool Box

分组区域

 在对象栏中右键可以添加页

 

选中ToolBox在属性栏中可以设置各种属性

可以在每个栏下面拖入控件

5.4 Tab Widget

可以作为浏览标签

选中tabWidget对象,在属性栏中可以设置各种属性 

​ 

同理,可以在标签页面添加各种控件

右键对象,可以添加标签 

 

5.5 Stacked Widget

栈容器,可以通过按钮来设置第几页的内容

 将两个容器分别放入栈的两个位置中,通过右上角进行翻页

放入之后再对象栏中可以看到栈里面有两个对象 

设置两个按钮来控制,否则默认为打开第一页,且不会再运行窗口中进行翻页 

代码进行链接

    //点击按钮 切换 stacked容器
    connect(ui->bt_scrollArea,&QPushButton::clicked,[=](){
        ui->stackedWidget->setCurrentIndex(0);
    });
    connect(ui->bt_ToolBox,&QPushButton::clicked,[=](){
        ui->stackedWidget->setCurrentIndex(1);
    });

 运行结果

 

同理在对象栏中右键选择添加栈容量 

5.6 Dock Widget

铆接部件(浮动窗口)

 5.6.1 代码实现

    //铆接部件 (浮动窗口)
    QDockWidget* dock = new QDockWidget("aaa",this);
    addDockWidget(Qt::TopDockWidgetArea,dock);
    dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);

运行结果

1.正常添加铆接部件(默认在上方)

  2.拖动时可以作为浮动窗口

  3.在加入核心部件之后,可以 附着在上下左右边框

 5.6.2 ui 实现

6. Input Widgets

 Combo Box   下拉框

 6.1 Combo Box

6.1.1 代码实现

    //下拉框的实现
    ui->comboBox->addItem("奔驰");
    ui->comboBox->addItem("宝马");
    ui->comboBox->addItem("拖拉机");

    //点击按钮 选中拖拉机下拉框内容
    connect(ui->bt_select,&QPushButton::clicked,[=](){
        ui->comboBox->setCurrentText("拖拉机");
    });

 运行时点击“拖拉机”按钮“,则下拉框内容切换为”拖拉机“

6.1.2  ui 实现

直接双击添加

 

6.2 Font Combo Box

字体下拉框

默认有系统自带的多种字体

6.3 Line Edit

单行编辑框

 

在属性框中可以在echo Mode中设置密码模式

6.3 Text Edit

核心文本框

可以修改字体格式(运行时不能)

 6.4 Plain Text Edit

纯文本框,不能调格式

6.5 Spin Box

计数器

6.6 Double Spin Box

双精度计数器

 

6.7 Time Edit

时间控件

 

6.8 Date Edit

日期控件

 

6.9 Date/Time Edit

时间日期控件

6.10 Dial

6.11 Horizontal Scroll Bar

水平滑块

6.12 Vertical Scroll Bar

垂直滑块

6.13 Horizontal Slider

水平滚动条

6.14 Vertical Slider

垂直滚动条

6.15 Key Sequence Edit

设置快捷键

7. Display Widgets

7.1 Label

标签页面,可以添加文字,也可以添加图片或动图

 7.1.1 添加图片

添加图片:在属性栏中找到pixmap,在资源文件中添加图片 

 

可以选中scaledContents,使图片填充标签框

7.1.2 添加动图

添加动图需要通过代码实现

    //利用QLabel 显示动态图片  格式要求 gif
    QMovie* movie = new QMovie(":/images/bandicam 2024-04-29 18-27-59-055 00_00_00-00_00_30.gif");
    ui->label->setMovie(movie);
    movie->start();

7.1.3 添加Label的边框

在属性栏中QFrame的frameShape选择合适的边框

  • 46
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt中,UI控件的底层逻辑是通过信号(Signal)和槽(Slot)机制来实现的。以下是一些关键概念和原理: 1. 信号(Signal):信号是由UI控件发出的事件,表示某个特定的状态或操作。例如,按钮点击、文本框内容更改等。每个信号都与一个特定的事件相关联。 2. 槽(Slot):槽是与信号相关联的特殊函数,用于处理信号触发时的逻辑。槽可以是任何成员函数,只要符合一定的规则。 3. 信号与槽的连接:通过使用`connect`函数,可以将信号与槽连接起来。当信号被触发时,与之连接的槽函数将被自动调用。 4. 事件循环(Event Loop):Qt应用程序中存在一个事件循环,负责接收和分发事件。当用户与UI交互时,事件循环会接收到相应的事件,并将其发送给相应的控件。 5. 事件过滤器(Event Filter):事件过滤器是一种机制,允许在控件接收到事件之前截获并处理该事件。通过使用事件过滤器,可以对特定类型的事件进行自定义处理。 6. 模型-视图编程(Model-View Programming):Qt提供了许多支持模型-视图编程的类,如QAbstractItemModel、QStandardItemModel等。这些类允许通过数据模型对UI控件进行管理和操作。 总的来说,QtUI控件底层逻辑是基于信号和槽机制实现的,通过连接信号与槽来响应用户操作和管理控件状态。这种机制使得UI编程更加灵活和可扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值