首页 > 其他分享 >四、基本组件

四、基本组件

时间:2023-10-30 17:07:16浏览次数:30  
标签:基本 void value ui Dialog 组件 include


1. Designer设计师

Designer程序是Qt官方推出的专为设计人员使用的UI设计工具,程序员可以使用此工具大幅降低UI设计的代码量。

Designer设计文件的格式是.ui,需要配合同名的头文件与源文件使用。.ui文件通常被称为界面文件,其内部是xml语法的代码。

当新建项目时,选中

四、基本组件_#include

选项,此时的项目就会自带dialog.ui文件。

四、基本组件_qt_02

双击界面文件,可以直接使用QtCreator内置的Designer程序打开此文件。

四、基本组件_常用属性_03

2. 布局 Layout

可以把布局看做是一个透明的箱子,在布局中的组件会自动按照布局的规则排布,布局包括:

四、基本组件_#include_04

垂直/水平布局表示内部所有组件呈垂直/水平线性排布;格栅布局内部的组件会排布成m*n的格式;表单布局主要用于信息的输入。

四、基本组件_常用属性_05


取消布局可以使用

四、基本组件_#include_06

布局常用属性如下:

四、基本组件_c++_07


布局支持嵌套,对于嵌套的内层布局而言,相当于外层布局的一个组件。

四、基本组件_笔记_08


布局可以贴合窗口,需要选中出窗口后,点击一下布局的工具栏,此时布局可贴合窗口。

有时候需要在组件之间填充空白,除了可以使用一些布局或组件的属性外,还可以使用伸展器(QSpacer)组件,此组件专用于填充空白,本身运行不可见。

四、基本组件_qt_09

四、基本组件_qt_10

3. ui指针

当项目中使用了界面文件后,可以在C++代码中随处可见ui指针成员,可以把此指针看做是界面文件在C++代码中的对象。

四、基本组件_常用属性_11


四、基本组件_qt_12

4. 基本组件

4.1 QWidget类

QWidget类是所有组件的基类,本次再来认识一些此类的属性。

四、基本组件_笔记_13

4.2 QLabel 标签

QLabel是一个标签组件,用于显示文字或图片。
常用属性如下:

四、基本组件_qt_14


添加图片到项目中,操作步骤如下:

  1. 找到图片资源,格式要求为jpg、png、bmp,不要选择过大的图片(分辨率、文件大小)。
    iconfont-阿里巴巴矢量图标库 素材网站
  2. 更改图片名称,名称建议为全英文、下划线和数字组合,且英文全小写,数字不能开头。
  3. 把图片放置到工作目录中。
  4. 在Qt Creator中选中项目名称,鼠标右键,点击“添加新文件”。
  5. 按照下图所示进行操作。
  6. 在弹出的窗口中设置资源文件名称。
  7. 在项目管理界面,直接点击完成。可以看到项目中多了一个.qrc的资源文件。
  8. 选中qrc文件,点击添加前缀。
  9. 再次点击添加里面的添加文件,在弹出的对话框窗口中选中要添加的图片文件。添加成功后会在qrc文件中显示出来。
  10. 点击让资源文件可以被Designer找到,随后就可以在Designer中设置图片了。
    Qt可以完成一些简单的图像处理,但是建议在Qt使用图片之前预先处理好图片,提升程序的运行效率。

4.3 QAbstractButton 按钮类

QAbstractButton是所有按钮类的抽象基类。

四、基本组件_#include_15


QAbstractButton常用属性如下:

四、基本组件_笔记_16


按钮类常用信号:

四、基本组件_#include_17


多个按钮组件的信号槽可以使用QButtonGroup进行分组后连接。

// 构造函数
// 需要手动管理堆内存对象
QButtonGroup::QButtonGroup(QObject * parent = 0)
// 添加按钮到按钮组
// 参数1:按钮对象
// 参数2:编号
void QButtonGroup::addButton(QAbstractButton * button, 
int id = -1)

四、基本组件_常用属性_18

这些信号对应了单个按钮的四种触发情况,参数1用于判断哪个按钮被触发。

需要注意的是,QButtonGroup会导致QCheckBox变单选,此时需要手动关闭互斥性。

#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>
#include <QDebug>
#include <QButtonGroup> // 按钮组

namespace Ui {
class Dialog;
}

class Dialog : public QDialog
{
    Q_OBJECT

public:
    explicit Dialog(QWidget *parent = 0);
    ~Dialog();

private:
    Ui::Dialog *ui;
    QButtonGroup* group;

private slots:
    // 与void	toggled(bool checked)连接
    // 表示选中状态改变
    void toggledSlot(bool);
    // 与按钮组信号连接
    void btnToggledSlot(int,bool);
};

#endif // DIALOG_H
#include "dialog.h"
#include "ui_dialog.h"

Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    ui->setupUi(this);

    connect(ui->radioButtonBurger,SIGNAL(toggled(bool)),
            this,SLOT(toggledSlot(bool)));

    // 创建按钮组对象
    group = new QButtonGroup(this);
    // 添加按钮对象
    group->addButton(ui->checkBoxTea,1);
    group->addButton(ui->checkBoxCoffee,2);
    group->addButton(ui->checkBoxDrink,3);
    // 手动关闭互斥
    group->setExclusive(false);

    connect(group,SIGNAL(buttonToggled(int,bool)),
            this,SLOT(btnToggledSlot(int,bool)));
}

void Dialog::toggledSlot(bool checked)
{
    if(checked)
        qDebug() << "吃汉堡";
    else
        qDebug() << "不吃汉堡";
}

void Dialog::btnToggledSlot(int id, bool checked)
{
    if(id == 1)
        if(checked)
            qDebug() << "喝茶";
        else
            qDebug() << "不喝茶";
    else if(id == 2)
        if(checked)
            qDebug() << "喝咖啡";
        else
            qDebug() << "不喝咖啡";
    else if(id == 3)
        if(checked)
            qDebug() << "喝咖啡";
        else
            qDebug() << "不喝咖啡";
}

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

4.4 QLineEdit 单行文本编辑框

用于输入一个单行字符串,常用属性如下:

四、基本组件_笔记_19


常用信号函数如下:

四、基本组件_#include_20

4.5 QComboBox 组合框

就是一个下拉菜单,功能类似于QRadioButton。

常用属性如下:

四、基本组件_常用属性_21


常用信号如下:

四、基本组件_qt_22


四、基本组件_c++_23

#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>
#include <QDebug>

namespace Ui {
class Dialog;
}

class Dialog : public QDialog
{
    Q_OBJECT

public:
    explicit Dialog(QWidget *parent = 0);
    ~Dialog();

private:
    Ui::Dialog *ui;

private slots:
    // 高光信号槽
    void highlightedSlot(QString);
};

#endif // DIALOG_H
#include "dialog.h"
#include "ui_dialog.h"

Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    ui->setupUi(this);

    connect(ui->comboBox,SIGNAL(highlighted(QString)),
            this,SLOT(highlightedSlot(QString)));
}

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

void Dialog::highlightedSlot(QString text)
{
    qDebug() << text;
}

4.6一组与数字相关的组件

四、基本组件_常用属性_24

常用属性如下:

四、基本组件_c++_25


部分组件拥有方向属性orientation

常用信号:

// value属性值改变时发射
// 参数是当前的value值
void	valueChanged(int value)

通过QDial控制其他控件

#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>

namespace Ui {
class Dialog;
}

class Dialog : public QDialog
{
    Q_OBJECT

public:
    explicit Dialog(QWidget *parent = 0);
    ~Dialog();

private:
    Ui::Dialog *ui;

private slots:
    // 与void valueChanged(int value)信号连接
    void valueChangedSlot(int);
};

#endif // DIALOG_H
#include "dialog.h"
#include "ui_dialog.h"

Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    ui->setupUi(this);

    connect(ui->dial,SIGNAL(valueChanged(int)),
            this,SLOT(valueChangedSlot(int)));
}

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

void Dialog::valueChangedSlot(int value)
{
    ui->spinBox->setValue(value);
    ui->progressBar->setValue(value);
    ui->horizontalScrollBar->setValue(value);
    ui->verticalScrollBar->setValue(value);
    ui->horizontalSlider->setValue(value);
    ui->verticalSlider->setValue(value);
}


标签:基本,void,value,ui,Dialog,组件,include
From: https://blog.51cto.com/u_14458591/8095378

相关文章

  • 《银行法律法规》四、法律基础——1、银行基本法律法规
    第一章银行基本法律法规第一节《中国人民银行法》时间事件中国人民银行是中华人民共和国的中央银行,全部资本由国家出资,属于国家所有。大事记1984年1月1日中国人民银行开始专门行使中央银行职能,随后初步确定了中央银行制度的基本框架。1993年按照国务院《关于金融体制改革的......
  • Hadoop三大组件(HDFS,MapReduce,Yarn)
    1、HDFSHDFS是Hadoop分布式文件系统。一个HDFS集群是由一个NameNode和若干个DataNode组成的。其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件的访问操作;集群中的DataNode管理存储的数据。2、MapReduceMapReduce是一个软件框架,基于该框架能够容易地编写......
  • vant DropdownMenu 下拉菜单组件穿透问题
    问题描述:在微信小程序中使用Vant组件库提供的DropdownMenu下拉菜单组件时,当内容超过一定高度时,随着页面内容部分的滚动,顶部会出现部分间隙,继续划动会导致底层页面的滚动,这就是滚动穿透。解决方案(禁止滚动穿透)DropdownMenu下拉菜单组件内部结合了Popup弹出层组件。目前,Popup组件......
  • Vue2 实现印章徽章组件
    Vue2实现印章徽章组件需要实现的组件效果:该组件有设置颜色、大小、旋转度数和文本内容功能。一、组件实现代码<template><divclass="first-ring"v-bind="getBindValue":class="getStampBadgeClass":style="{transform:`rotate(${rotate}deg)`}&qu......
  • 短视频app源码,Flutter组件--搜索页面布局
    短视频app源码,Flutter组件--搜索页面布局 classLayoutDemoextendsStatelessWidget{ constLayoutDemo({Key?key}):super(key:key); @override Widgetbuild(BuildContextcontext){  returnPadding(   padding:constEdgeInsets.all(10),   c......
  • Java后端常用功能组件(持续更新)
    写项目时会存在大量的重复业务,不想重复的自己coding,就需要去cv。这里存放常用的功能代码,进行二次开发。说明这里只给出后端的代码,前端页面的请求用postman或其他应用。springboot应用结合目录与CTRL+f,可以快速定位到指定需求目录文件上传文件上传代码展示importl......
  • 嵌入式硬件库的基本操作方式与分析
    本次要介绍的开源软件是c-periphery:https://github.com/vsergeev/c-periphery一个用C语言编写的硬件外设访问库。我们可以用它来读写Serial、SPI、I2C等,非常适合在嵌入式产品上使用。我们可以基于它优秀的代码框架,不断地扩展出更多的功能模块,最终形成自己产品适用的Linux硬......
  • Java基本语法
    一、基本框架1)概念一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作对象(object):代表现实世界中可以明确标识的一个实体,存在独特的标识、状态和行为。例如,一条鱼是一个对象,它的状态有:颜色、品种;行为有:漫游、鱼跃等。类(class):是创建对......
  • linux基本文件命令复习笔记
    1,放大缩小终端窗口字体  放大 ctrlshift+=   缩小  ctrl-2,6个常见终端命令 (1)ls  查看当前文件夹下的内容 (2)pwd 查看当前所在文件夹  (3)cd目录名 切换文件夹 (4)touch文件名 如果文件不存在,新建文件。和mkdir不同的是,mkdir创......
  • html标签,属性,基本结构
     一、认识标签 1标签有双标签和单标签双标签:<marquue></marquue>单标签:<input> 二、认识属性 1.loop属性:用来定义标签2.特殊属性值:没有属性值,只有名三、基本结构1.在网页,右键检查按钮,就可以查看某段结构的具体代码      2.基本结构<html> ......