gravatar

Limitation of widget.system(...).outputString

DashboardWidgets 看到的討論,也讓我覺得在寫 Widget 時奇怪的地方有個答案。

This is a major flaw in the widget.system design where the output can only be less than 4096bytes (4k).......It's a huge pain in the ass and it took me many hours to find out the problem. Considering the documentation on widget.system makes no mention of this utterly ridiculous limitation. I hope this helps you all stuck with this issue.
總而言之,要取得回傳的字串,不能超過 4KB。否則 widget.system 所執行的程式執行完畢後, widget 就 hang 在那邊不能動,只能 close。因為我在寫 StarDict 的 widget 版本,只要是簡單的字就正常,太多解釋的英文字,因為有 cdict、朗文、牛津、xdict 這些字典檔,加一加很快超過 4KB,然後 widget 就掛了。
不過拿掉一些字典似乎不是治本的方法,比如說牛津雖然內容很多,但是拿掉了,難保以後其他字典查出來不會超過 4KB,可能還是照樣 hang 住不能動。