Qt編寫嵌入式linux輸入法/支援自定義詞語和繁體/支援wayland和watson/純QWidget/介面精美可換膚
飞扬青云發表於2024-12-05
一、功能特點
- 純QWidget編寫,原創輸入法機制,沒有任何第三方動態庫的依賴。
- 支援各種Qt版本,包括Qt4、Qt5、Qt6及後續版本。
- 支援各種編譯器,包括mingw、msvc、gcc、clang、wasm等。
- 支援各種目標平臺,包括windows、linux、macos、android、嵌入式linux等。
- 支援任意控制元件輸入,包括文字框、微調框、可編輯下拉框、表格行等,以及網頁中的輸入控制元件。
- 支援中文、英文、數字、繁體、特殊字元、字母大小寫等輸入,可以自由切換。
- 無需更改原有專案程式碼,不用任何額外程式碼,自動識別需要輸入的控制元件,彈出輸入法皮膚,不需要輸入法程式碼寫得到處都是。
- 使用極為方便,透過原始碼整合到對應專案,原始碼是一個pri元件,只要在專案的pro檔案引入即可。
- 介面極其豐富,在眾多輸入應用場景中不斷迭代完善至今。
- 介面清晰簡潔,UI美觀友好,高仿IOS輸入法,非常適合觸控裝置。
- 頂部單行文字皮膚和彈出多行多列文字皮膚選詞,支援滑動選詞。
- 具有詞彙記憶功能,之前選中過的詞語放到候選詞最前面。
- 具有自由造詞功能,可以直接開啟詞彙檔案寫入自定義片語,最高階別顯示。
- 造詞支援單個拼音多個漢字,自動調整優先順序。
- 內建數字小鍵盤,在微調框這種只需要輸入數字的地方,自動彈出數字小鍵盤,更美觀。
- 可透過設定弱屬性,控制是彈出全鍵盤的數字皮膚還是數字小鍵盤。
- 可設定回車後自動隱藏輸入法皮膚還是要執行插入回車換行符。
- 可對部分不需要輸入的輸入框設定禁用輸入法。
- 多版面字元頁面,可以自行擴充各種字元展示,可用於多語言輸入。
- 輸入法皮膚尺寸自由設定,採用佈局自適應任何解析度,同時適用於一些小解析度的裝置。
- 輸入法皮膚位置支援控制元件正下方/正上方、永遠居中、底部拉伸填充等多種方式。
- 介面自適應螢幕大小,輸入法彈出位置為控制元件底部時,當超過桌面右邊或者底部時,自動調整位置。
- 支援Qt程式嵌入的瀏覽器中的網頁中的文字框等控制元件的輸入。
- 可以分別設定皮膚按鍵字型大小、候選詞字型大小、圖示尺寸、頂部高度等。
- 屬性控制數字輸入,例如需要文字框預設彈出的是數字皮膚,則設定程式碼 ui->lineEdit->setProperty("flag", "number")。
- 屬性控制大寫輸入,例如需要文字框預設輸入字母永遠大寫,則設定程式碼 ui->lineEdit->setProperty("upper", true)。
- 自由控制需要顯示輸入法和不需要顯示輸入法,當某些控制元件不需要彈出輸入法,只需要對應不需要彈出輸入法的控制元件設定屬性noinput為真即可。例如ui->lineEdit->setProperty("noinput", true)。
- 實現了長按超過500毫秒重複執行按下的鍵的功能。例如長按退格鍵,不斷刪除。
- 支援單拼、全拼、模糊拼音輸入,智慧分頁演算法,可任意翻頁檢視漢字片語。
- 預設自帶5種皮膚顏色,可透過程式碼設定皮膚樣式,使用者也可用QSS自定義皮膚。
- 谷歌核心的輸入法引擎,品質保證,字型檔檔案1MB,不依賴資料庫,資源佔用低效率極高。支援模糊拼音,比如nh=你好。
- 可選windows專有版本,支援外部程式輸入,比如輸入到記事本、QQ聊天視窗等。
- 可選硬鍵盤同步輸入版本,外接實體鍵盤,類似搜狗輸入法彈出小的候選詞皮膚,可以快捷鍵切換輸入法狀態。
- 整個輸入法核心程式碼行數1000行左右,非常小,不會對程式體積造成負擔。
- 程式碼結構極為清晰,註釋詳細,非常容易閱讀和理解,可自行修改和擴充滿足各種需求。
二、效果圖
三、相關地址
- 檔案地址:https://pan.baidu.com/s/1ZxG-oyUKe286LPMPxOrO2A 提取碼:o05q 檔名:bin_input.zip
- 國內站點:https://gitee.com/feiyangqingyun
- 國際站點:https://github.com/feiyangqingyun