{"id":13630003,"url":"https://github.com/daodaoliang/NBaseUiKit","last_synced_at":"2025-04-17T13:31:11.715Z","repository":{"id":47793925,"uuid":"78415207","full_name":"daodaoliang/NBaseUiKit","owner":"daodaoliang","description":"个人平时使用的一些Qt编写的组件(有部分是整合的开源作品，部分是自己原创)；","archived":false,"fork":false,"pushed_at":"2018-05-29T03:06:23.000Z","size":454,"stargazers_count":406,"open_issues_count":0,"forks_count":186,"subscribers_count":39,"default_branch":"master","last_synced_at":"2024-08-01T22:44:59.096Z","etag":null,"topics":["labels","qt","switch","toastr","uikit","widget"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/daodaoliang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-01-09T09:44:57.000Z","updated_at":"2024-07-31T15:32:41.000Z","dependencies_parsed_at":"2022-08-31T20:02:03.573Z","dependency_job_id":null,"html_url":"https://github.com/daodaoliang/NBaseUiKit","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daodaoliang%2FNBaseUiKit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daodaoliang%2FNBaseUiKit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daodaoliang%2FNBaseUiKit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daodaoliang%2FNBaseUiKit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/daodaoliang","download_url":"https://codeload.github.com/daodaoliang/NBaseUiKit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223757105,"owners_count":17197496,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["labels","qt","switch","toastr","uikit","widget"],"created_at":"2024-08-01T22:01:26.953Z","updated_at":"2024-11-08T21:30:36.716Z","avatar_url":"https://github.com/daodaoliang.png","language":"C++","funding_links":[],"categories":["C++"],"sub_categories":[],"readme":"# 基础UI组件使用说明\n\n```\n    作者: daodaoliang@yeah.net\n    版本: V1.0.17.1\n    修改时间: 2018年5月29日\n    联系QQ: 88341189\n```\n\n[TOC]\n\n## 1. 项目使用说明\n\n### 1.1 如何从源码构建组件\n\n|构建环境|环境说明|\n|:------:|:------:|\n|windows下|mingw-gcc编译器 + Qt5+|\n|ubuntu 18.04|mingw-gcc编译器|Qt5.11|\n\n**PS1:** 在构建时在QtCreator中勾掉show build选项,编译运行即可,生成的文件在`bin`文件中;\n\n**PS2:** 你也可以直接使用我构建好的程序[点击下载17编译好的版本程序](http://download.csdn.net/detail/xiaoliang_1/9732371)\n\n\n### 1.2如何添加项目\n\n* 首先拷贝源码到你的工程文件目录;\n* 在你的项目 pro文件中添加:\n\n```c\n# import dll\nwin32: LIBS += -L$$PWD/../bin/ -lNBaseUiKit\nDEPENDPATH += $$PWD/../bin\n\n# import dll file\ninclude($$PWD/../NBaseUiKit/NBaseUiKit_inc.pri)\n```\n\n**具体的路径请按照你的项目情况进行修改**\n\n## 2. 如何运行测试例子\n\n打开工程文件`NBaseUiKit.pro`,然后在QtCreator中勾掉show build选项,编译运行即可,生成的文件在`bin`文件中,直接运行`exe`文件即可;\n\n## 3. 测试用例\n\n* 可移动窗体测试用例\n\n```c\n    // 可以移动窗体的测试用例\n    NBaseMoveableWidget test_case_001;\n    QLabel test_case_001_label(\u0026test_case_001);\n    test_case_001_label.setText(\"可以移动窗体的测试用例\");\n    test_case_001.setGeometry(0,0,400,400);\n    test_case_001.show();\n```\n\n* 渐入渐出窗体测试用例\n\n```c\n\t// 渐入渐出窗体测试用例\n    NBaseFadeWidget test_case_002;\n    QLabel test_case_002_label(\u0026test_case_002);\n    test_case_002_label.setText(\"渐入渐出窗体测试用例\");\n    test_case_002.setGeometry(400,0,400,400);\n    test_case_002.beginFadeShow(5);\n```\n\n* // 迷你窗体测试用例\n\n```c\n    // 迷你窗体测试用例\n    NBaseMiniAppWidget test_case_003;\n    test_case_003.setPixmap(QPixmap(\":miniImage\"));\n    test_case_003.show();\n```\n\n* 阴影窗体测试用例\n\n```c\n    // 阴影窗体测试用例\n    NBaseShadowWidget test_case_004;\n    test_case_004.setGeometry(0,400,400,400);\n    test_case_004.show();\n```\n\n* 弹出窗体测试用例\n\n```c\n    // 弹出窗体测试用例\n    NBasePopWidget test_case_005;\n    QLabel test_case_005_label(\u0026test_case_005);\n    test_case_005_label.setText(\"弹出窗体测试用例\");\n    test_case_005.setFixedHeight(400);\n    test_case_005.setFixedWidth(400);\n    test_case_005.showPopDialog();\n```\n\n* snowLabel测试用例\n\n```c\n\t// snowLabel测试用例\n    NBaseSnowLabel test_case_006;\n    test_case_006.setText(\"我是测试数据\");\n    test_case_006.setFont(QFont(\"微软雅黑\", 12, QFont::Bold));\n    test_case_006.setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);\n    test_case_006.show();\n```\n\n* 圆周运动窗体测试用例\n\n```c\n\t// 圆周运动窗体测试用例\n    NBaseCircleAnimationWidget test_case_007;\n    test_case_007.setCircleInfo(\":miniImage\",10);\n    test_case_007.show();\n    test_case_007.startAnimation();\n```\n\n* LED窗体测试用例(跑马灯效果)\n\n```c\n    NBaseLEDWidget test_case_008;\n    test_case_008.setGeometry(0,230,300,40);\n    test_case_008.setText(\"我是跑马灯LED效果。\");\n    test_case_008.setTimer(500);\n    test_case_008.startEffect(true);\n    test_case_008.show();\n```\n\n* LED窗体测试用例(闪光灯效果)\n\n```c\n    NBaseLEDWidget test_case_009;\n    test_case_009.setGeometry(330,230,300,40);\n    test_case_009.setText(\"我是闪光灯LED效果。\");\n    test_case_009.setTimer(500);\n    test_case_009.setEffect(NBaseLEDWidget::intermittent);\n    test_case_009.startEffect(true);\n    test_case_009.show();\n```\n\n* 跑马灯label测试用例(像素级别)\n\n```c\n    NBaseMarqueeLabel test_case_010;\n    test_case_010.setText(\"我是跑马灯测试数据\");\n    test_case_010.setFont(QFont(\"Fixed\", 20, QFont::Bold));\n    test_case_010.setDirection(NBaseMarqueeLabel::RightToLeft);\n    test_case_010.setInterval(50);\n    test_case_010.start();\n    test_case_010.show();\n```\n\n* QR测试用例\n\n```c\n\tNBaseQREncodeWidget test_case_011;\n    test_case_011.resize(300,300);\n    test_case_011.setQrLogo(\":miniImage\");\n    test_case_011.show();\n```\n\n* 圆形进度条测试\n\n```\n    // 圆形进度条测试用例(甜甜圈样式)\n    QPalette p1;\n    p1.setBrush(QPalette::AlternateBase, Qt::darkCyan);\n    p1.setColor(QPalette::Text, Qt::yellow);\n    NBaseRoundProgressBar test_case_012;\n    test_case_012.setOutlinePenWidth(2);\n    test_case_012.setPalette(p1);\n    test_case_012.setNullPosition(NBaseRoundProgressBar::PositionLeft);\n    test_case_012.setDecimals(0);\n    test_case_012.setFixedSize(200,200);\n    test_case_012.show();\n\n    // 圆形进度条测试用例(线性样式)\n    NBaseRoundProgressBar test_case_013;\n    test_case_013.setOutlinePenWidth(8);\n    test_case_013.setDataPenWidth(10);\n    test_case_013.setBarStyle(NBaseRoundProgressBar::StyleLine);\n    test_case_013.setDecimals(0);\n    test_case_013.setFixedSize(200,200);\n    test_case_013.show();\n```\n\n* toastr 提示测试\n\n```\n\tNBaseToastr * test_case_014 = new NBaseToastr(this, \"我是刀刀亮测试数据\");\n    test_case_014-\u003etoastr();\n```\n\n* 阴影文字label 测试\n\n```\n    NBaseShadowLabel * test_case_015 = new NBaseShadowLabel(\" 我是刀刀亮测试数据 \");\n    test_case_015-\u003esetFont(QFont(\"Fixed\", 25, QFont::Bold));\n    test_case_015-\u003esetFixedSize(400, 50);\n    test_case_015-\u003eshow();\n```\n\n* 等待框 测试\n\n```\n    // 等待框 测试用例\n    NBaseWaitDialog * test_case_016 = new NBaseWaitDialog(this);\n    test_case_016-\u003eshowWaitDialog();\n\t//test_case_016-\u003ecloseWaitDialog();\n```\n\n* 纵向触屏列表 测试用例\n\n```\n    // 触屏列表 测试用例\n    NTouchListWidget *test_case_18 = new NTouchListWidget();\n    test_case_18-\u003esetFixedSize(200,500);\n    test_case_18-\u003eshow();\n\n    // 插入测试数据\n    for(int index = 0;index != 200;index++) test_case_18-\u003eaddItem(QString(\"测试项目:%1\").arg(index));\n```\n\n* 翻转页面 测试用例\n\n```\n    // 翻转页面 测试用例\n    NBaseRotatingStackedWidget *test_case_19 = new NBaseRotatingStackedWidget();\n    test_case_19-\u003esetFixedSize(400,500);\n    test_case_19-\u003eshow();\n\n    // 插入测试数据\n    QMap\u003cQString, QString\u003e colorMap;\n    colorMap.insert(\"相思灰\",\"background-color:rgb(98,92,82);color:white;\");\n    colorMap.insert(\"卡其黄\",\"background-color:rgb(213,184,132);color:white;\");\n    colorMap.insert(\"番茄红\",\"background-color:rgb(196,71,61);color:white;\");\n    colorMap.insert(\"艳红\",\"background-color:rgb(204,53,54);color:white;\");\n    colorMap.insert(\"绛紫\",\"background-color:rgb(112,77,78);color:white;\");\n    colorMap.insert(\"浅血牙\",\"background-color:rgb(234,205,209);color:white;\");\n    colorMap.insert(\"紫藤灰\",\"background-color:rgb(133,126,149);color:white;\");\n    colorMap.insert(\"沙绿\",\"background-color:rgb(0,91,90);color:white;\");\n    colorMap.insert(\"鸭蛋青\",\"background-color:rgb(209,227,219);color:white;\");\n    colorMap.insert(\"柠檬黄\",\"background-color:rgb(233,219,57);color:white;\");\n    colorMap.insert(\"芦灰\",\"background-color:rgb(169,176,143);color:white;\");\n    colorMap.insert(\"油烟墨\",\"background-color:rgb(63,63,60);color:white;\");\n    colorMap.insert(\"米红\",\"background-color:rgb(225,189,162);color:white;\");\n    colorMap.insert(\"十样锦\",\"background-color:rgb(252,177,170);color:white;\");\n    foreach (QString item, colorMap.keys()) {\n        QLabel *page = new QLabel(test_case_19);\n        page-\u003esetStyleSheet(colorMap[item]);\n        page-\u003esetText(item);\n        page-\u003esetAlignment(Qt::AlignHCenter|Qt::AlignVCenter);\n        page-\u003esetFont(QFont(\"微软雅黑\", 18, QFont::Bold));\n        QPushButton *btn = new QPushButton(QString(\"下一个\"),page);\n        btn-\u003esetFont(QFont(\"微软雅黑\", 12, QFont::Bold));\n        btn-\u003esetFixedWidth(80);\n        btn-\u003esetStyleSheet(\"background-color:rgb(41,176,204);color:white;border:none;border-radius:1px;\");\n        connect(btn,SIGNAL(clicked(bool)),test_case_19,SLOT(nextPage()));\n        test_case_19-\u003eaddWidget(page);\n    }\n```\n\n* 横向触屏 测试用例\n\n```\n    // 触屏列表 测试用例\n    NTouchListWidget *test_case_20 = new NTouchListWidget();\n    test_case_20-\u003esetFixedSize(500,200);\n    test_case_20-\u003esetFlow(QListWidget::LeftToRight);\n    test_case_20-\u003eshow();\n\n    // 插入测试数据\n    for(int index = 0;index != 200;index++) test_case_20-\u003eaddItem(QString(\"测试项目:%1\").arg(index));\n```\n\n* 验证码 测试用例\n\n```\n    // 验证码 测试用例\n    NBaseCaptcha test_case_21(0,200,50,6);\n    QLabel *test_case_21_w = new QLabel;\n    test_case_21_w-\u003esetPixmap(test_case_21.generateOneCaptcha());\n    test_case_21_w-\u003emove(x()+width()/2, y()+height()/2);\n    test_case_21_w-\u003eshow();\n```\n\n* 图片截取 测试用例\n\n```\n    // 图片截取的测试用例\n    NBaseImageCropper *test_case_22 = new NBaseImageCropper(nullptr,true,true);\n    test_case_22-\u003esetImage(\":testImage\");\n    test_case_22-\u003esetSize(400,600);\n    test_case_22-\u003eshow();\n```\n\n* switch按钮 测试用例\n\n```\n    // switch按钮 测试用例\n    NBaseSwitchButton *test_case_23 = new NBaseSwitchButton;\n    test_case_23-\u003eshow();\n```\n\n* 卷轴 测试用例\n\n```\n    // 卷轴widget 测试用例\n    NBaseReelWidget *test_case_24 = new NBaseReelWidget;\n    test_case_24-\u003esetOriPos(QPoint(x()+width()/2-250, y()+height()/2-150));\n    test_case_24-\u003esetOriSize(QSize(500,300));\n    test_case_24-\u003eshowExpan();\n```\n\n* 头像 测试用例\n\n```\n    // 头像编辑 测试用例\n    NBaseLogoWidget *test_case_25 = new NBaseLogoWidget;\n    test_case_25-\u003eshow();\n```\n\n* 点击波按钮 测试用例\n\n```\n    // 点击波按钮 测试用例\n    NBaseClickWave *test_case_26 = new NBaseClickWave;\n    test_case_26-\u003esetClickColor(QColor(225,189,162));\n    test_case_26-\u003esetFixedSize(200,80);\n    test_case_26-\u003eshow();\n```\n\n## 3. 组件路线图\n\n* ~~可移动widget;~~\n* ~~渐入渐出widget;~~\n* ~~迷你工具widget;~~\n* ~~阴影widget;~~\n* ~~弹出式widget;~~\n* ~~圆周抖动式widget~~\n* ~~LED效果widget;~~\n* ~~反转效果stackwidget~~\n* ~~二维码生成widget~~\n* ~~圆形进度条;~~\n* ~~toastr提示组件;~~\n* ~~阴影文字label组件;~~\n* ~~等待框组件;~~\n* ~~翻转效果的widget;~~\n* ~~触屏效果的list;~~\n* ~~验证码widget;~~\n* ~~图片截取widget;~~\n* ~~switch按钮;~~\n* ~~卷轴效果widget;~~\n* ~~双态按钮;~~\n* ~~头像生成按钮;~~\n* ~~点击波按钮~~\n* material风格 checkbox\n* material风格 dialog\n* material风格 progress\n* material风格 Tabs\n* material风格 Toggle\n* material风格 Circular Progress\n\n## 4. changelog\n\n* V 1.0.1.0 完成常用的加解密的封装;\n* V 1.0.2.0 增加LED效果的组件;\n* V 1.0.3.0 增加跑马灯效果的组件;\n* V 1.0.4.0 增加二维码效果组件;\n* V 1.0.5.0 增加圆形进度条组件;\n* V 1.0.6.0 增加toastr提示组件;\n* V 1.0.7.0 增加阴影文字label组件;\n* V 1.0.8.0 增加等待框组件;\n* V 1.0.9.0 增加触屏效果的list;\n* V 1.0.10.0 增加翻转效果的组件;\n* V 1.0.11.0 增加触屏效果的listview 和 Listwidget;\n* V 1.0.12.0 增加验证码widget和图片截取widget;\n* V 1.0.13.0 增加switch按钮;\n* V 1.0.14.0 增加卷轴widget;\n* V 1.0.15.0 增加头像编辑控件，同时增加了图片截取的控件的比例按钮;\n* V 1.0.16.0 增加了点击波按钮;\n* V 1.0.17.0 增加了倒计时波widget;\n* V 1.0.17.1 适配了一下linux下面的编译问题\n\n## 5. 若是有啥不对的地方随时联系我\n\nQQ: 88341189\n\nEmail: daodaoliang@yeah.net\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaodaoliang%2FNBaseUiKit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdaodaoliang%2FNBaseUiKit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaodaoliang%2FNBaseUiKit/lists"}