• 8107阅读
  • 29回复

无边框辅助类 [复制链接]

上一主题 下一主题
离线ysu533
 

只看楼主 倒序阅读 楼主  发表于: 2016-04-01
— 本帖被 XChinux 执行加亮操作(2016-04-05) —
自用的无边框辅助类, 简化无边框工作量.
代码已经公开在

单击查看  


离线toby520

只看该作者 1楼 发表于: 2016-04-01
不错 不知道在mac和Linux平台效果如何,是否考虑封装对QML窗口的拉伸等功能
QtQML多多指教开发社区 http://qtclub.heilqt.com
将QtCoding进行到底
关注移动互联网,关注金融
开发跨平台客户端,服务于金融行业
专业定制界面
群号:312125701   373955953(qml控件定做)
离线crazy

只看该作者 2楼 发表于: 2016-04-01
试了一次,挺好的。    。。。
1.貌似拖动窗体的时候,鼠标在哪里都能拖动,这个地方可能需要处理一下;
2.标题栏最好直接也封装了,留出接口,是否显示即可!
C/C++/Qt爱好者
邮箱: kevinlq0912@163.com
公众号: devstone
博客:http://kevinlq.com/
离线crazy

只看该作者 3楼 发表于: 2016-04-01
我觉得这个大神,封装的很不错!
http://www.cnblogs.com/appsucc/p/3257661.html
C/C++/Qt爱好者
邮箱: kevinlq0912@163.com
公众号: devstone
博客:http://kevinlq.com/
离线枫界易城

只看该作者 4楼 发表于: 2016-04-01
有一个bug,当拉伸和缩放右上角的时候鼠标的位置和边框的位置不在同一个地方
离线z609932088

只看该作者 5楼 发表于: 2016-04-01
          
有阳光的地方就是青春
离线stlcours

只看该作者 6楼 发表于: 2016-04-01
无法打开这个网页,请将代码发到CSDN博客或者资源上传,谢谢~
离线toby520

只看该作者 7楼 发表于: 2016-04-02
我写了基于QML的窗口的拉伸的类,可以支持与QML直接交换 https://github.com/toby20130333/QtQuickExample
QtQML多多指教开发社区 http://qtclub.heilqt.com
将QtCoding进行到底
关注移动互联网,关注金融
开发跨平台客户端,服务于金融行业
专业定制界面
群号:312125701   373955953(qml控件定做)
离线xzp21st

只看该作者 8楼 发表于: 2016-04-02
回 toby520 的帖子
toby520:我写了基于QML的窗口的拉伸的类,可以支持与QML直接交换 https://github.com/toby20130333/QtQuickExample (2016-04-02 10:09) 

居士威武啊
离线ysu533

只看该作者 9楼 发表于: 2016-04-04
回 crazy 的帖子
crazy:试了一次,挺好的。 [表情]  [表情] 。。。
1.貌似拖动窗体的时候,鼠标在哪里都能拖动,这个地方可能需要处理一下;
2.标题栏最好直接也封装了,留出接口,是否显示即可! (2016-04-01 09:18) 

1, 你可能只运行了demo, 没有看武当, 鼠标在哪能拖动是可以设置的. 这里demo我设置的都能拖动.

2, 实际上要进行无边框化处理的程序, 绝大部分的标题栏封装都是没用的, 甚至是累赘. 这也是我写这个辅助类的. 无边框窗口的标题栏是怎么样的? 和标准的一样? 如果我在加个换肤按钮又该如何加, 给接口? 有必要吗? 比如写个百度云的界面, 用你3楼那个代码, 写出来绝对比我这个复杂的多.

说实话, 我自己封装过各种各样的无边框代码, 既有类似3楼的那种, 还有直接在designer上直接能拖放的插件. 但是我发现有一个问题, 极度的不通用.

知道我自己封装成这样我自己才满意, 也就是分层处理了, 这个代码对看的见的地方完全不干涉, 你直接在designer上画, 画成怎么样的就是怎么样的, 随便画. 因为这些UI, 别说不同人写的程序不一样, 就是我自己一个人写的同一个程序的不同窗口标题栏都是不一样的. 但是后面拖拉等比较繁重, 而又重复的活, 基本上都干了.
离线ysu533

只看该作者 10楼 发表于: 2016-04-04
回 枫界易城 的帖子
枫界易城:有一个bug,当拉伸和缩放右上角的时候鼠标的位置和边框的位置不在同一个地方 (2016-04-01 09:36) 

我测试了下, 果然有bug,  我测试了下我以前的产品是没有这个bug的, 应该是我从产品中哪出来发布的时候, 我重构了下, 没怎么测试. 我稍后修复重传.
离线ysu533

只看该作者 11楼 发表于: 2016-04-04
回 toby520 的帖子
toby520:不错 不知道在mac和Linux平台效果如何,是否考虑封装对QML窗口的拉伸等功能 (2016-04-01 08:55) 

目前对qml还不了解.
离线ysu533

只看该作者 12楼 发表于: 2016-04-04
回 枫界易城 的帖子
枫界易城:有一个bug,当拉伸和缩放右上角的时候鼠标的位置和边框的位置不在同一个地方 (2016-04-01 09:36) 

已经修复, 感谢反馈.
离线ysu533

只看该作者 13楼 发表于: 2016-04-04
回 stlcours 的帖子
stlcours:无法打开这个网页,请将代码发到CSDN博客或者资源上传,谢谢~ (2016-04-01 22:24) 

应该能打开吧, 楼上几位都能打开. 明天我传到 github上去, 感觉传统的那种上传方式不适合分享代码.

只看该作者 14楼 发表于: 2016-04-05
博客地址:https://waleon.blog.csdn.net
微信公众号:高效程序员
QQ 群:242790253
微信群:加微信(iwaleon),邀请入群。

承接各种 C++/Qt/QML 项目,专业的团队,一流的服务,不二的选择!
离线crazy

只看该作者 15楼 发表于: 2016-04-05
回 ysu533 的帖子
ysu533:1, 你可能只运行了demo, 没有看武当, 鼠标在哪能拖动是可以设置的. 这里demo我设置的都能拖动.
2, 实际上要进行无边框化处理的程序, 绝大部分的标题栏封装都是没用的, 甚至是累赘. 这也是我写这个辅助类的. 无边框窗口的标题栏是怎么样的? 和标准的一样? 如果我在加个换肤按钮又 .. (2016-04-04 20:30) 

同意你说的!
C/C++/Qt爱好者
邮箱: kevinlq0912@163.com
公众号: devstone
博客:http://kevinlq.com/
离线liudianwu

只看该作者 16楼 发表于: 2016-04-05
14楼乃终极最佳解决方案!
欢迎关注微信公众号:Qt实战 (各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发)QQ:517216493  WX:feiyangqingyun  QQ群:751439350
离线ysu533

只看该作者 17楼 发表于: 2016-04-05
回 奋斗ing孩子 的帖子
奋斗ing孩子:请参考:Qt之自定义界面(窗体缩放-跨平台终极版)    谢谢! (2016-04-05 08:31) 

以我个人的观点来说, 你的代码做的太多了. 参考上面的回复. 我一直认为无变化的主要应用不是要对现在的标准标题栏进行修饰而已, 而是已经没有传统的标题栏了. 比如说百度云这样的界面,  你说它那部分是标题栏? 既然都不存在标题栏了, 又怎么设置标题栏的高度? 还是你那个 setBorderWidth 这个函数, 边框宽度, 这个我很费解, 既然是无边框化窗口, 何来边框宽度, 既然有边框宽度, 那边框是什么? 一根线条? 一个widget?

我的理念是看的见的部分, 我不去操作, 你可以用用 designer去设计, 你看到的是什么样的, 最终就是怎么样的, 也就是所见即所得吧. 虽然你做的比较多, 但是我自行用我这个类, 写同样的界面, 代码量不会超过你, 但是灵活度却更随心所欲.

有什么不同意见, 欢迎讨论.
离线zhaojianjun

只看该作者 18楼 发表于: 2016-04-05
还是有bug 啊,自己再反复左右拉伸几次,bug可能就出现了
离线ysu533

只看该作者 19楼 发表于: 2016-04-05
回 liudianwu 的帖子
liudianwu:14楼乃终极最佳解决方案! (2016-04-05 10:18) 

不认同, 参见我9和17楼回复
离线ysu533

只看该作者 20楼 发表于: 2016-04-05
回 zhaojianjun 的帖子
zhaojianjun:还是有bug 啊,自己再反复左右拉伸几次,bug可能就出现了 (2016-04-05 10:52) 

我没有发现啊, 能否加我qq 250528864
离线toby520

只看该作者 21楼 发表于: 2016-04-05
不跨平台的Qt封装都是耍流氓
QtQML多多指教开发社区 http://qtclub.heilqt.com
将QtCoding进行到底
关注移动互联网,关注金融
开发跨平台客户端,服务于金融行业
专业定制界面
群号:312125701   373955953(qml控件定做)
离线crazy

只看该作者 22楼 发表于: 2016-04-05
回 toby520 的帖子
toby520:不跨平台的Qt封装都是耍流氓[表情] [表情] [表情]  (2016-04-05 21:27) 

C/C++/Qt爱好者
邮箱: kevinlq0912@163.com
公众号: devstone
博客:http://kevinlq.com/
离线ysu533

只看该作者 23楼 发表于: 2016-04-06
回 toby520 的帖子
toby520:不跨平台的Qt封装都是耍流氓[表情] [表情] [表情]  (2016-04-05 21:27) 

你从哪看出了不跨平台?  没有任何的平台特定接口
离线ysu533

只看该作者 24楼 发表于: 2016-04-06
回 crazy 的帖子
crazy:[表情] (2016-04-05 22:24) 

跨平台是完全没有问题的, 只是qml支持确实是没有的, 因为本人对qml不熟.
离线liudianwu

只看该作者 25楼 发表于: 2016-04-06
回 ysu533 的帖子
ysu533:跨平台是完全没有问题的, 只是qml支持确实是没有的, 因为本人对qml不熟. (2016-04-06 08:26) 

toby520是狂热的qml追求者!对他来说支持了qml才算跨平台!
欢迎关注微信公众号:Qt实战 (各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发)QQ:517216493  WX:feiyangqingyun  QQ群:751439350
离线liudianwu

只看该作者 26楼 发表于: 2016-04-06
很遗憾,编译不通过!qt4.8.7+mingw
欢迎关注微信公众号:Qt实战 (各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发)QQ:517216493  WX:feiyangqingyun  QQ群:751439350
离线ysu533

只看该作者 27楼 发表于: 2016-04-06
回 liudianwu 的帖子
liudianwu:很遗憾,编译不通过!qt4.8.7+mingw
[图片] (2016-04-06 10:24) 

谢谢反馈, qt4 确实没有测试过, 不过要支持应该也很简单, 稍后晚上我修复下.
离线ysu533

只看该作者 28楼 发表于: 2016-04-06
回 liudianwu 的帖子
liudianwu:很遗憾,编译不通过!qt4.8.7+mingw
[图片] (2016-04-06 10:24) 

对了这个类和你还有一定的渊源呢. 写这个类的想法来自于你那个史上最强的自定义界面. 期间演化过很多次. 包括尝试过直接在 designer中能直接拉上就能用的标题栏插件, 期间还和你沟通过一次, 但是我发现这都是无用功, 费力不讨好的, 根本不通用.

至少在我自己的无边框程序中, 很多界面根本就不存在标准的标题栏, 某些界面甚至没有标题栏, 最终演化成这样, 我自己才算满意. 我自己的程序界面比较像百度云和360安全卫士这样的.
离线fu22507411

只看该作者 29楼 发表于: 2016-09-26
为什么不用事件响应而用timer呢?
邮箱jiahao_coffee@foxmail.com 有问题可以免费咨询,有空都会回答,不过太难了我答不上来不要介意哈
快速回复
限100 字节
 
上一个 下一个