1
ithz 2022-03-09 16:38:05 +08:00
pyqt 吧
|
2
ChrisFreeMan OP @ithz 主要是看这个 kivy 支持全平台(包括 IOS/Android )想知道这个东西靠不靠谱,之前试过好几个到头来都掉坑里了
|
3
ClericPy 2022-03-09 21:33:10 +08:00
kivy 和 beeware... 用过的貌似都没夸它们的, 我就没上手
|
4
ChrisFreeMan OP @ClericPy 看来还得去搞 swift 得了,一直因为 XCode 过于巨大而有点拒绝。。看来逃不开了。
|
5
ClericPy 2022-03-09 21:49:49 +08:00
@ChrisFreeMan
做 ios 的同学说现在不如以前那么香了. 而且还提到了 flutter 啥的 |
6
ChrisFreeMan OP @ClericPy 没事,我就自己弄着玩而已。
|
7
Mocus 2022-03-11 18:51:13 +08:00
用过 Pyqt 和 Kivy ,都 2022 年了 Kivy 的中文支持还是稀烂,如果不是上课要教真的不想学
上课资料 https://github.com/CP1404/Starter 还是 Pyqt 香,之前用过 C++版本,上手很快 没试过 kivy 移动端开发 |
8
ChrisFreeMan OP @Mocus 感谢回复,我也不知道为啥你们上课会教 Kivy ,其实中文支持对于我来说不是什么问题,我最关系的还是生产环境下的应用体验。pyqt 没有试过,但是它的商业许可让我觉得很困惑,我玩过很多 python 的 GUI 开发框架 pygame_gui 、pygame-muenu, toga(beeware), tkinter, pyglet ,说实话对它们都挺失望的,它们似乎都是一个试验品的感觉,而且是失败的那种。我现在是觉得 python 可以做很多事情,但是绝大部分事情都做不好的样子,除了上手快和简洁之外。有点失望,我是真心非常喜欢 python ,它是我的教父语言,担心现在真心觉得,还是深入学一学其他的编程语言。
|
9
ChrisFreeMan OP @Mocus 错别字有点多见谅,发出去已经晚了,没法更正
|
10
BingoXuan 2022-03-13 14:28:53 +08:00
@ChrisFreeMan
那么多 python 的 gui 方案,我最后选了 pywebview 。毕竟 web 这种文档流编程实在简单。 说实话,Python 还是很多通点的。比如不支持复杂的匿名函数,不敢恭维的类型系统,一言难尽的 asyncio |
11
ChrisFreeMan OP @BingoXuan 其实 python 的 async IO 现在已经得到很大的改善了,现在最起码用起来比以前方便很多了。
我这个例子不知道能不能说明你的难处,关于将同步函数包装成异步函数执行。 ```python from http import client from urllib import request as url_request import time import asyncio URL = 'http://opendata2.epa.gov.tw/AQI.json' async def a_open_url(url: str) -> str: loop = asyncio.get_event_loop() print('------') rst: client.HTTPResponse = await loop.run_in_executor( None, url_request.urlopen, url ) return rst.read().decode('utf8') async def main() -> None: start = time.time() request_time = 4 rst = await asyncio.gather(*[a_open_url(URL) for _ in range(request_time)]) print([len(r) for r in rst]) print('spend time:', time.time()-start) if __name__ == '__main__': asyncio.run(main()) ``` 类型系统的话,说实在的我还没体会到有啥不便之处,配合 mypy 的类型检查,还有 flake8 的语法检查也是够用。基本我没有遇上无法类型注释的情况。 复杂的匿名函数感觉这个应该和 python 的设计理念冲突吧,因为本来就是靠缩进来区分层级的,所以精简表达很重要,如果加入复杂的匿名函数就会增加代码的复杂维度,纯个人看法。 最后关于 python 的 gui 编程,我还是先选择其他语言了,至于用 web 的技术去开发桌面 UI 其实用 python 本身的意义就不太大了,因为有更多更成熟,更靠谱的前端技术栈。哎,不过还是会作为我的最佳储备语言了,哪天好起来了还是会快速捡起来的。 |