• 46670阅读
  • 57回复

基于QT的界面框架qcanpool(开源) [复制链接]

上一主题 下一主题
离线bigma
 

图酷模式  只看楼主 倒序阅读 楼主  发表于: 2018-03-01
github:https://github.com/canpool/qtcanpool
gitee:https://gitee.com/icanpool/qtcanpool


觉得资源不错的,可以捐赠支持作者。

资源说明:
1、FancyBar类,定制的标题栏
2、FancyButton类,定制的按钮,在FancyBar中使用
3、FancyDialog类,定制的对话框,代替QDialog
4、FancyNavBar类,定制的导航栏,类似qtcreator状态栏中的导航
5、FancyNavButton类,定制的按钮,在FancyNavBar中使用
6、FancyTabWidget类,仿qtcreator模式栏+中心区,类似QTabWidget
7、FancyTabBar类,仿qtcreator模式栏,类似QTabBar
8、FancyTab类,定制的按钮,在QTabBar中使用
9、FancyWindow类,定制的window,代替QMainWindow
10、IMode类,仿qtcreator左侧的模式
11、IModeBar类,仿360功能模式
12、IModeButton类,定制的按钮,在模式栏中使用
13、MiniCard类,一种卡片式显示
14、MiniSplitter类,简便的QSplitter
15、MiniStack类,一种可收缩的桟显示
16、ModeManager类,管理有IMode构建的模式
17、QCanpool类,包含通用的静态方法
18、QuickAccessBar类,仿ribbon的快速访问栏
19、ScreenHelper类,在多屏中显示处理
20、SimpleFilter类,简单的过滤器,可用于QTableWidget、QTreeWidget、QTreeView
21、SkinItem类,皮肤项
22、TinyTabWidget类,定制的TabWidget,代替QTabWidget


        除不具备拖放到屏幕边缘出现气泡框和拖放到左右侧分屏显示外,windows下的诸如双击标题栏最大化、最小化;最大化时,鼠标拖拽标题栏还原显示;拖拽到屏幕最顶最大化显示;非最大化显示时,支持鼠标拖拽改变大小;多屏显示时,自动判别所处屏幕等都已具备。




成品效果图:





简单教程:http://blog.csdn.net/mmjbigma/article/details/79427537







离线九重水

只看该作者 1楼 发表于: 2018-03-01
传说中的轮子哥
离线stlcours

只看该作者 2楼 发表于: 2018-03-01
定价100~200之间,估计会有许多人买。话说你这个斜角45度的效果图是怎么做出来的?
离线bigma

只看该作者 3楼 发表于: 2018-03-01
回 stlcours 的帖子
stlcours:定价100~200之间,估计会有许多人买。话说你这个斜角45度的效果图是怎么做出来的? (2018-03-01 17:45) 

photoshop
离线breezeblow

只看该作者 4楼 发表于: 2018-03-02
你好, 有没有提供类似VS的DockPane功能?
离线汉阳青川

只看该作者 5楼 发表于: 2018-03-02
不能通过边线调整窗口大小?
开发老司机,擅长整治各种疑难杂症,轻车熟路不翻车;需要开发定制,方案咨询,可以加——+V=+X:Sinden2022
离线bigma

只看该作者 6楼 发表于: 2018-03-02
回 汉阳青川 的帖子
汉阳青川:不能通过边线调整窗口大小? (2018-03-02 08:50) 

能,可以的
离线笨笨小孩

只看该作者 7楼 发表于: 2018-03-02
你一定要努力哦!!!
离线bigma

只看该作者 8楼 发表于: 2018-03-02
回 breezeblow 的帖子
breezeblow:你好, 有没有提供类似VS的DockPane功能? (2018-03-02 08:44)

没有呢,我这种方式主要类qtcreator,没有使用DockWidget,需求不强烈,不过后面可以考虑定制一下,之前看到过一种方式挺好的,可是我没想到怎么通用化,您可以看下https://www.linux-apps.com/p/1132131/,另外有商用的这种方式http://www.devmachines.com/qtitandocking-overview.html,我体验过,效果不错



离线breezeblow

只看该作者 9楼 发表于: 2018-03-02
好的, 谢谢。 还有个问题想问一下, 你实现的无边框窗口有没有实现Windows下拖拽至屏幕边缘自动排列窗口的功能? 若实现了有没有考虑窗口上的子widget使用winId()窗口化后还能不能实现窗口的自动排列的效果?

内容来自[短消息]
离线bigma

只看该作者 10楼 发表于: 2018-03-02
回 breezeblow 的帖子
breezeblow:好的, 谢谢。 还有个问题想问一下, 你实现的无边框窗口有没有实现Windows下拖拽至屏幕边缘自动排列窗口的功能? 若实现了有没有考虑窗口上的子widget使用winId()窗口化后还能不能实现窗口的自动排列的效果?
内容来自[短消息] (2018-03-02 09:49)

这个没有,这种实现比较费事,可能以后也不采取这种方式,会考虑draw ui的那种方式,不采用无边框的方式,类似qtitanribbon那样,下一步可能会做。而且我在linux下测试,发现无边框会影响效果,因为去掉了操作系统的特性
离线liuzhezhe

只看该作者 11楼 发表于: 2018-03-02
能不能出一个简单的使用文档,这样方便初学者使用
离线bigma

只看该作者 12楼 发表于: 2018-03-02
回 liuzhezhe 的帖子
liuzhezhe:能不能出一个简单的使用文档,这样方便初学者使用[表情]  (2018-03-02 15:16) 

可以,等我花些时间写一下,等候消息
离线1003780259

只看该作者 13楼 发表于: 2018-03-05


请问大神有没有实现QtCreator中程序编辑的功能?能不能指点一下QtCreator中以插件存在的程序编辑功能模块具体路径是在哪里?
离线bigma

只看该作者 14楼 发表于: 2018-03-05
回 1003780259 的帖子
1003780259:[表情] [表情] [表情]
请问大神有没有实现QtCreator中程序编辑的功能?能不能指点一下QtCreator中以插件存在的程序编辑功能模块具体路径是在哪里? (2018-03-05 08:40)

没有,qtcreator很复杂的,我没搞清楚,编辑器就看plugins目录下,..editor,比如texteditor,cppeditor等,有好些没法直接用,涉及太多,可能仅供参考吧

离线vitty1984

只看该作者 15楼 发表于: 2018-03-05
建议Qt4和Qt5都提供一个版本,方便我们选择购买啊。
离线vitty1984

只看该作者 16楼 发表于: 2018-03-05
刘大师提供的就很好,每个版本下编译都没问题
离线bigma

只看该作者 17楼 发表于: 2018-03-05
回 vitty1984 的帖子
vitty1984:刘大师提供的就很好,每个版本下编译都没问题[表情] (2018-03-05 10:36)

哦,实际上,我这里面不涉及具体应用,都是qwidget,我之前有Qt4,后来直接安装Qt5.10,都打包在一起了,马上都6了吧,我以为大家都不用4了呢。
万一4有点问题,对会Qt的人应该不是难题吧。
离线vitty1984

只看该作者 18楼 发表于: 2018-03-05
恩,我看你以前做电力这方面的,一般主站的系统,很多年都不会大幅度升级Qt版本的,我们单位七八年用的Qt4.6,到现在也就是升级到Qt4.8
离线bigma

只看该作者 19楼 发表于: 2018-03-05
回 vitty1984 的帖子
vitty1984:建议Qt4和Qt5都提供一个版本,方便我们选择购买啊。 (2018-03-05 10:35) 

可能谈钱伤感情吧,目前愿意了解的屈指可数,由于个人能力有限,目前也就只能做出来这样的效果,更通用,更全面的还需要继续努力
离线liudianwu

只看该作者 20楼 发表于: 2018-03-05
回 vitty1984 的帖子
vitty1984:刘大师提供的就很好,每个版本下编译都没问题[表情]  (2018-03-05 10:36) 

谢谢夸奖,其实无非就是注意点qt4到qt5的区别即可,用版本判断即可,比如
#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0))
欢迎关注微信公众号:Qt实战 (各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发)QQ:517216493  WX:feiyangqingyun  QQ群:751439350
离线shasidaran

只看该作者 21楼 发表于: 2018-03-08
原来是毕古妈姆
离线hanheyfon

只看该作者 22楼 发表于: 2018-03-13
        
离线liuchangyin

只看该作者 23楼 发表于: 2018-03-13
效果不错
离线kaikai_king

只看该作者 24楼 发表于: 2018-03-13
膜拜大神
离线bigma

只看该作者 25楼 发表于: 2018-03-17
回 shasidaran 的帖子
shasidaran:
原来是毕古妈姆[表情]  

是逼格马
离线tot_god

只看该作者 26楼 发表于: 2018-05-10
有偿开源吗?最近想搞个项目缺框架
离线snaillv

只看该作者 27楼 发表于: 2018-06-12
谢谢分享
离线bigma

只看该作者 28楼 发表于: 2018-07-21
回复顶上去,快沉底了

只看该作者 29楼 发表于: 2019-02-07
请问您的QT版本是?
离线tianshq

只看该作者 30楼 发表于: 2019-05-27
感谢楼主分享,另外,发现几处bug,会有死循环,占用cpu,如下:在paintEvent中调用setStyleSheet,有几个类中有类似的bug
void FancyButton::setColor(const QColor &color)
{
    if (m_hasBorder) {
        setStyleSheet(QString("QToolButton::menu-indicator { image: None; }"
            "QToolButton{background-color: transparent;color: #%1;}")
            .arg(QCanpool::colorToArgb(color)));
    }
    else {
        setStyleSheet(QString("QToolButton::menu-indicator { image: None; }"
            "QToolButton{background-color: transparent;color: #%1;border:none;}")
            .arg(QCanpool::colorToArgb(color)));
    }
}

void FancyButton::paintEvent(QPaintEvent *event)
{
    if (m_bMousePress) {
        painterInfo(m_pressColor);
    } else if (m_bMouseHover) {
        painterInfo(m_hoverColor);
    } else {
       setColor(m_textColor);

        if (m_normalColor.isValid()) {
            painterInfo(m_normalColor);
        }
    }

    QToolButton::paintEvent(event);
}
离线toby520

只看该作者 31楼 发表于: 2019-05-28
QtQML多多指教开发社区 http://qtclub.heilqt.com
将QtCoding进行到底
关注移动互联网,关注金融
开发跨平台客户端,服务于金融行业
专业定制界面
群号:312125701   373955953(qml控件定做)
离线bigma

只看该作者 32楼 发表于: 2019-06-13
回 tianshq 的帖子
tianshq:感谢楼主分享,另外,发现几处bug,会有死循环,占用cpu,如下:在paintEvent中调用setStyleSheet,有几个类中有类似的bug
void FancyButton::setColor(const QColor &color)
{
    if (m_hasBorder) {
         .. (2019-05-27 19:22) 

要是早看到就好了,别人向我反映了这个问题,我调了两晚上才解决,现在已更新
离线0okmijn098

只看该作者 33楼 发表于: 2019-06-17
楼主 需捐赠多少可学习下?
离线bigma

只看该作者 34楼 发表于: 2019-06-19
回 0okmijn098 的帖子
0okmijn098:楼主 需捐赠多少可学习下?
 (2019-06-17 10:30) 

现在不用捐赠的,源码可以直接下来使用,就是希望有改善的地方可以推送给我
离线lsyzsl

只看该作者 35楼 发表于: 2019-06-20
卡片式显示可否给看下效果?
离线colindemon

只看该作者 36楼 发表于: 2019-07-05
真正的大神,就应该像楼主这样,完全开源。楼主这个代码应该比刘大师的自定义控件含金量不说高100倍,高99倍不过分吧,可以人家刘大师还弄个“永久开源dll”,神马玩意儿……
黑夜给了我黑色眼睛,我却用它去寻找光明
离线bigma

只看该作者 37楼 发表于: 2019-07-06
回 colindemon 的帖子
colindemon:
真正的大神,就应该像楼主这样,完全开源。楼主这个代码应该比刘大师的自定义控件含金量不说高100倍,高99倍不过分吧,可以人家刘大师还弄个“永久开源dll”,神马玩意儿……

    可不能这么说,人家也贡献很大,不完全开源也要理解。
    很多年前就看到刘大师分享的控件,一直也想研究学习搞出来一套,然后完全开源。可是限于能力、精力一直没有排入计划(目前工作中用不到Qt,基本都是业余时间学习学习)。最近浏览论坛,突然发现刘大师搞了一波大动作,前几页全是关于各种控件的帖子,一时间兴奋不已,刘大师终于“开源”了……
    尽管只开放了部分核心代码,但是如果对某个控件有需要,还是挺有参考意义的。我在src\modules\qcustomcontrols下整理了部分自绘控件,有需要别的控件,可以参考自绘(需要花点时间研究的,等你做的时候,就能体会到作者的不容易,不开源也就可以理解了)。如果你有精美的控件,也欢迎pull request到仓库,共同努力。
    备注:我没能把帖子中所涉及的控件都整理完,因为原作者未完全开源,整理确实是挺花时间的,因此只能整理部分。
离线loks135

只看该作者 38楼 发表于: 2019-07-11
楼主,我去掉一部分中文注释,编译的时候报错了:rcslicense.cpp”中的 #if/#endif 对不匹配
离线bigma

只看该作者 39楼 发表于: 2019-07-11
回 loks135 的帖子
loks135:楼主,我去掉一部分中文注释,编译的时候报错了:rcslicense.cpp”中的 #if/#endif 对不匹配 (2019-07-11 18:55)

这个是直接拿的模块,我没优化过,接下来我优化下吧(暂时先把这个模块移除,写的不好)
备注:mingw下是没问题的,如果使用别的编译器,可能是中文编码问题


快速回复
限100 字节
 
上一个 下一个