• 2107阅读
  • 4回复

开源C++项目platypus,使用Qt作为框架 [复制链接]

上一主题 下一主题
离线iamshixiong
 

图酷模式  只看楼主 倒序阅读 楼主  发表于: 2023-07-15
1、是什么?
platypus 是一个对git bash窗口的管理,效果就是类似chrome浏览器那样,对bash窗口进行管理,可以随意的切换和创建。 目前支持windows x64。 为什么仅支持Windows x64? 因为其他的平台不需要😊,mac && linux都自带了更好用的bash,体验也很好。
在使用此软件之前,你需要自行安装git bash。我相信你已经安装过了。😊
软件截图:

window.open('http://www.qtcn.org/bbs/attachment/Mon_2307/44_204553_708d4a194babfcc.png?21');" style="max-width:700px;max-height:700px;" onload="if(is_ie6&&this.offsetWidth>700)this.width=700;" >

​ 快捷键支持:

为了避免和git bash的功能有冲突,建议你关闭git bash 的快捷键处理。



2、为什么写这个软件?

我尝试很多的软件,都不尽如人意。比如powershell,在powershell可以使用git bash。但是体验不好,比如我不能使用bash的快捷键。
这对我来说很受打击。
再比如在vs code中也集成了git命令,体验也达不到原生的bash。
mintty其实本身也支持tab管理,但是效果需要提升。
其实我是把git bash的作用完全扩大化了,不再把他当作一个源码管理命令行,而是完完全全的linux的bash。
这样可以给我工作效率的提升。
我本人一直在做windows的开发,其实我对linux十分感兴趣,所以对命令行有种青睐的感觉。


3、如何编译

此软件是基于Qt 5.15.2版本开发的,当然你可以使用更高的版本。
IDE: vs2019 c++20
notice: 因为现在估计开发者很少用x86 os,所以我着重测试了x64环境,你在编译的时候需要选择x64模式。


4、简单介绍原理

这里我介绍几个技术点:
1、如何获取mintty.exe 的标题栏信息:
利用线程注入技术,将dll通过windows API注入mintty.exe。
2、如何将mintty.exe窗口嵌入到我们自己的程序中:
利用Qt API。
3、如何获取触发的快捷键:
利用键盘hook,监听全局的键盘消息。notice:但是我过滤算法很差劲,效果并不很好。
4、进程间通信:
剩下的感兴趣就自己看下代码吧。😄,hava fun.

5、要做的事情很多
TODO:
  • 1、需要支持扩展命令 解决方案:使用sh脚本启动exe,进行进程间通信传递命令

  • 2、优化键盘过滤算法
  • 3、有时候不能获取mintty窗口
  • 4、IPC稳定性需要加强
  • 5、tab 窗口需要重构
  • 6、将错误的消息放到消息队列中处理
如果你感兴趣,有想法,希望你来一起参加。
https://github.com/MingYueRuYa/platypus






8条评分好评度+2贡献值+2金钱+13威望+2
weinkym 好评度 +1 - 2023-07-18
weinkym 贡献值 +1 - 2023-07-18
weinkym 威望 +1 - 2023-07-18
weinkym 金钱 +3 - 2023-07-18
20091001753 好评度 +1 - 2023-07-15
20091001753 贡献值 +1 - 2023-07-15
20091001753 威望 +1 - 2023-07-15
20091001753 金钱 +10 - 2023-07-15
接受定制软件,擅长Qt,WinDBG调试
离线toby520

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

只看该作者 2楼 发表于: 2023-07-18
它比powershell 之类的,好在哪儿???
离线iamshixiong

只看该作者 3楼 发表于: 2023-07-18
回 圣域天子 的帖子
圣域天子:它比powershell 之类的,好在哪儿??? (2023-07-18 09:04) 

1、对linux用户来说没有迁移成本。
2、无缝使用git bash。
接受定制软件,擅长Qt,WinDBG调试
离线shokokawaii

只看该作者 4楼 发表于: 2023-10-22
QFluentWidgets 是基于 Qt 的 Fluent Designer 组件库,内置超过 160 个开箱即用的 Fluent Designer 组件,支持亮暗主题无缝切换和自定义主题色。搭配所见即所得的 Fluent Designer 软件,只需拖拖拽拽,不用编写一行 QSS,就能快速搭建现代化界面。有意者可联系邮箱或者 QQ~
官网:https://qfluentwidgets.com/zh/ (需要科学上网)
邮箱:shokokawaii@foxmail.com
QQ:1953658489
快速回复
限100 字节
 
上一个 下一个