QT_C++05-控件,其他常用控件,自定义控件

01 界面布局

1 创建项目
2 登录界面
2.1 界面创建
2.2 界面布局
2.2.1 水平布局显示
2.2.2 垂直布局显示
2.2.3 水平/垂直 间隔设置
2.2.4 取消布局
2.2.5 栅格布局
3 窗口标题
4 细节设置
4.1 设置控件与窗口的间隔
4.1 设置输入栏输入内容的显示方式

详见

02 控件

1 项目创建
2 按钮控件(Buttons)
2.1 QPush Button控件
2.2 Tool Button控件
2.3 Radio Button控件
2.4 Check Box控件
3 单元控件(Item Widgets)
3.1 QListWidget 控件(列表型容器)
3.2 QTreeWidget 控件(树形容器)
3.3 QTableWidget 控件(表格容器)

详见

03 其他常用控件

1 项目创建
2 容器控件(Containers)
2.1 Scroll Area控件
2.2 Tool Box控件
2.3 Tab Widget控件
2.4 Stacked Widget控件
3 输入控件(Input Widget)
3.1 Combo box控件(下拉框)
3.2 Line/Text/Plain Edit控件
4 显示控件(Display Widget)
4.1 Label控件

详见

04 自定义控件

1.项目创建

详见

smallwidget.h:

#ifndef SMALLWIDGET_H
#define SMALLWIDGET_H

#include <QWidget>

namespace Ui {
class SmallWidget;
}

class SmallWidget : public QWidget
{
    Q_OBJECT

public:
    explicit SmallWidget(QWidget *parent = nullptr);
    ~SmallWidget();

    //设置值
    void setNum(int num);
    //获取值
    int getNum();

private:
    Ui::SmallWidget *ui;
};

#endif // SMALLWIDGET_H

smallwidget.cpp:

#include "smallwidget.h"
#include "ui_smallwidget.h"


SmallWidget::SmallWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::SmallWidget)
{
    ui->setupUi(this);
    //(1)绑定spin box 和horizontalSlider
    void(QSpinBox::*spSignal)(int)=&QSpinBox::valueChanged;//使用重载的信号地址
    connect(ui->spinBox,spSignal,  ui->horizontalSlider,&QSlider::setValue);

    //(2)绑定horizontalSlider和spin box实现,移动horizontalSlider,spin box数值改变
    connect(ui->horizontalSlider,&QSlider::valueChanged,ui->spinBox,&QSpinBox::setValue);
}

void SmallWidget::setNum(int num)
{
    ui->spinBox->setValue(num);
}

int SmallWidget::getNum()
{
    return ui->spinBox->value();
}

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

widget.h:

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

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

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);

    //(1)获取当前空间内的值
    connect(ui->pushButton,&QPushButton::clicked,[=]()
    {
        qDebug()<<ui->widget->getNum();

    });

    //(2)设置控件内的值为一半
    connect(ui->pushButton_2,&QPushButton::clicked,[=]()
    {
        ui->widget->setNum(5);

    });
}

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

main.cpp:

#include "widget.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
    return a.exec();
}

在这里插入图片描述

迷你仪表盘是一种自定义控件,主要用于显示简单的数据指示或状态显示。在Qt/C++中编写自定义迷你仪表盘需要以下步骤: 1. 创建一个新的自定义控件类,可以继承QWidget或QLabel。在类的构造函数中初始化一些基本属性,例如仪表盘的大小、颜色、范围等。 2. 重写paintEvent函数,该函数用于绘制仪表盘的外观。在paintEvent函数中,可以使用QPainter绘制各种图形元素,例如圆形、刻度线、指针等。可以根据数据范围和当前值来动态改变指针的位置或角度。 3. 定义一些公有的函数或信号槽,用于设置或更新仪表盘的值。例如,可以定义一个setValue函数用于设置当前值,并在函数内部调用update函数来触发重绘事件。 4. 在主窗口或其他需要使用仪表盘的地方,实例化自定义的迷你仪表盘控件,并设置一些属性,例如位置、大小、初始值等。还可以通过设置样式表来对仪表盘进行外观的自定义。 5. 根据需要,可以添加一些交互功能。例如,可以响应鼠标点击事件,以实现互动操作,例如点击指针可以通过setValue函数来设置对应的值。 编写自定义控件需要一定的Qt/C++编程基础和绘图知识,掌握了基本的绘图函数和事件处理机制后,可以根据需求进行扩展和优化。同时,为了提高代码的可重用性和可维护性,可以将控件的逻辑和外观分离,采用MVC设计模式或其他架构模式进行开发。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值