Linux 桌面开发用什么?

2020-05-25 13:49:47 +08:00
 tctc4869

已知 c++ qt,javaFX,electron,这三个做 linux 桌面开发,能否在多个不同的 linux 桌面版本,直接部署安装环安装软件安装包就能使用?而不特定的,针对性某个 linux 桌面版本修改代码再部署?

除了这个以上方案,还有其他?

8510 次点击
所在节点    Linux
33 条回复
tt67wq
2020-05-25 13:51:28 +08:00
gtk?
tctc4869
2020-05-25 13:53:50 +08:00
@tt67wq 能在乌邦图或 mint 上直接部署就能运行么?
tt67wq
2020-05-25 13:56:14 +08:00
@tctc4869 #2 我没试过,我感觉可以,毕竟 gnome 就是用 gtk 的,ubuntu 用的 gnome,不过听说 gtk 开发起来很头疼
wujieyuan
2020-05-25 13:59:36 +08:00
得看你软件功能什么样子的, 如果是视频播放器这种, 可以全平台通用不用管什么桌面, 如果是截图工具这种, 必须得调用系统 or 桌面 api, 那必须得适配不同的桌面, win 和 mac 好解决, linux 就麻烦了 ,各种桌面都得适配
TangMonk
2020-05-25 14:00:17 +08:00
lazarus 推荐下
superrichman
2020-05-25 14:03:38 +08:00
用 qt 写,然后打包成 appimage,能在主流的 linux 环境跑起来,github 上见过一些软件是这么做的
jin7
2020-05-25 14:05:12 +08:00
pyside2 / pyqt5
clemente0620
2020-05-25 14:19:22 +08:00
C#
tctc4869
2020-05-25 14:24:45 +08:00
@clemente0620 没有把
qq7790586
2020-05-25 15:14:44 +08:00
linux 肯定是 qt5 啊。
RedL0tus
2020-05-25 15:34:22 +08:00
取决于你的需求。

Linux 主要就两大流派,一个 Qt 一个 GTK 。如果你要以 GNOME/XFCE 那一堆为主的话就 GTK,要以 KDE/LxQt 为主的话。主题之类的适配一般不用担心,大家基本上都已经配好了相关的设置。

要能跨发行版部署的话跟用啥框架关系不大,主要是后面的打包的部分。前面有朋友提到的 AppImage 是一种方法,另外的话打包上 flatpak 或者如果你用 Ubuntu 的话也可以 snap,就是最后体积肯定会比本来动态链接的大。传统一点的玩法的话就是把学习各大发行版的打包方式然后建源 /COPR/PPA 之类的,最麻烦但是也最文明(

要省时省力就 Electron,而且 Electron 的话默认就是打成 AppImage 。只是这样的话如果是公开发行的可能会被骂,毕竟是 Electron (
RedL0tus
2020-05-25 15:35:27 +08:00
刚刚有一点忘了提了,如果还要跨到非 Linux 平台的话就不要 GTK 了,GTK 在 Linux 以外的地方... 长得挺别致的(((
kios
2020-05-25 15:41:35 +08:00
Qt 吧
armoni
2020-05-25 15:45:00 +08:00
javafx 呢
KeyboardManAnAn
2020-05-25 15:45:12 +08:00
在稍微有点耐心等一等,Flutter 马上就会官方支持 Linux 桌面端了(狗头
DoctorCat
2020-05-25 17:32:57 +08:00
Qt 跨平台兼容性、表现性比较好
kylix
2020-05-25 17:56:02 +08:00
@TangMonk lazarus +1,如果会 delphi 的话
visli
2020-05-25 18:21:57 +08:00
Delphier 也许可能会选择 Lazarus,其他人是不会的。
TangMonk
2020-05-25 18:28:12 +08:00
@visli #18 但是 Lazarus 比 Qt 好学多了吧
jin7
2020-05-25 19:03:13 +08:00
@TangMonk #19
qt 直接用 python && QT 比 l pascal/lazarus 好学多了吧 高分屏的问题 lazarus 有解决办法?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/675208

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX