下方是个人实现的桌面端剪映效果,个人觉得自己实现的比较好看,原本的字体太小了

再上一张桌面端剪映原版界面

原本的界面实现看起来确实字体偏小 不好看,因为发现原本也是Qt实现的,目测技术路线是QtQuick

接下来是个人的实现思路,
首先是重写Qt界面栏,然后利用弹窗进行布局,
接下来是重写控件部分

#include "images.h"// 默认最多保存多少张图
#define MAX_IMAGE_SIZE 100Images::Images(QObject*)
{/*** 设置Dll类型 后期优化的时候需要使用*/setProperty("dllType",MSG_DLL_IMAGES);m_uiObject = nullptr;Q_INIT_RESOURCE(images);
}void Images::loadUI()
{/*** @brief: 添加测试按钮控件增加**/if (m_uiObject != nullptr){QWidget* pMainWidget = dynamic_cast<QWidget*>(m_uiObject);// 布局设置开始m_pHboxLayout = new QHBoxLayout();m_pHboxLayout->setSpacing(0);m_pHboxLayout->setMargin(0);QVBoxLayout* vBoxLayout = (QVBoxLayout*)pMainWidget->layout();vBoxLayout->addLayout(m_pHboxLayout);// 布局设置结束m_pLocalBtn = QSharedPointer<DTButton>(new DTButton(nullptr),&QObject::deleteLater);m_pLocalBtn->setText("本地草稿");m_pLocalBtn->setIcon(QIcon(":/resources/folder.png"));m_pLocalBtn->setStyleSheet("QPushButton {background-color: rgb(36, 36, 37); color:rgb(250, 250, 250); font: 12px; font-family:'Microsoft YaHei'; border-radius: 14px;}""QPushButton:hover {background-color: rgb(38, 38, 38);}""");m_pLocalBtn->setFixedSize(QSize(180,40));m_pLocalBtn->show();m_pCloudBtn = QSharedPointer<DTButton>(new DTButton(nullptr),&QObject::deleteLater);m_pCloudBtn->setText("我的云空间");m_pCloudBtn->setIcon(QIcon(":/resources/cloud.png"));m_pCloudBtn->setStyleSheet("QPushButton { padding-left: 12px; background-color: rgb(36, 36, 37); color:rgb(250, 250, 250); font: 12px; font-family:'Microsoft YaHei'; border-radius: 14px;}""QPushButton:hover {background-color: rgb(38, 38, 38);}""");m_pCloudBtn->setFixedSize(QSize(180,40));m_pCloudBtn->show();m_pHotBtn = QSharedPointer<DTButton>(new DTButton(nullptr),&QObject::deleteLater);m_pHotBtn->setText("热门活动");m_pHotBtn->setIcon(QIcon(":/resources/hot.png"));m_pHotBtn->setStyleSheet("QPushButton {background-color: rgb(36, 36, 37); color:rgb(250, 250, 250); font: 12px; font-family:'Microsoft YaHei'; border-radius: 14px;}""QPushButton:hover {background-color: rgb(38, 38, 38);}""");m_pHotBtn->setFixedSize(QSize(180,40));m_pHotBtn->show();m_pSideBar = QSharedPointer<SideBarWidget>(new SideBarWidget(nullptr),&QObject::deleteLater);m_pSideBar->setFixedWidth(250);m_pAccountWidget = QSharedPointer<AccountWidget>(new AccountWidget(nullptr),&QObject::deleteLater);m_pAccountWidget->setFixedSize(QSize(200,100));QVBoxLayout * pVBoxLayout = (QVBoxLayout*)m_pSideBar->layout();pVBoxLayout->addSpacerItem(new QSpacerItem(2,50,QSizePolicy::Fixed));pVBoxLayout->addWidget(m_pAccountWidget.data(),0,Qt::AlignHCenter);pVBoxLayout->addSpacerItem(new QSpacerItem(2,40,QSizePolicy::Fixed));pVBoxLayout->addWidget(m_pLocalBtn.data(),0,Qt::AlignHCenter);pVBoxLayout->addSpacerItem(new QSpacerItem(2,10,QSizePolicy::Fixed));pVBoxLayout->addWidget(m_pCloudBtn.data(),0,Qt::AlignHCenter);pVBoxLayout->addSpacerItem(new QSpacerItem(2,10,QSizePolicy::Fixed));pVBoxLayout->addWidget(m_pHotBtn.data(),0,Qt::AlignHCenter);pVBoxLayout->addStretch();m_pHboxLayout->addWidget(m_pSideBar.data());m_pHboxLayout->addStretch();}}QVariant Images::slotHandleMessage(const PluginMetaData &plt)
{// 同步消息处理return QVariant("");
}void Images::slotEventFromPlugins(const PluginMetaData& plt)
{// 异步事件m_uiObject = plt.qObject;switch (plt.enumUiMsg) {case E_UI_MSG_TYPE::MSG_UI_NONE:break;default:break;}
}
#include "widgets/account_widget.h"#pragma execution_character_set("utf-8")AccountWidget::AccountWidget(QWidget* pWidget): QWidget(pWidget)
{m_pMainLayout = new QVBoxLayout();m_pLoginLayout = new QHBoxLayout();m_pInfoLayout = new QHBoxLayout();this->setLayout(m_pMainLayout);m_pLogoLabel = new QLabel();m_pLoginButton = new QPushButton();m_pInfoButton = new QPushButton();init();
}AccountWidget::~AccountWidget()
{}void AccountWidget::init()
{this->setStyleSheet("QWidget { background-color:rgb(36, 36, 37); color:rgb(229, 229, 229);  font-family:'Microsoft YaHei'; border-radius:8px; }");m_pMainLayout->addLayout(m_pLoginLayout);m_pMainLayout->addLayout(m_pInfoLayout);m_pLogoLabel->setStyleSheet("QLabel{background-color: rgb(53, 53, 54); color: rgb(128, 128, 128); font: 12px;}");m_pInfoButton->setStyleSheet("QPushButton{background-color: rgb(53, 53, 54); color: rgb(128, 128, 128); font:12px; font-weight:bold; border-radius: 5px;}");m_pLoginButton->setStyleSheet("QPushButton{ font: 12px; font-weight:bold;}");m_pInfoButton->setFixedHeight(30);m_pInfoButton->setText("开通会员得 100GB 云空间");m_pInfoButton->setFlat(true);m_pLogoLabel->setPixmap(QPixmap(":/resources/login.png"));m_pLoginButton->setText("点击登录账户");m_pLoginButton->setIcon(QIcon(":/resources/login.png"));m_pLoginButton->setFlat(true);//m_pLoginLayout->addWidget(m_pLogoLabel);m_pLoginLayout->addWidget(m_pLoginButton);m_pInfoLayout->addWidget(m_pInfoButton);// m_pLogoLabel->setPixmap();}

完整实现源码地址 : https://github.com/huifeng-kooboo/DT
为了防止被墙,也可以访问国内码云地址: https://gitee.com/huifeng_github/DT
希望对大家的Qt学习产生一些借鉴的参考,写出更好看的界面。

Qt实现 剪映 桌面端的界面效果相关推荐

  1. android卡点视频教程,剪映怎么手动卡点? 剪映app卡点视频效果的制作方法

    拍摄出来的一组照片,因为是静态的画面,表现力差一点,如果将这些照片制作成卡点视频,原来静止的照片会随着音乐的节奏"活跃"起来,更富表现力,该怎么制作卡点效果呢?今天我们就来看看使用 ...

  2. 剪映专业版Mac版上线,来讲讲体验感吧

    剪映Mac专业版已从11月27日上线啦,小编很快的体验了一下,操作逻辑延续了手机端的,相对来说还是很容易上手的,如果你是一位Mac用户,现在就可以免费下载使用咯!话不多说直接切入正题.下文是小编带来的 ...

  3. 视频剪辑工具:剪映专业版 for Mac

    剪映专业版 for Mac也就是剪映的Mac端软件,剪映专业版mac功能与APP基本相似,只是将屏幕变得更大,操作由手机变为电脑,操作更加方便快捷,软件支持视频轨/音频轨编辑,轻松处理复杂编辑项目,软 ...

  4. Mac视频编辑软件哪款好用?抖音出品剪映专业版适配M1-Mac免费视频剪辑工具

    Mac视频编辑软件哪款好用?剪映专业版 for Mac是一款全能好用的视频编辑工具,使用剪映专业版能够轻松对视频进行各种编辑,包括卡点.去水印,特效制作.倒放.变速等,还有专业风格滤镜,精选贴纸给你的 ...

  5. 剪映 for Mac(全能好用的视频编辑工具)

    剪映专业版 for Mac是一款全能好用的视频编辑工具,使用剪映专业版能够轻松对视频进行各种编辑,包括卡点.去水印,特效制作.倒放.变速等,还有专业风格滤镜,精选贴纸给你的视频加点乐趣. 原文链接:h ...

  6. 国产双雄:舅服它哥俩,非常好用免费的视频剪辑软件分享 | 必剪和剪映哪个好用?

    说起视频剪辑软件,威航软件园国内的国外的也为大家分享了不少了,其中不乏认可度超高的会声会影.威力导演.AE.PR以及爱剪辑.万兴喵影(原万兴神剪手)等国内外知名品牌,不过他们都是商业收费软件,即便是爱 ...

  7. 剪映电脑版更专业了:智能补帧、美颜美体、SRT字幕导出齐上阵,剪映电脑版怎么补帧问题解决啦

    剪映电脑版是来自国内首屈一指的互联网巨头字节跳动最新开发的一款全能好用且有AI人工智能技术加持的专业电脑视频剪辑软件,目前是威航软件园拿到的剪映专业内测版本,最新的剪映专业版界面更清晰,面板更强大,布 ...

  8. 剪映英文字幕翻译成中文的最新方法(附字幕翻译工具2.0)

    点击上方"优派编程"选择"加入星标",第一时间关注原创干货 剪映英文字幕翻译成中文的最新方法(附字幕翻译工具2.0) https://www.fang1688. ...

  9. 剪映专业版 for Mac(全能好用的视频编辑工具)内附体验效果

    剪映专业版 for Mac是一款全能好用的视频编辑工具,使用剪映专业版能够轻松对视频进行各种编辑,包括卡点.去水印,特效制作.倒放.变速等,还有专业风格滤镜,精选贴纸给你的视频加点乐趣. 下载地址:h ...

最新文章

  1. 文华软件登录显示请选择服务器,文华财经随身行要登录云服务器
  2. ClickHouse报错解决:Code: 194. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Pas
  3. Quartz.NET和Log4Net三种输出[转]
  4. wince6.0远程控制工具_【创新创效】门架业务主动监测工具和远程控制电源开关...
  5. 教小学四年级的计算机,小学四年级微机教学设计
  6. 高性能计算机存储部件有磁盘阵列,信息存储技术——磁盘阵列解读.pptx
  7. 6分钟看懂 Node.js 武功精髓
  8. pgslq表的字段类型_Python 爬取微信公众号文章和评论 (基于 Fiddler 抓包分析)
  9. java web汽车商城_基于jsp的汽车销售商城系统
  10. 几种数据可视化框架分析
  11. python用什么数据库比较好_Python和主流数据库
  12. stm32+ESP8266实现最简单的手机控制LED灯
  13. 解决CMake Error : file does not recognize sub-command GL0B or GL0B_RECURSE 原因分析
  14. 将centos7打造成桌面系统
  15. GPT-3、Stable Diffusion一起助攻,让模型听懂甲方修图需求
  16. uniapp小程序仿抖音切换内容
  17. Zeppelin上通过Spark读写mysql数据库
  18. (适配多个版本)双击 DWG 文件以使用 AutoCAD 产品打开时显示“Windows 找不到 [文件名].acad.exe ”
  19. snprintf() 函数
  20. 全球认可的PMI认证体系

热门文章

  1. 【日记】Eratosthenes Sieve
  2. SetStretchBltMode-WINDOWS API
  3. docker制作支持中文的Centos7镜像
  4. mac 编译android vlc,VLC 播放器已全面适配苹果 M1 Mac
  5. 【可穿戴算法开发】-PPG信号检测方法
  6. Foxmail新建文件夹失败
  7. ZOJ 3323Somali Pirates
  8. 获取微信公众号openID,code
  9. 手游常断线怎么办?试试断线重连处理
  10. Apache Calcite教程-SQL解析-Calcite自定义语法解析