之前steam改版後,遊戲時的中文輸入又出了問題,至少我們沒辦法在它的overlayer中輸入,非得切換視窗後才行。
然後今天我很無聊的測了一些小東西後想到這件事情,回頭測試一下,嗯,總算搞定了。
不過在星海2上我還是碰上一樣的問題,嗯,不過是個人的小問題就是了。
因為我自從又用了linux後就覺得gcin這個輸入法(框架)很好用,所以就算回windows後還是裝了一個。
不過因為它某些行為和windows內建的有所差異(我猜啦),結果有時是無法正常輸入文字的。
雖然說基本上只有在遊戲的時候才會出包,但對一個愛玩的人來說是一項麻煩就是了。
今天測的小東西是Qt中的QInputMethodEvent,如同字面所說的一般,它是輸入法事件。
這一事件只有在我們使用非拉丁字母的鍵盤時才會被送入。
稍微觀測它的內容後,我大概得出了一部份資訊的意義:
attributes()
在開始輸入和輸入中會出現
第一個「屬性」會顯示編輯區中文字的總長度(length),也就是共有多少個字可以改。(對新注音來說是同音字)
而第二個屬性則會顯示正在輸入的字,它在編輯區中的位置(start)和長度(length)。
commitString()
輸出的文字
preeditString()
編輯區中的文字
replacementStart(), replacementLength()
不管怎麼試都是0,可能有其它用處
後來我找到了
Input Panel Example,這看起來是QInputMethodEvent一個重要的運用之一,不過目前我是沒想到什麼東西。