做网站 seo,唐山网站制作软件,网站备案进度查询,关键词优化ppt如果你对Qt有基本的了解#xff0c;应该知道它的一大优点是跨平台#xff0c;可以在不同的系统中编译运行。但在我看来#xff0c;Qt还有另外一个优点#xff0c;就是制作界面比较方便和灵活#xff0c;能够实现主流静态效果的桌面应用。#xff08;如果需要实现比较灵动…如果你对Qt有基本的了解应该知道它的一大优点是跨平台可以在不同的系统中编译运行。但在我看来Qt还有另外一个优点就是制作界面比较方便和灵活能够实现主流静态效果的桌面应用。如果需要实现比较灵动的动画效果可能需要qml或者其他方式但那桌面应用一般没有像手机端那样丝滑效果要求
回到正题在Qt中有什么设置样式的方法呢无非就是设置样式表但设置样式表的方式有很多种以下具体分析一下说一下各自的优缺点
1.ui文件编辑 最为常见的方法也是新手接触的第一个方法是在ui文件中通过拖拉预设部件制作你需要的界面然后在每一个界面中编辑控件的样式表。这种方式足够简单你甚至不需要掌握代码只需要百度该控件的qss写法就能在ui文件界面中直观预览到你想要的效果。 但这种方法随着需求的复杂程度会越来越鸡肋例如控件的状态切换和隐藏、窗口最大化的拉伸效果、不小心代码上重新设置了界面死活找不出样式未能实现的原因等特别是还遇到了换肤这种麻烦至极的要求你会痛苦不已。 所以有很多人并不推荐在ui界面中做过多的样式设置甚至推荐抛弃ui界面完全通过代码来实现。但我本人其实是不赞同这种方法的很多时候不是工具不好用而是你不会用而已。在我看来ui界面是qt的一大创新也是方便开发者的利器其本质是通过ui文件生成你需要的头文件本质上跟你用代码编写是一样的ui界面只是一个直观的布局工具而已。 既然如此那就让ui界面仅负责控件的生成和基本布局其他样式和尺寸设置从中剥离在代码中实现就可以了。这样一来将各自的优点保留还能在界面中直观看到简单的效果。这在团队协作中是极大便于多人开发的。
2.代码编写 每一个控件类都有setStyleSheet函数你可以将样式表写在代码中通过这个函数设置进去。这种方法的优点是可控制你可以在合适的实际对控件进行样式重写比方一个按钮按下之后需要切换成另外一种样式有信号和没信号时label需要切换不同的颜色……这种情况下你就可以通过代码来灵活设置。 但确定也是有的那就是你会在代码中内嵌过多的样式表字符串代码并且随着你软件功能的复杂程度很可能一个cpp文件有大半都是样式表字符串。这极大影响了代码的精简程度也不便于你维护。 但因为某些原因我在工作中长期将样式表全部写在代码中在这个过程中我遇到了许多版本区别需要针对不同版本更换ui甚至更换样式图片。随着代码样式表代码疯狂增加我又不愿意为了单纯的更换ui而拷贝工程代码时……我终于意识到该方案的愚蠢。
3.qss文件加载 如果我们将样式表代码写在一个文件中程序启动时再读取然后进行设置岂不是可以将这些反复的样式表代码与功能代码分离吗是的这正是换肤的正确方式也是不少高手所采用的样式表设置方法。 大家可以试想一下如何做到像以前电脑qq那样在皮肤库中下载一个皮肤我就能做到改变皮肤那肯定是下载一个文件啊怎么会是预先把样式表写在代码中呢。 通过这种方法我们甚至可以把控件的尺寸写在文件中我都不需要再在代码中给控件设置宽高。 当然它有不少注意事项在这里先不赘述。比起上两种方法它或许没那么方便。但它的条理十分清晰可扩展性良好。在实际工作项目中强烈推荐使用。 这种方式需要对控件设置严格的object name。如果在ui界面中拖拉控件那控件名默认就是objectname你也可以进行修改。如果是代码new出来的控件记得要setObjectName这个qss中需要用到。 一般来说程序刚运行在main刚开始时qApp-setStyleSheet就可以了但我们不确保不同的界面中可能会存在相同objectname的控件但我们又需要他们实现不同的样式。这种情况下我们大可以编写多个qss然后在不同界面类的构造函数中this-setStyleSheet。这种方法也能降低单个qss中代码过多难以查找通过不同界面简单分类。而且降低因为单个qss文件数据过大导致设置的时候卡顿明显的问题。 如果还有更多分享的之后会继续发文感谢大家阅读观看。