「世界上最具备扩展性的 Qt 点名器 ChickPick (原名 randomSelection)」
「ChickPick Core」 #project #dev #qt #design #windows
命令行
列表
——
help | about | mode | setup 右击->profiles
mode 列表:
rand rc-> urand rc-> simplerand(使用非为平板设计的 UI,而不是悬浮窗)
count
logs rc->show all logs
edit rc->new
额外知识:
1. 为什么没有完全分开 wrapper 和核心
因为这样静态链接在 windows 上就很难受
2. 点名的是列表还是集合
有序列表,就是说可以通过调整人名出现的次数控制被抽中的可能性
「ChickPick Core」 #project #dev #qt #design #windows
命令行
pick.exe
(Windows 下) Command linepick [input = chicks.txt] [persis = -] [tasklog = -]部分文件可以选用
pick input [persis = -] [tasklog = -]
pick input persis [tasklog = -]
pick input persis tasklog
pick --help -h -help /help /h
pick --version -v -ver -version /ver /v /version
pick --options -opts /options /opts
pick --check -check -cf /check [file]
pick @respfile
pick --license -license /license
pick --makeini -makeini /makeini [output]
pick --gui /gui -gui
!stdin
!stdout
!stderr
环境变量 Environment variablesFCOLOR标准项目结构 Standard project structure
FFCOLOR
FFSIZE
FNAME
FPRESSDELAY
FPRESSALLOW
PFSIZE
PFCOLOR
PCOLOR
PDELAY
PWIDTH
PHEIGHT
RPOPLAST
RBATCHSIZE
RBATCHFILE
RURANDOM
(只读变量)
RLIST
RPFILE
RLFILE
RLASTITEM
RLASTINDEX
(结束只读变量)
VERSION
PLUGINS
ANIM
ANIMSPEED
LOGBATCH
LINESEP
SHOWTRAY
EMITSIG
ATEXIT
ATRANDOM
ATANIMSWITCH
Plugins/文件 signature
Profiles/
Dicts/
Counts/
Logs/
chickPick.exe
chickPickWrapper.exe
文件:列表.txt,大小 8 Unicode 字符(10 项),文件校验码 xxxxx,总共点名 1 次(1 项被点过)日志文件 Log file format
// 跳过一行文件标记统计文件 Count file format
// 上次更新日期文本
<日期>
[时间] 名字
// 跳过一行文件标记GUI 管理器 GUI Wrapper
A: 2
B: 3
列表
——
help | about | mode | setup 右击->profiles
mode 列表:
rand rc-> urand rc-> simplerand(使用非为平板设计的 UI,而不是悬浮窗)
count
logs rc->show all logs
edit rc->new
额外知识:
1. 为什么没有完全分开 wrapper 和核心
因为这样静态链接在 windows 上就很难受
2. 点名的是列表还是集合
有序列表,就是说可以通过调整人名出现的次数控制被抽中的可能性
duangsuse::Echo
https://github.com/telegramdesktop/tdesktop/blob/d98bbca353fa12cc7b7fcecd193335db363aec35/Telegram/SourceFiles/core/click_handler_types.cpp#L32 #telegram
(其实我一直以为 Telegram Desktop 源码结构维护得那么好的话,这种链接路由应该专门分一个文件实现的,但其实内联在链接点击里实现了?(其实只不过是在那个文件里实现,不是在点击事件函数里实现的
(说实话,我不是很了解他们是怎么找到这些黑科技一样的玩法的... 我都懒得玩这些呢... 🙈 (找 @lwl12 问问去
我们来分析一下相应的算法 #telegram #algorithm #frontend #qt #cplusplus #desktop #linux #tool
... 算了直接找我要用的吧,首先我们说说 Telegram links 基本的 impact
telegramdesktop/tdesktopd/Telegram/SourceFiles/core/click_handler_types.h@d98bbca353fa12cc7b7fcecd193335db363aec35
clickHandler 就是链接派发逻辑。它分类对 Post 里内联的链接进行派发(到实际动作,如打开用户信息窗口),Types 是里面处理的数据类型,如用户 ID、网址 URL 等
public:
TextClickHandler(bool fullDisplayed = true)
QString copyToClipboardText()
QString tooltip()
class UrlClickHandler
class HiddenUrlClickHandler
class BotGameUrlClickHandler
class MentionClickHandler
class MentionNameClickHandler
class HashtagClickHandler
class CashtagClickHandler
class BotCommandClickHandler
充分体现了面向对象编程的继承性和抽象性(迫真
然后我们看看实际上的实现们
... 总之,我觉得应该搞一个自动正则匹配 URL 然后拿指定逻辑替换的插件,这样以后我就不用手动弄优雅(隐式)链接了
$伪 hashtag
(说实话,我不是很了解他们是怎么找到这些黑科技一样的玩法的... 我都懒得玩这些呢... 🙈 (找 @lwl12 问问去
我们来分析一下相应的算法 #telegram #algorithm #frontend #qt #cplusplus #desktop #linux #tool
... 算了直接找我要用的吧,首先我们说说 Telegram links 基本的 impact
telegramdesktop/tdesktopd/Telegram/SourceFiles/core/click_handler_types.h@d98bbca353fa12cc7b7fcecd193335db363aec35
clickHandler 就是链接派发逻辑。它分类对 Post 里内联的链接进行派发(到实际动作,如打开用户信息窗口),Types 是里面处理的数据类型,如用户 ID、网址 URL 等
public:
TextClickHandler(bool fullDisplayed = true)
QString copyToClipboardText()
QString tooltip()
class UrlClickHandler
class HiddenUrlClickHandler
class BotGameUrlClickHandler
class MentionClickHandler
class MentionNameClickHandler
class HashtagClickHandler
class CashtagClickHandler
class BotCommandClickHandler
充分体现了面向对象编程的继承性和抽象性(迫真
然后我们看看实际上的实现们
QString tryConvertUrlToLocal(QString url)where
matchOptions = Regex::CaseInsensitive
bool telegramMeMatch = Regex::match(qsl("^https?://(www\\.)?(telegram\\.(me|dog)|t\\.me)/(.+)$"), url, matchOptions)
if
telegramMeMatch {
query = telegramMeMatch->capturedRef(4);
query->ifMatch("^joinchat/([a-zA-Z0-9\\.\\_\\-]+)(\\?|$)", x => x->ifMatch("^/\\d+/?(?:\\?|$)", url("&post=")))
query->ifMatch("^addstickers/([a-zA-Z0-9\\.\\_]+)(\\?|$)")
query->ifMatch("^share/url/?\\?(.+)$")
query->ifMatch("^confirmphone/?\\?(.+)")
query->ifMatch("iv/?\\?(.+)(#|$)")
query->ifMatch("socks/?\\?(.+)(#|$)")
query->ifMatch("proxy/?\\?(.+)(#|$)")
query->ifMatch("^([a-zA-Z0-9\\.\\_]+)(/?\\?|/?$|/(\\d+)/?(?:\\?|$))")
}
... 有点累,不用伪代码了吧,实现细节都抖出来有点多了... 总之,我觉得应该搞一个自动正则匹配 URL 然后拿指定逻辑替换的插件,这样以后我就不用手动弄优雅(隐式)链接了
$伪 hashtag
GitHub
telegramdesktop/tdesktop
Telegram Desktop messaging app. Contribute to telegramdesktop/tdesktop development by creating an account on GitHub.
duangsuse::Echo
不是天才的话 1k 小时定律依然是有效的啊,只要一直努力用心的做某件事情,一定就能得到想要的效果吧... 虽然这一切精力啊,都要分散到超过 10 个的子科目,子知识范畴里面去呢... 那就要 10k 个小时呢,就是两年也没关系,只要能做到想要的水平
不过啊,虽然现在偏向数学性、偏向理论性的一些东西还是不好理解,至少其他的都还不错,能用了,可喜可贺。上次对 Telegram $RICH 这个标签的分析就是一个例子,不管怎么样是不是天才(笑)技术进步都是在那里的(指背书)所以值得庆祝?((((不到能手写红黑树的程度绝不罢休
Telegram
duangsuse::Echo
(其实我一直以为 Telegram Desktop 源码结构维护得那么好的话,这种链接路由应该专门分一个文件实现的,但其实内联在链接点击里实现了?(其实只不过是在那个文件里实现,不是在点击事件函数里实现的
(说实话,我不是很了解他们是怎么找到这些黑科技一样的玩法的... 我都懒得玩这些呢... 🙈 (找 @lwl12 问问去
我们来分析一下相应的算法 #telegram #algorithm #frontend #qt #cplusplus #desktop #linux #tool
... 算了直接找我要用的吧,首先我们说说…
(说实话,我不是很了解他们是怎么找到这些黑科技一样的玩法的... 我都懒得玩这些呢... 🙈 (找 @lwl12 问问去
我们来分析一下相应的算法 #telegram #algorithm #frontend #qt #cplusplus #desktop #linux #tool
... 算了直接找我要用的吧,首先我们说说…
#life #dev duangsuse 落实 10:30 准时睡觉『政策』。 🐱
考虑到健康原因(不让自己的努力白费),每晚 10:30(h:m) 必须立即睡觉
== duangsuse::Echo 参考 #Telegram hashtags
duangsuse::Echo 常年利用 hastags 标记消息所含知识领域,并且,这也会为未来 Echo 频道进行简单准确的数据统计带来可能(不然,我也有其他手段,比如 NLP、统计预测)
以下是新的标签实例(不区分大小写、不能保证消息只含这些标签):
== 消息平台部分
#Telegram #zhihu #Github #so #Coolapk #book #wiki
== 注释部分
#life #China #School #Statement #lib #recommended #low #fix
#project #blog #share #Learn #paper
#dev #tech #art #meetUp #conference
#Moha #Haha
#gnu
#Microsoft #Mozilla #WeChat #QQ #Weibo #Tencent #Baidu #Ali #Qihoo
#tools #code
== 程序设计语言部分
#Kotlin #Java #JavaScript #JavaScript_ES6 #TypeScript
#Rust #Go #Swift #Dart #Crystal
#Ruby #Python #Perl #Tcl #Lua #PHP
#C #D #Cplusplus #CSharp #Objc
#Pascal #Fortran #Delphi #Ada #Basic #VisualBasic
#Scheme #Haskell #Scala #Clojure
#TeX #Graphviz
#Octave #Matlab
#Shell
(有些写出来是为了鼓励我去写,其实不一定真的写过)
== 软件平台部分
#Android #Windows #Win32 #MacOS #Java #Java_JVM #CLR #Qt #GTK #Tk #WxWidgets
#CSS #XML #JSON #KDE #Postgres #dotnet
== 软件技术领域部分
#backend #sysadmin #frontend #sysadmin_net
#OI #CS #IT #Informatics
#stat #ann #ann_dnn #machl
#math #math_linearAlgebra #math_discrete
#se #se_dia #se_ci #se_ee
#comm #net #www #web #http #html #mail #wireless
#circuit #embedded #os #db #db_relAlgebra #SQL
#bin #encoding #encoding_audio #encoding_image #encoding_video #encoding_text
#hpc #parallelism #distributed #simd #gpgpu #crypto
#pl #pl_plt #ce_vee #ce #ce_optimize #fp_monad #fp_proof #fp #oop #oop_arch #sp #parser
#algorithm #struct #lists #maps #sets
#security #security_lowlevel
#signalProc #nlp #phonetic
#cg #cg_dip #cg_3d #cg_2d #cg_lowlevel
#gui #gui_animation #gui_layouts #cli #visualization
考虑到健康原因(不让自己的努力白费),每晚 10:30(h:m) 必须立即睡觉
== duangsuse::Echo 参考 #Telegram hashtags
duangsuse::Echo 常年利用 hastags 标记消息所含知识领域,并且,这也会为未来 Echo 频道进行简单准确的数据统计带来可能(不然,我也有其他手段,比如 NLP、统计预测)
以下是新的标签实例(不区分大小写、不能保证消息只含这些标签):
== 消息平台部分
#Telegram #zhihu #Github #so #Coolapk #book #wiki
== 注释部分
#life #China #School #Statement #lib #recommended #low #fix
#project #blog #share #Learn #paper
#dev #tech #art #meetUp #conference
#Moha #Haha
#gnu
#Microsoft #Mozilla #WeChat #QQ #Weibo #Tencent #Baidu #Ali #Qihoo
#tools #code
== 程序设计语言部分
#Kotlin #Java #JavaScript #JavaScript_ES6 #TypeScript
#Rust #Go #Swift #Dart #Crystal
#Ruby #Python #Perl #Tcl #Lua #PHP
#C #D #Cplusplus #CSharp #Objc
#Pascal #Fortran #Delphi #Ada #Basic #VisualBasic
#Scheme #Haskell #Scala #Clojure
#TeX #Graphviz
#Octave #Matlab
#Shell
(有些写出来是为了鼓励我去写,其实不一定真的写过)
== 软件平台部分
#Android #Windows #Win32 #MacOS #Java #Java_JVM #CLR #Qt #GTK #Tk #WxWidgets
#CSS #XML #JSON #KDE #Postgres #dotnet
== 软件技术领域部分
#backend #sysadmin #frontend #sysadmin_net
#OI #CS #IT #Informatics
#stat #ann #ann_dnn #machl
#math #math_linearAlgebra #math_discrete
#se #se_dia #se_ci #se_ee
#comm #net #www #web #http #html #mail #wireless
#circuit #embedded #os #db #db_relAlgebra #SQL
#bin #encoding #encoding_audio #encoding_image #encoding_video #encoding_text
#hpc #parallelism #distributed #simd #gpgpu #crypto
#pl #pl_plt #ce_vee #ce #ce_optimize #fp_monad #fp_proof #fp #oop #oop_arch #sp #parser
#algorithm #struct #lists #maps #sets
#security #security_lowlevel
#signalProc #nlp #phonetic
#cg #cg_dip #cg_3d #cg_2d #cg_lowlevel
#gui #gui_animation #gui_layouts #cli #visualization
duangsuse::Echo
#bin 然后为了证明我不比 drakeet 差,只是缺少拿来实践的时间, 我分析一下这篇文章《5分钟学会十进制转换成二进制的快速口算方法 & Java输出二进制的代码》,然后就睡觉。 当然,至于 Android 那一套,比如异步、Timer、MessageDriven、Android XML、Android Widgets、Resources、Android Gradle Build 集成、库打包、封装、Android Layouts、Views、Paint、Android Layout Animat…
#Go #Qt #Cplusplus 🤔 让我想到了
int main(int argc, char **argv) { QApplication app(argc, argv); return app.exec(); }
#task 嗯嗯,那么明天又要上学了啊... 看来本来打算完成基本的计划都无法完成了呢,那计划就只有继续讲一些理论向的东西和开发一个应用算了
+ #PLT Zero sized types、Empty type(bottom type) 的 Sum(+) 和 Product(*): 为什么要给他们起这种名字
+ #Qt 5 Widgets 开发一个支持插件的 "Dullboy" 应用,其目的在于利用和 KDE Applet / Systemd 的集成,定时启动强制锁死用户界面一段时间,让我这种“工作狂”(无褒义,仅仅是我对自己的戏称)不能随便糟蹋身体健康 的说。
+ 顺带讲一下关于传统序列解析器架构策略相关的内容(比如命令行参数解析器)
+ 回复在 #Bilibili 《黑子的篮球》 S1 里看到的一个 NOIP 同好,虽然我不是 #OI 方面的说... 也不是不可能,但现在不是
== 这些是明显做不完的
+ #PL C++ 弄一个 REPL 支持的计算器,有所谓的 MidTreeParser 抽象和 ReplLexer 这种支持 Hook 上输入事件的 Lexer
+ LLVM 开发 Toy 语言的编译器,当然是照 LLVM Cookbook 画瓢,不过我是不会抄里面的不良实践的(比如,明明是返回
+ Android 视图应用:Lime tokenize view
尝试开发一个使用 RecyclerView, Fragments, Services 的 Android 应用
应用向的人不准喷!不准喷!与你们无关!你们熟悉的我只是暂时没有时间去熟悉,也不要拿冰封哥的 CastleGame 数据库访问 show 我,比起 SQLite RDBMS,还是等会关系代数了或者说会图数据库了才能来说话!
+ Android 版本的 AllDreamWall & SDK
SDK 想做成 Maven 管理库的形式,不过不用为 Central 填写元数据,而且也只是自己发布的说
同样不准喷,真的不能喷啊... 这有什么的呢?
+ 默写一点关于 HTML4(5) 和 CSS 相关的东西,写点布局
+ 继续写完 smms.es6 (这个使用的 requests-promise-native)
+ #PLT Zero sized types、Empty type(bottom type) 的 Sum(+) 和 Product(*): 为什么要给他们起这种名字
+ #Qt 5 Widgets 开发一个支持插件的 "Dullboy" 应用,其目的在于利用和 KDE Applet / Systemd 的集成,定时启动强制锁死用户界面一段时间,让我这种“工作狂”(无褒义,仅仅是我对自己的戏称)不能随便糟蹋身体健康 的说。
+ 顺带讲一下关于传统序列解析器架构策略相关的内容(比如命令行参数解析器)
+ 回复在 #Bilibili 《黑子的篮球》 S1 里看到的一个 NOIP 同好,虽然我不是 #OI 方面的说... 也不是不可能,但现在不是
== 这些是明显做不完的
+ #PL C++ 弄一个 REPL 支持的计算器,有所谓的 MidTreeParser 抽象和 ReplLexer 这种支持 Hook 上输入事件的 Lexer
+ LLVM 开发 Toy 语言的编译器,当然是照 LLVM Cookbook 画瓢,不过我是不会抄里面的不良实践的(比如,明明是返回
nullptr
却写成返回 0
、到处使用 global linkage 的 static
变量)+ Android 视图应用:Lime tokenize view
尝试开发一个使用 RecyclerView, Fragments, Services 的 Android 应用
应用向的人不准喷!不准喷!与你们无关!你们熟悉的我只是暂时没有时间去熟悉,也不要拿冰封哥的 CastleGame 数据库访问 show 我,比起 SQLite RDBMS,还是等会关系代数了或者说会图数据库了才能来说话!
+ Android 版本的 AllDreamWall & SDK
SDK 想做成 Maven 管理库的形式,不过不用为 Central 填写元数据,而且也只是自己发布的说
同样不准喷,真的不能喷啊... 这有什么的呢?
+ 默写一点关于 HTML4(5) 和 CSS 相关的东西,写点布局
+ 继续写完 smms.es6 (这个使用的 requests-promise-native)
https://github.com/Dr-Incognito/V2Ray-Desktop/releases #qt #freedom #net V2Ray GUI
Clash 是 bundled clash binary ,但测试只支持 VMess 订阅
Clash 是 bundled clash binary ,但测试只支持 VMess 订阅
GitHub
Releases · Dr-Incognito/V2Ray-Desktop
最优雅的跨平台代理客户端,支持Shadowsocks(R),V2Ray和Trojan协议。The most elegant cross-platform proxy GUI client that supports Shadowsocks(R), V2Ray, and Trojan. Built with Qt5 and QML2. - Dr-Incognito/V2Ray-Desktop
#Qt 🤔 啊,我才知道 QTimer 默认就是 scheduleAtFixedRate ,而不需要为非 singleShot 的情况额外编程的,只需 timer->start(rate); timer->remainingTime() 就好了,真方便
audio_output
68.9 KB
#js #lib #listing #gui https://editor.datatables.net/generator/
🤔 想起了 #Qt Model/View 的 delegate 和 createEditor 什么的... 但其实从 row 建立可搜索、可排序、可编辑的 table 并不需要那么多名词吧
https://github.com/fiduswriter/Simple-DataTables
嘛,虽说是 lightweight ,其实连 Date format 都支持...
http://fooplugins.github.io/FooTable/ 感觉还是这个最好看
https://github.com/frappe/datatable 这个也支持 inline editing
https://github.com/future-architect/cheetah-grid 有创意,内带比率可视化支持
https://github.com/mleibman/SlickGrid/wiki/Examples 感觉最糟糕的一个
https://github.com/bvaughn/react-virtualized 第二糟糕的
https://github.com/ratiw/vue-table 最像 Qt 的一个... 不对,这不像 Qt
https://github.com/jiren/StreamTable.js 支持 #stream 但只能用 templating 的一个
http://swimlane.github.io/ngx-datatable/#filter Angluar 的一个
https://github.com/daniel-nagy/md-data-table#demo Material #Design 的一个,作者眼力是不是不好... README.md 那么多示例 table 放着呢
https://clusterize.js.org/ #performance #web 🤔给 <tr> 甚至 <il> <div> tag 做 chunking 的简易 js 优化
🤔 想起了 #Qt Model/View 的 delegate 和 createEditor 什么的... 但其实从 row 建立可搜索、可排序、可编辑的 table 并不需要那么多名词吧
https://github.com/fiduswriter/Simple-DataTables
嘛,虽说是 lightweight ,其实连 Date format 都支持...
http://fooplugins.github.io/FooTable/ 感觉还是这个最好看
https://github.com/frappe/datatable 这个也支持 inline editing
https://github.com/future-architect/cheetah-grid 有创意,内带比率可视化支持
https://github.com/mleibman/SlickGrid/wiki/Examples 感觉最糟糕的一个
https://github.com/bvaughn/react-virtualized 第二糟糕的
https://github.com/ratiw/vue-table 最像 Qt 的一个... 不对,这不像 Qt
https://github.com/jiren/StreamTable.js 支持 #stream 但只能用 templating 的一个
http://swimlane.github.io/ngx-datatable/#filter Angluar 的一个
https://github.com/daniel-nagy/md-data-table#demo Material #Design 的一个,作者眼力是不是不好... README.md 那么多示例 table 放着呢
https://clusterize.js.org/ #performance #web 🤔给 <tr> 甚至 <il> <div> tag 做 chunking 的简易 js 优化
GitHub
GitHub - fiduswriter/simple-datatables: DataTables but in TypeScript transpiled to Vanilla JS
DataTables but in TypeScript transpiled to Vanilla JS - fiduswriter/simple-datatables
#tool 想要用 #android
#bing
>用py 写截图复制文字的软件
推荐此脚本或者调百度云AI
>编程: 当 PrtSc 按下且剪贴板变化,PIL获取剪贴板并用 paddle OCR 复制内容
(没有 "且")
>我是要剪贴板变化时OCR ,写短点
(太长, API信息错了)
>不注释。用(for).join ,把检测变化外提为
(我不会)
(只想 open
>那你会写 #Qt 框选截图吗?
最终代码: (需要3次提示)
>编写numpy 的4x4棋盘格矩阵,黑0 白1
(构造PrettyMIDI>Instrument>Note[], 就以为语音识别的结果包含音高..)
>用正则和逆波兰, 写四则计算器
(不含parse 算法, 示例还是错的)
>请用js 设计解析组合子,写精简的 JSON Parser, 再比如解析 csv 到 [[]]
(只会split)
#py 环境配置
更新
支持系统特有包
scrcpy+OCR
在电脑上问AI答题#bing
>用py 写截图复制文字的软件
textshot chi_sim+eng
推荐此脚本或者调百度云AI
>编程: 当 PrtSc 按下且剪贴板变化,PIL获取剪贴板并用 paddle OCR 复制内容
(没有 "且")
>我是要剪贴板变化时OCR ,写短点
(太长, API信息错了)
>不注释。用(for).join ,把检测变化外提为
await for change(pyperclip.paste)
#py #code import pyperclip, paddleocr
import PIL.ImageGrab
async def changes(f):
v0=f()
while True:
if (v:=f())!=v0: yield v; v0=v
use=paddleocr.PaddleOCR(lang="ch")
#页0 每行=(box,(txt,概率))
ocr=lambda it:'\n'.join(x[1][0] for x in use.ocr(it)[0])
async for x in changes(pyperclip.paste):
if not (img:=PIL.ImageGrab.grabclipboard()):continue
s=ocr(img)
pyperclip.copy(s); print(s)
>请用PyGTK兼容 #linux 上的 PIL grabclipboard()(我不会)
(只想 open
xclip -t image/png
的输出而不用GTK)>那你会写 #Qt 框选截图吗?
最终代码: (需要3次提示)
>编写numpy 的4x4棋盘格矩阵,黑0 白1
a=np.zeros((4, 4)) #chess_board
a[1::2, ::2] = 1; a[::2, 1::2] = 1
plt.imshow(a, cmap='binary')
>请用py 实现 /dev/mice 移动时,设置ANSI控制台的光标。请写入sys.stdout ,用np.array([x,y]) 计算光标新位置
(用struct+fcntl读取了tty信息, 甚至能兼容win32)
(成功转用numpy. 但函数外提得很烂)
>编写一种mp3转mid 的py 脚本, 它能转录音高,也能为音符配对上语音识别(构造PrettyMIDI>Instrument>Note[], 就以为语音识别的结果包含音高..)
>用正则和逆波兰, 写四则计算器
(不含parse 算法, 示例还是错的)
>请用js 设计解析组合子,写精简的 JSON Parser, 再比如解析 csv 到 [[]]
(只会split)
#py 环境配置
conda install jupyter ipykernel
conda install python=3.10 pyqt PyGObject #Arch下尝鲜py10, 注意,pip不通用,qt脚本要重装
ipython kernel install --user --name=base #在venv里启动内核
conda config --set env_prompt ''
更新
pacaur -S `pacaur -Qd|grep -P 'python|jupyter-'|awk '{print $1}'|xargs`
jupyter kernelspec list
python -m ipykernel install --user --name=base
支持系统特有包
echo /usr/lib/python3.11/site-packages/ > `python -c 'import sys; [print(x)for x in sys.path]'|grep 'conda.*site-packages$'`/os.pth
Gist
pyQt 框选获取屏幕截图
pyQt 框选获取屏幕截图. GitHub Gist: instantly share code, notes, and snippets.