想在deepin上用python开发图形界面,用哪个框架好
Tofloor
poster avatar
151******67
deepin
2020-08-25 18:05
Author
个人比较菜,以下如有错误还请大家多多包涵

想要在Deepin和UOS上开发功能软件,软件至少要实现下面的功能:
1.不是特别挫的图形界面
2.能够实现表格、图片、折线图等数据展示功能
3.能够实现表格的编辑
4.能够实现Socket通讯、串口通讯

以下是非必须的,但最好可以实现的
1.可以实现一次开发跨平台发布(UOS,WIN,嵌入式Linux)
2.可以简便的与数据库通讯(SQLite,MySQL,Access 这个我知道一般都是代码实现,但如果有更好的...)
3.可用控件多一点,好看一点(入门程序员的审美,你们懂的)
4.最好是不要非得用PyCharm(没钱,现在用VScode)


目前百度到好多框架:Flexx、wxPython、Kivy、PyQt、Tkinter、PyGTK等等,太多太乱,所以想要大佬们指点一二,免得我挨个试一遍浪费时间,谢谢

PS:之所以用Python是因为本人只会Python和C#,以前都是C#开发,本想学C++(以后还可嵌入式),但以我的能力一时半会又学不明白,而且VS号称宇宙等一IDE也不吹的,所以,导致我比较懒,C++的编译对我来说也成问题了....
话说Python开发嵌入式没啥问题吧


Reply Favorite View the author
All Replies
2 / 2
To page
avatar
151******67
deepin
2020-08-25 21:07
#21
https://bbs.deepin.org/post/200308
你知道为什么谷歌的网络硬盘同步程序只有Windows和Mac吗?谷歌在开发桌面同步程序时也是考虑3个平台的,他 ...

唉,linux发行版套多了
Reply View the author
avatar
wangle
deepin
2020-08-25 21:37
#22
不懂 帮顶。加油
Reply View the author
avatar
joo
deepin
2020-08-25 22:00
#23
本帖最后由 joo_tsao 于 2020-8-25 14:10 编辑

我试用过很多框架,涉及底层多一点的Java FX、Electron不适用,GTK、QT在Windows是没有这个底层的,你需要安装完整的GTK、QT,更要命的是GTK、QT依赖Linux专有的lib库,这一堆必须依赖的lib都必须安装,vs c++也编译不了这些库,据说可以,反正我是用GCC MinGW(Windows的)编译的,还没完,Linux的库大多数是用make自动编译的,你还需要Windows版的make,嗯,还没完,make还不能用,make需要Linux环境的shell,你需要工具将power shell模拟成Linux环境的shell,如果你幸运的话应该可以了,不要笑,我的很多库由于是夸平台的都是用GCC MinGW编译的。wxwidgets相对来说,开发难度、开发环境要求和发布容易一些,wxwidgets是将不同平台的原生UI控件进行封装成统一调用API,在Windows是将winform封装,在Mac是封装Mac的,在Linux是封装GTK的,也就是在不同平台底层的图形原生控件肯定是成熟可用的,发布也不需要将底层打包发布,在不同平台显示的是原生的UI比较协调,但缺点就是不同平台不同封装,工作量大而且复杂,造成bug多,凡事有两面,很多人吐槽wxwidgets,你以为不好,用的人多才有人吐槽啊,我几乎没看到吐槽TkinterFlexx、Kivy,因为没人用啊。
Reply View the author
avatar
jmjoy
deepin
2020-08-25 22:04
#24
python开发跨平台GUI不现实,如果有前端经验,建议用electron,vscode也是用这个框架开发的。2021之后可以用tauri这个框架。
Reply View the author
avatar
joo
deepin
2020-08-25 22:13
#25
https://bbs.deepin.org/post/200308
python开发跨平台GUI不现实,如果有前端经验,建议用electron,vscode也是用这个框架开发的。2021之后可以 ...

python不能开发夸平台gui,但wxpython可以,我不知道electron如何读写串口。
Reply View the author
avatar
joo
deepin
2020-08-25 22:20
#26
electron框架限于只能用js或typescript,如果要调用系统底层比较多的话,有很多限制,python + wxpython可以做C#能做的所有。
Reply View the author
avatar
小小怪下士
deepin
2020-08-25 22:54
#27
帮顶         
Reply View the author
avatar
xiongweixp
deepin
2020-08-25 23:45
#28
pyqt+qtwebengine,用h5做界面,效果比原生好,采用混合应用方式
Reply View the author
avatar
juteman
deepin
2020-08-25 23:56
#29
https://bbs.deepin.org/post/200308
好的,不过不是很看好net能跨平台

已经跨平台了,不是你看不看好的问题.
微信的服务端已经用.net core 重写了,并且跑在Linux上.
现在是UI库没有跨平台,所以我推荐了一些github上star最高的c#ui库.这个库是原微软wpf项目员工重写的,几乎就是wpf的跨平台版本
Reply View the author
avatar
joo
deepin
2020-08-26 00:43
#30
本帖最后由 joo_tsao 于 2020-8-25 17:08 编辑

.net core是微软官方跨平台的,我们不用先入为主不看好.net core,以客观为基础,就事论事,微软的产品质量绝对一流,.net的速度也是没话说的。跨平台、夸设备的开发框架近十年微软、谷歌一直累败累战(微软和谷歌之前很多失败的),为什么?这样的开发框架是他们以后在软件领域一统江湖的利器和野心。谷歌的flutter已可以作为产品开发,同一套代码不做任何改变可以编译成:安卓(移动)、IOS(移动)、Mac  OS(桌面)、Linux(桌面)、window(桌面)以及WEB(在浏览器运行)的应用,而且界面是统一的。微软的 .NET Core 平台已发布 Winform的技术预览版,这个更牛不用重新编译就可以在Linux和Windows运行,但不是JAVA的半吊子UI。我在这个论坛也表达过很担忧国内的软件基础,作为开发者对这样的开发框架有致命的吸引力,国内还没有这样的开发工具可以抗衡,而且人家苹果、微软、谷歌都是从开发语言、开发工具、开发框架一条龙属于自家。本帖作者由于限定用python,如果不介意其他开发语言可以考虑flutter(目前在桌面不太成熟),可用的包也不是十分丰富,推荐wxpython是由于python有丰富的第三方库,立即就可以开发出产品,串口有现成、高质量的pyserial库,这个库已有超过10年的持续开发维护。
Reply View the author
avatar
castiel
deepin
2020-08-26 01:07
#31
我就用的pyq,当然写的都是很小的功能 。代码反正是windows、linux都可以用,不过没有发布。我目前就只会用pyinstaller打成执行文件,这个出来的包非常大。
Reply View the author
avatar
DebuggerX
deepin
2020-08-26 01:42
#32
pyqt挺好的,环境搭建并不难,只要pip install一把梭就行了。
ide还是建议pycharm,不需要专业版,免费的社区版就够用了。
打包pyinstaller完全可以,我用pyqt5写的小工具打包出来的win/mac二进制程序都不到30mb,相比于electron方案已经小太多太多了,反而是linux平台用pyinstaller打包之后的程序又大,不同内核版本兼容性也很不好,可以考虑源码deb方式发布
Reply View the author
avatar
ritter
deepin
2020-08-26 01:43
#33
有没有大神知道sublime text 3是用什么gui库开发的?它也是用python写的,但是在windows和linux下打包的大小都不大啊,感觉还不错。
Reply View the author
avatar
jmxl
deepin
2020-12-24 22:52
#34
juteman
以前是用C# 开发的吗,在Linux上还是可以用C#
wpf的跨平台版本avalonia
还有计划在.net 6中推出的跨平台UImaui
可以关注一下好吧

Avalonia 对中文支持不友好。官方说重写textbox控件也搞了好几年还是WIP。

Uno也是不支持中文textbox。

Eto.forms用的是原生控件映射,导致各个平台下的界面显示会有些不一样,实际开发还得分别调试。

个人觉得.net 跨平台GUI现在最成熟的是Gtksharp。

Reply View the author
avatar
cdboy
deepin
2020-12-25 05:45
#35
joo
你知道为什么谷歌的网络硬盘同步程序只有Windows和Mac吗?谷歌在开发桌面同步程序时也是考虑3个平台的,他们也是评估了QT、GTK、wxwidgets,最终选择wxwidgets当然是有道理的,最后给wxwidgets无数bug气哭了,呵呵,修复没门,后来把Linux的桌面同步砍掉,在谷歌以前很火的讨论组全程有记录。

哈哈哈这么秀的吗,网上没有查到这事情,老哥能不能给个讨论组记录的链接?

Reply View the author
2 / 2
To page