如何设置Qt Quick Controls2的风格

如何设置Qt Quick Controls2的风格,第1张

1

Qt Quick Controls2的默认风格是一种朴素,轻量的风格,这种风格体现在控件的所有方面。其好处就是能够最大程度提高你的App性能

2

Qt Quick还根据谷歌提出的Material Design设计规则,提供了一套界面精美诱人的风格方案,相对默认风格来说,这种风格会更消耗系统资源

3

Qt Quick还根据微软提出的Universal Design设计规则,提供了一套界面精美诱人的风格方案,相对默认风格来说,这种风格会更消耗系统资源

4

配置应用程序界面风格的一种方法是在C++源文件的mainc中,通过QQuickStyle的静态方法setStyle来设置,比如下面的代码将App风格设置为Material Design

5

另一种配置程序界面风格的方法是使用配置文件qtquickcontrols2conf

该配置文件最终会作为程序的资源文件被编译进程序当中,下面的配置代码指定了目标程序使用Material Design规则,并且主题为light。为了使该配置文件生效,该文件必须被编译进应用程序中,作为程序的资源文件

6

使用Material Style,需要import QtQuickControlsMaterial 20

其附加属性有:

1 accent,color类型,表示重点色,默认是MaterialPink

2 primary,color类型,表示优选色,默认是 MaterialIndigo

3 backbround,color类型,表示背景色,默认由主题指定(light或者dark)

4 elevation,int类型,表示海拔高度,值越大,阴影越深,该值与具体控件相关

5 foreground,color类型,表示前景色,默认值由主题指定(light或者dark)

6 theme,枚举类型,表示主题,默认是MaterialLight,也可修改为MaterialDark

所有的属性都可以被任何Item或者Window单独设置,且可以传递给子对象Item。可以在QML文档中设置,也可以在配置文件中设置全局的,但是在QML文档中设置的优先级更高

7

系统预定义的颜色有很多,并且在不同的主题下有不同的表现。

Material Style有一个附件方法:

color color(enumeration predefined, enumeration shade)

可以返回一个实际有效的color值,这个值由预定义的Material color和用户指定的阴影值给出,shade缺省为MaterialShade500

您的要求可能看起来很低,但实现起来并不容易。 首先,Windows 本身甚至没有 C++ 运行时库,或者 msvcrt 不是 Windows 的一部分。 每个版本的windows可能都自带了msvcrt的一部分,但是xp vista win8 win10 win11自带了不同版本的msvcrt,也就是说,一旦依赖了msvcrt库,就不能保证在所有版本的windows上都能正常工作。换句话说,为了实现您的目标,您至少必须有一种静态链接基本 C/C++ 库的方法。 

为了解决这个问题,通常需要检查数据并更改参数。 比如这篇文章就是完整的数据。 甚至,说不定有人把这样的方法直接做成了工具。 但是你问“没有额外的第三方工具,没有代码和步骤”,那么好吧,这条路又被你挡住了。 至于高级语言,其实很多高级语言都是用C/C++开发或者执行的,所以Windows下的实际执行也依赖于msvcrt。 需要排除类似的语言方案。 因为,要想完全实现主体的思想,就必须摆脱msvcrt的依赖。 但是如果你想摆脱 msvcrt 依赖,要么需要一定的代码和步骤,要么需要第三方工具。 你不能同时使用两者,所以你不能这样做。 

然后,你说程序大小要足够小,不允许有库依赖,所以简单的结论是:你根本不能做稍微复杂一点的程序,连浏览器框架都做不了,毕竟一个 WebView 是静态链接进去的,体积不会太小。 所有第三方代码都必须开源编译并静态链接进去。如果一个程序很小,不可能完成一个足够复杂的任务。 除非你调用了动态链接库,但是你需要所有的静态链接,那么像你这样的程序根本做不了什么,何必麻烦大家给你找方法。 或者您只是来推广您开发的软件? 我相信如果把它们都集成到某个软件中,你说的事情确实可以做到,但是,你不认为你把所有依赖库的这种纯静态链接功能集成到你要推广的软件中吗, 不是第三方工具? 如果你能这么偷偷改变概念,确实可以实现。

桌面应用程序 Exe 带有 WinForm 界面。第一个推荐是C#毕竟,它是微软自己的。 编写Winform在开发效率和性能上都比其他开发语言快,相关资源和文章也很多。  C#非常适合开发Winform,功能非常强大。 好的结果。 缺点是需要netframework支持Windows 10、Win11自带NET Framework。 如果不考虑跨平台,C#开发是最方便高效的。如果想让界面效果更炫,那就用WPF让Winform在界面美化上更上一层楼。 但它会慢一点。

如果对性能要求高或者 *** 作系统底层使用C++或者直接C C++或者MFC,性能很好,但是开发难度比c#高。 如果直接用C,就比较难了。 优点是运行速度快,兼容性好。 除了汇编 C 和 C++ 应该是最快的。QT Qt是一个基于C++的跨平台图形用户界面应用框架。 与MFC相比,它是一种时尚的图形界面设计和开发工具,相对于MFC有很多优点。 丰富的API功能提高了用户的实际开发效率。 支持OpenGL2D、3D图形渲染。 支持QML脚本开发。 使用 QML 的缺点,开发效率被利用了:在运行环境中,Qt 需要将整个东西打包。 体积相当大。  C# 要小得多,因为许多依赖库都带有 windows。

Java Java可以做任何事情。 如果熟悉Java,可以使用Java进行开发,但运行时需要安装运行环境。  Java的生态资源非常丰富,教程也很多。如果你习惯Python,可以使用PyQt PyQt。 开发python也很容易。 可以使用qt for python+qwebview+pyinstaller打包单个exe,启动慢。 或者制作一个安装包,使用 fbs 或 pynsist 缺点:生成后包会稍大,第一次执行速度会有点感人。

热爱 Rust 并使用 Rust 语言Windows T 也可以用 Rust 语言开发。Electron 跨平台,界面美观Electron 是一个跨平台的桌面应用开发框架,让我们可以使用 html css js 的技术来开发可以安装在跨平台桌面的软件。  Electron 允许前端开发人员做更多的工作。 网上流行一句话:“别跟我说C++、Java,我靠JS走遍天下,需要的时候才去做。很容易上手能够使用react、vue等前端框架,可以轻松迁移前端组件,构建漂亮的桌面应用。

专门开发接口的早期开发语言还有其他早期开发语言。 如果要写native native exe,也可以使用以下语言的Delphi:Delphi 7,非常不错。 现在 Free Pascal 对于跨平台开发来说还不错。  VB6:从未消亡的开发语言,也有大量开发小工具的爱好者。 还是一个非常快的VFP:Visual Foxpro,但不是微软自己的,现在没有开发PB:PowerBuilder C++ builder 60:Borland的C++程序开发集成平台MASM:Macro assembler。 更加困难。 接近机器语言。优点是运行速度快,比c#快,生成的exe小,不易被破解。

其他开发语言Flex(flash script + java),easy language(中文编码),单独的EXE桌面软件也可以试试aardio,还不错。如果只针对Windows平台,建议使用c#或VB6。 如果想要更好的界面,可以使用浏览器调用html js 界面库或者WPF。 如果考虑跨平台。  ,上面有很多选项。 主要是根据你的实际需求,再考虑性能、部署等方面。

使用Qt吧,前提是在这两者下进行选择。既然提到了Qt和MFC,我想题主肯定是一个C++的开发者。其实,在我看来,Windows下开发界面程序,还有很多其他的选择。下面我就连同Qt、MFC一起来介绍一下几种常用的界面开发框架。

其实选什么学习还得根据自身的需求。语言不分好坏在于人。精通才是正道。当下window下流行的编程语言,有vb,mfc,c sharp,。如果没啥限制,建议第三个吧,简单粗暴上手快,开发效率也高。如果公司或硬件限制必须用mfc或其他语言,那学就是。都是微软的产品,我开发项目都用过,知识通用。至于qt封装是全,相对微软自家的产品,用的人少些。问题多靠自己解决

具体选择QT还是MFC,这要根据题主的需求来决定。如果你入职一家公司,做的是老项目的维护,而原有项目是采用MFC来开发,那么当然,你没得选,只能老老实实的继续MFC,虽然这玩意写起来真的很虐心。如果是一个全新的项目,那么还是首选Qt。

下面根据自己的认识,推荐几款Windows下开发界面开发常用技术。

1)Qt

号称可以跨平台,语法结构简单清晰。面向对象的特性体现的比MFC明显。代码写起来比较优雅,也就是说上手会快一点,最新版本支持的特性QML,可以让我们用JS,CSS来绘制客户端界面,写起来效率也是蛮高的。缺点就是文档可能没有MFC那么齐全,基本只有官方的官网和Demo,而且发布包体积会比较大。

2)MFC

全称Microsoft Foundation Classes(微软基础类库),可以算的上是上古产品了吧,目前除了维护老项目,应该很少有团队使用MFC来开发了吧。基本上MFC == “没饭吃”。建议如果你是初学者,界面开发还是不要选择MFC了。它唯一的好处就是微软的MSDN文档比较齐全,相关论坛和那种问答的资源要多很多,一般初学者遇到的问题都可以看到前辈们的解决方法。不过目前它已经被其亲爹微软抛弃了。

3)Duilib

目前已开源,是一款强大的界面开发工具,可以将用户界面和处理逻辑彻底分离,极大地提高用户界面的开发效率。唯一不足的是原开发者已经停止维护,很多都是个人在维护,出了问题的话,只能自己去摸索,Debug。下面是一款个人使用Duilib开发的迅雷播放器界面效果。

最后附上一些基于Duilib开发的软件不完全列表(欢迎大家补充指正):

百度: PPS 爱奇艺 百度杀毒 百度卫士 91助手

腾讯: 微信 企业微信

阿里: 钉钉 支付宝安全控件 PP助手

书生云: 书生企业云盘

微软: 微软壁纸

网易: 易信 云音乐 荒野行动PC版

华为: 华为网盘

金山: 金山快盘

京东: 咚咚

cctv: cbox

酷我: 酷我音乐盒

蘑菇街: TeamTalk

火绒: 火绒安全软件

盘古: 盘古越狱工具

顺网: 网维大师 91y

网狐: 网狐经典版

墨迹风云: 墨迹天气

zoomcloud: Zoom 视频会议

搜狗: 搜狗手机助手

沃通: 沃通代码签名工具

驱动人生: 驱动人生 人生日历

维棠: 维棠

深圳市北斗智研 科技 : 智能办公助手 ERP管理系统

4)Electron

这玩意应该是这几年才火起来的吧,宣城自己可以通过使用JavaScript、HTML和CSS构建 跨平台 的桌面应用程序,让人们感觉 JS 真的有一统天下的趋势(Web、移动端、PC客户端)。开发效率真心的高,不过貌似商用上还不是特别的多,典型的成功案例目前知道的有VSCode,Atom。

两者之间二选一的话肯定选Qt了,如果再考虑开发效率与运行效率的话,可以在Python平台上使用Qt的Python绑定库PyQt,再配合C++,主体用Python语言,界面部分用PyQt搭建,核心算法部分用C++封装成动态库DLL文件,在Python里去调用。这样是一个不错的方案,Python部分缩短了开发时间,C++部分保证了运行速度,只是前提是,你要会用C++写DLL,在Python里会调用DLL。

作为做了近2两年windows application的人来说,我直接说Qt!首先我主要做pc和下位机通信的app,如串口、tcpip、总线类等。选qt理由如下:仅从我的经历来讲

1、Qt开发效率高。我第一个项目前几个项目用的MFC,平均时长3个月,一个软件80%的时间都放在界面上去了。然后后面开始使用Qt,一个月能做好几个app没压力,界面布局很方便,不用像MFC去一个一个控件拖动。

2、Qt库简单易懂。个人的感觉就是MFC与win api联系太大了,你要玩转MFC,必须要把windowsapi相关知识搞得明明白白的。而Qt库把每一个功能都封装得很好,很容易去使用,不需要没事就百度怎么用。

3、MFC已经在淘汰边缘了。到如今Qt还在不断更新,我目前使用的是Qt59。在平时招聘的时候,也很少看到有公司让你专职做MFC,要么Qt,要么C#。

4、Qt跨平台。我当初换Qt的一个原因还是,我以后如果不做windows了可以换linux上位机,Qt可以做到很好的跨平台,而MFC不行。

两者没有好坏之分,需要看应用场景。如果是界面要求不高,稳定性和效率要求高的工业软件,MFC是最好的选择。如果是界面要求美观,跨平台使用,QT是最好的选择。但是要注意的是QT企业用是需要授权费的。另外,windows上的界面还有其他选择wpf,direct ui等。这里着重提一下direct ui,目前可以找到比较好的就是duilib这个界面库,开源稳定易用高效。关注我一起探讨呀!

我们来简单比较一下QT和MFC。

1开发速度

整体来说可能MFC会快捷一些,因为windows平台的开发工具大多很智能,因为立足于windows的开发人群很广,从菜鸟到专业人士,但是QT由于基于Linux,可用的开发工具不多,大都比较专业,多是第三方产品,而且集成度不大,第三方库也没有MFC得多,从这一点MFC略胜一筹,但是QT自从被Nokia收购后,官方发布了跨平台集成开发环境QTCreator,所以之后走向就不好说了,个人总体感觉QT Creator和VSnet差距比较大,还需改进。

但是从库本身来说QT集成的功能较MFC庞大,而且使用的封装技术信号和槽也是比较受到赞许的,比如QT Script为QT提供嵌入式脚本,QT界面库支持CSS,所以QT做出来的界面比MFC要好,而且比较容易,MFC就需要借助第三方库了。

因为MFC是浅层封装(最新的2008 sp1加入了BCG的高级界面库,可能有所改善)windows SDK,以降低使用windows SDK引起的开发效率的降低,和开发难度的增加。

所以QT库是比MFC优秀的,两个库都经受了时间的考验,稳定性都很高,Bug几乎没有。

2运行效率

MFC由于其浅层封装的特点,所以运行效率是比较高的,加上vc对windows的针对性优化,整体性能是比较高的,但是如果加入第三方库就不敢保证了。

QT因为库比较庞大,封装层次较深,所以运行效率较MFC为低,但是在现在的机器配置下,C#大家都不介意了,这些会引起人们的介意吗?

3学习难度

QT的封装哲学比较明晰,和系统隔离得比较好,门槛不高;

MFC较难精通,因为深入开发之后SDK还是要了解的。

必须Qt啊,跨平台,还有鬼知道项目以后要不要跑Linux和嵌入式设备上!界面简单的话,用qml开发,可以直接移植到嵌入式设备上去,还可以把编写逻辑的程序员和界面设计师分离出来!mfc现在微软都放弃更新维护了,mfc开发界面很麻烦的,除非老项目要维护,不然不建议再用mfc做新项目了!Qt的信号与槽很赞,比mfc的回调函数好用多了!

mfc底层太复杂了,但资料多,开源代码多。

qt底层可能好点,但资料和整个开发环境肯定不如vs系列。

微软精力不在mfc上面了,而qt则要在竞争中求存活。

用什么看开发习惯,熟悉哪个用哪个。有困难找我

以上就是关于如何设置Qt Quick Controls2的风格全部的内容,包括:如何设置Qt Quick Controls2的风格、开发独立EXE桌面应用程序,用什么语言、技术合适、做windows界面,用QT还是MFC等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9722197.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存