推荐一个超全超方便的Qt组件开源项目

原创 李肖遥 2025-04-09 22:10
    关注、星标公众号,直达精彩内容
来源:技术让梦想更伟大

作者:李肖遥

这个项目真的太赞了,可以说是组件开发的大福音啊,砖头都搬好了,我们拿来用就行了。
已经实现的组件有很多, App Bar、 Auto Complete、Avatar、Badge、Check Box、Circular Progress、Dialog、Drawer、Floating Action 、Button、Flat Button、Icon Button、Progress、Radio Button、、Raised Button、Scroll Bar、Slider、Snackbar、Tabs、Text Field、Toggle。
这些组件都是基于 Qt 小部件的 Material Design 规范实现的,很有参考价值,并且提供了按钮、卡片、动画效果等组件,适合移动端或触屏设备开发
 看看下面的效果图实现的怎么样,还是很炫酷的。

App Bar
QtMaterialAppBar
Auto Complete
QtMaterialAutoComplete
Avatar
QtMaterialAvatar
Badge
QtMaterialBadge
Check Box
QtMaterialCheckBox
Circular Progress
QtMaterialCircularProgress
Dialog
QtMaterialDialog
Drawer
QtMaterialDrawer
FAB
QtMaterialFloatingActionButton
Flat Button
QtMaterialFlatButton
Icon Button
QtMaterialIconButton
Progress
QtMaterialProgress
Radio Button
QtMaterialRadioButton
Raised Button
QtMaterialRaisedButton
Scroll Bar
QtMaterialScrollBar
Slider
QtMaterialSlider
Snackbar
QtMaterialSnackBar
Tabs
QtMaterialTabs
Text Field
QtMaterialTextField
Toggle
QtMaterialToggle


其主要实现代码如下

mainwindow.cpp

#include "mainwindow.h"
#include
#include
#include
#include "avatarsettingseditor.h"
#include "badgesettingseditor.h"
#include "checkboxsettingseditor.h"
#include "fabsettingseditor.h"
#include "raisedbuttonsettingseditor.h"
#include "flatbuttonsettingseditor.h"
#include "iconbuttonsettingseditor.h"
#include "progresssettingseditor.h"
#include "circularprogresssettingseditor.h"
#include "slidersettingseditor.h"
#include "radiobuttonsettingseditor.h"
#include "togglesettingseditor.h"
#include "textfieldsettingseditor.h"
#include "tabssettingseditor.h"
#include "snackbarsettingseditor.h"
#include "dialogsettingseditor.h"
#include "drawersettingseditor.h"
#include "scrollbarsettingseditor.h"
#include "appbarsettingseditor.h"
#include "autocompletesettingseditor.h"
#include "menusettingseditor.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    QWidget *widget = new QWidget;
    QHBoxLayout *layout = new QHBoxLayout;

    widget->setLayout(layout);

    QStackedLayout *stack = new QStackedLayout;
    QListWidget *list = new QListWidget;

    layout->addWidget(list);
    layout->addLayout(stack);

    layout->setStretch(1, 2);

    setCentralWidget(widget);

    AvatarSettingsEditor *avatar = new AvatarSettingsEditor;
    BadgeSettingsEditor *badge = new BadgeSettingsEditor;
    CheckBoxSettingsEditor *checkbox = new CheckBoxSettingsEditor;
    FloatingActionButtonSettingsEditor *fab = new FloatingActionButtonSettingsEditor;
    RaisedButtonSettingsEditor *raisedButton = new RaisedButtonSettingsEditor;
    FlatButtonSettingsEditor *flatButton = new FlatButtonSettingsEditor;
    IconButtonSettingsEditor *iconButton = new IconButtonSettingsEditor;
    ProgressSettingsEditor *progress = new ProgressSettingsEditor;
    CircularProgressSettingsEditor *circularProgress = new CircularProgressSettingsEditor;
    SliderSettingsEditor *slider = new SliderSettingsEditor;
    RadioButtonSettingsEditor *radioButton = new RadioButtonSettingsEditor;
    ToggleSettingsEditor *toggle = new ToggleSettingsEditor;
    TextFieldSettingsEditor *textField = new TextFieldSettingsEditor;
    TabsSettingsEditor *tabs = new TabsSettingsEditor;
    SnackbarSettingsEditor *snackbar = new SnackbarSettingsEditor;
    DialogSettingsEditor *dialog = new DialogSettingsEditor;
    DrawerSettingsEditor *drawer = new DrawerSettingsEditor;
    ScrollBarSettingsEditor *scrollBar = new ScrollBarSettingsEditor;
    AppBarSettingsEditor *appBar = new AppBarSettingsEditor;
    AutoCompleteSettingsEditor *autocomplete = new AutoCompleteSettingsEditor;
    MenuSettingsEditor *menu = new MenuSettingsEditor;

    stack->addWidget(appBar);
    stack->addWidget(autocomplete);
    stack->addWidget(avatar);
    stack->addWidget(badge);
    stack->addWidget(checkbox);
    stack->addWidget(circularProgress);
    stack->addWidget(dialog);
    stack->addWidget(drawer);
    stack->addWidget(fab);
    stack->addWidget(flatButton);
    stack->addWidget(iconButton);
    stack->addWidget(menu);
    stack->addWidget(progress);
    stack->addWidget(radioButton);
    stack->addWidget(raisedButton);
    stack->addWidget(scrollBar);
    stack->addWidget(slider);
    stack->addWidget(snackbar);
    stack->addWidget(tabs);
    stack->addWidget(textField);
    stack->addWidget(toggle);

    list->addItem("App Bar");
    list->addItem("Auto Complete");
    list->addItem("Avatar");
    list->addItem("Badge");
    list->addItem("Checkbox");
    list->addItem("Circular Progress");
    list->addItem("Dialog");
    list->addItem("Drawer");
    list->addItem("Floating Action Button");
    list->addItem("Flat Button");
    list->addItem("Icon Button");
    list->addItem("Menu");
    list->addItem("Progress");
    list->addItem("Radio Button");
    list->addItem("Raised Button");
    list->addItem("ScrollBar");
    list->addItem("Slider");
    list->addItem("Snackbar");
    list->addItem("Tabs");
    list->addItem("Text Field");
    list->addItem("Toggle");

    list->setCurrentRow(0);

    QObject::connect(list,  &QListWidget::currentItemChanged,
        [=](QListWidgetItem *current, QListWidgetItem *previous)
    {
        Q_UNUSED(current)
        Q_UNUSED(previous)
        stack->setCurrentIndex(list->currentRow());
    });
}

MainWindow::~MainWindow()
{
}

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include

class MainWindow : public QMainWindow
{
    Q_OBJECT

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

#endif // MAINWINDOW_H

项目地址:

https://github.com/laserpants/qt-material-widgets

‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧  END  ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧

关注我的微信公众号,回复“星球”加入知识星球,有问必答。



点击“阅读原文”查看知识星球详情,欢迎点分享、收藏、点赞、在看。

李肖遥 公众号“技术让梦想更伟大”,作者:李肖遥,专注嵌入式,只推荐适合你的博文,干货,技术心得,与君共勉。
评论 (0)
  • 北京贞光科技有限公司作为紫光同芯授权代理商,深耕电子元器件领域数十载,专为汽车与工业客户提供车规级安全芯片及配套服务。公司整合硬件供应、软件SDK与技术支持为一体,配备专业团队提供选型咨询与现场指导,助力客户实现完整的芯片应用解决方案。在全球芯片供应链重构的大背景下,我国车规级芯片产业正迎来前所未有的发展机遇。北京贞光科技有限公司作为紫光同芯授权代理商,深耕电子元器件领域数十载,专为汽车与工业客户提供车规级安全芯片及配套服务。公司整合硬件供应、软件SDK与技术支持为一体,配备专业团队提供选型咨询
    贞光科技 2025-04-21 16:10 65浏览
  • 导读在智能汽车技术发展浪潮中,车辆控制系统的智能化、网络化已成为行业发展的必然趋势。虹科PEAK智行定位车控系统,集成了尖端科技,能够实现车辆全方位监控与控制。从实时GPS定位到CAN/CAN FD信号处理,虹科方案不仅提升了车辆的智能化水平,更在安全性和效率上迈出了革命性的一步。虹科PEAK智行定位车控系统,通过CAN/CAN FD信号实现车辆的精准控制,包括加减速、转弯、倒退等动作,模拟真实车辆平台的动态表现。该系统搭载了虹科各型号设备,通过紧密协作,实时反映车辆位置、总线报文等信息,实现车
    虹科汽车智能互联 2025-04-21 16:04 64浏览
  •   有效数据智能分拣系统平台深度解析   一、系统概述   北京华盛恒辉有效数据智能分拣系统平台融合人工智能、机器视觉、物联网及大数据分析技术,为物流包裹、数据信息等提供高效精准的智能化分拣处理方案。通过自动化设备与智能算法协同运作,取代传统人工分拣模式,显著提升分拣效率、降低错误率,满足电商、快递及供应链不断增长的业务需求。   应用案例   目前,已有多个有效数据智能分拣系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润有效数据智能分拣系统。这些成功案例为有效数据智能分
    华盛恒辉l58ll334744 2025-04-21 16:22 111浏览
  •   电磁信号模拟系统深度解析   一、系统概述   北京华盛恒辉电磁信号模拟系统作为半实物仿真测试系统,广泛应用于无线通信、军事训练等多领域。它通过软硬件结合,构建逼真电磁信号环境,用于测试电子设备在复杂电磁干扰下的性能表现。   应用案例   目前,已有多个电磁信号模拟系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润电磁信号模拟系统。这些成功案例为电磁信号模拟系统的推广和应用提供了有力支持。   二、系统组成   装备模型库:涵盖雷达、通信设备等各类装备平台及电子装
    华盛恒辉l58ll334744 2025-04-21 10:48 93浏览
  •  霍尔效应自发现以来,已渗透至多个行业领域,其核心应用可归纳为以下几类:一、‌电子与半导体行业‌1、‌半导体器件开发与测试‌① 通过测量霍尔系数和电阻率,判断器件的导电类型(N型/P型)及载流子浓度分布,优化器件设计和制造工艺‌。② 监控晶圆掺杂水平和表面缺陷,提高集成电路良率‌。2、‌磁场传感器制造与校准‌测试霍尔传感器的灵敏度、线性度、响应时间等参数,确保其在汽车、工业控制等场景下的可靠性‌。3、‌电磁测量仪器‌基于霍尔电压与磁场强度的线性关系,开发高斯计、电流表、功率计等‌。二、
    锦正茂科技 2025-04-21 13:17 42浏览
  • 导读在汽车测试和现代工业领域,功耗控制与效率优化是工程师们不断追求的目标。虹科PCAN Router系列设备以其卓越的性能和灵活性,为CAN/CAN FD网络中的报文转换提供了高效解决方案。本文将探讨虹科PCAN Router系列设备如何在保持高效工作的同时,通过低功耗模式和高效唤醒功能,满足对能耗有严格要求的应用场景。虹科PCAN Router系列网关1 低功耗模式的优势与实现在实际的工作场景中,可能会出现一些对功耗要求存在限制的情况。鉴于此,可以灵活设置虹科PCAN Router系
    虹科汽车智能互联 2025-04-21 15:45 57浏览
  • 精益生产咨询师证/精益管理专业人员证/精益生产工程师证虽然在名称上有一些差异,但其实实际区别并不大,目前类似的证书以ILSSI-CLMP较为得到国际上的认可,当然,你不会因为有一张精益生产咨询师证,而会有人马上请你做咨询师,因为除了知识之外,你还要有充足经验、热诚、沟通能力等等,这些也是我们招聘咨询师的基本要求。那么,有没有必要取得CLMP证书呢?这主要取决于你自己对职业发展的规划和自我提升的意志。CLMP是什么?CLMP的全称是Certified Lean Management Profess
    优思学院 2025-04-21 14:29 39浏览
  •   电磁信号模拟平台解析   北京华盛恒辉电磁信号模拟平台作为模拟复杂电磁环境的系统,在无线通信、电子对抗等多领域广泛应用。以下从功能、技术特性、应用场景及发展趋势展开详细解读。   应用案例   目前,已有多个电磁信号模拟平台在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润电磁信号模拟平台。这些成功案例为电磁信号模拟平台的推广和应用提供了有力支持。   一、核心功能   复杂电磁环境建模:构建贴近真实的电磁环境,涵盖各类干扰因素。   多通道信号模拟:模拟多通道电磁信号
    华盛恒辉l58ll334744 2025-04-21 15:10 88浏览
  •   有效数据智能分拣系统详解   北京华盛恒辉有效数据智能分拣系统融合人工智能、大数据分析与机器学习等前沿技术,实现海量数据自动化分类、筛选、整理及分配。凭借强大的数据处理效能,助力企业精准提取关键信息,优化决策流程,提升运营效率。以下从系统架构、核心功能、技术特性、应用场景及发展趋势展开解读。   应用案例   目前,已有多个有效数据智能分拣系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润有效数据智能分拣系统。这些成功案例为有效数据智能分拣系统的推广和应用提供了有力支持。
    华盛恒辉l58ll334744 2025-04-21 16:46 97浏览
  • 导读Linux驱动程序领域再添新成员,PLIN驱动程序现已正式发布。这一新驱动程序为使用LIN接口的用户提供了一个便捷、高效的解决方案。本文将展示如何安装PLIN驱动程序,以及如何在Linux环境下进行基本的PLIN通信操作,确保您能够快速掌握并应用这一新工具。继我们在Linux环境下成功推出CAN/CAN FD接口驱动程序后,现在我们为LIN接口带来了同样兼容Linux的驱动程序。免费软件包中不仅包含了驱动程序本身,还提供实用工具和一份易于理解的快速入门指南。用户下载后,需要根据当前使用的Li
    虹科汽车智能互联 2025-04-21 14:56 56浏览
  • 一、‌基础原理验证与分析‌1、‌理解霍尔效应基本机制‌通过实验观察磁场中导体或半导体材料的电荷偏转现象,验证霍尔电压与磁场强度、电流方向的关系,直观认识洛伦兹力对载流子的作用‌。2、‌探索磁电效应关联性‌研究霍尔效应与材料电学特性(如载流子类型、浓度)的关联,揭示半导体材料的导电机制(如N型/P型半导体)。二、‌参数测量与标定‌1、‌关键物理量测量‌掌握霍尔元件灵敏度(KH)、霍尔系数(RH)、电导率(σ)及载流子迁移率(μ)的测量方法,为半导体材料性能评估提供数据支持。2、‌磁场强度与分布测定
    锦正茂科技 2025-04-21 13:03 34浏览
  •  霍尔效应的检测需通过实验手段测量霍尔电压、载流子浓度等参数,并分析材料电学特性。以下是具体检测方法及流程:一、核心检测方法1、‌直流(DC)霍尔测试‌‌原理‌:通过恒定磁场和电流测量霍尔电压,适用于常规半导体材料(如硅、砷化镓)。‌步骤‌:向样品通入直流电流,施加垂直磁场,用高精度电压表直接测量霍尔电压,并排除热电压等干扰信号。2、‌交流磁场(AC)霍尔测试‌‌适用场景‌:针对低迁移率材料(如某些有机半导体),霍尔电压远小于误差电压时使用。‌技术要点‌:利用锁相放大器提取交流磁场下的
    锦正茂科技 2025-04-21 11:39 37浏览
  •   海上安全事件应急处置系统解析   北京华盛恒辉海上安全事件应急处置系统是为应对船舶碰撞、火灾等海上突发事件打造的综合管理体系,通过技术与协同机制,实现快速响应救援、优化资源配置,守护海上生命、财产与环境安全。以下从系统构成、功能、技术、应用及趋势展开阐述。   应用案例   目前,已有多个海上安全事件应急处置系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润海上安全事件应急处置系统。这些成功案例为海上安全事件应急处置系统的推广和应用提供了有力支持。   一、系统构成
    华盛恒辉l58ll334744 2025-04-21 15:50 66浏览
  • 导读在当今快速发展的智能通讯领域,时间敏感网络(TSN)已成为确保网络通信高可靠性和低延迟的关键技术。IEEE 802.1 Qci作为TSN的一个重要组成部分,提供了一套强大的机制来管理网络流量,确保关键数据流的优先级和带宽得到保障。本文将深入探讨IEEE 802.1 Qci协议的基本概念、工作原理以及虹科提供的Qci解决方案,帮您理解如何通过精确的流量控制来提升网络的稳定性和效率。虹科TSN解决方案01# 技术简介时间敏感网络(TSN)通过IEEE 802.1 Qci标准定义了一种关
    虹科工业智能互联 2025-04-21 16:17 70浏览
  •   海上安全事件应急处置系统平台深度解析   一、平台概述   北京华盛恒辉海上安全事件应急处置系统平台融合现代信息技术、通信技术、GIS、大数据分析及 AI 等技术,旨在快速响应船舶碰撞、火灾、溢油等海上突发事件,实现科学决策与高效资源调配,保障海上生命财产安全、减少环境污染。   应用案例   目前,已有多个海上安全事件应急处置系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润海上安全事件应急处置系统。这些成功案例为海上安全事件应急处置系统的推广和应用提供了有力支持
    华盛恒辉l58ll334744 2025-04-21 15:21 82浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦