Qt-Based Embedded Linux Input Method: Custom Word Support, Traditional Chinese, Wayland and Watson Compatibility, Pure QWidget, Beautiful and Skinnable Interface

1. Features

  1. Written entirely in QWidget, featuring an original input method mechanism with no dependencies on any third-party dynamic libraries.
  2. Supports various versions of Qt, including Qt4, Qt5, Qt6, and later versions.
  3. Compatible with various compilers, including mingw, msvc, gcc, clang, wasm, etc.
  4. Supports various target platforms, including Windows, Linux, macOS, Android, and embedded Linux.
  5. Supports input from any control, including text boxes, spin boxes, editable combo boxes, table rows, and input controls in web pages.
  6. Supports input in Chinese, English, numbers, Traditional Chinese, special characters, and letter case switching.
  7. No need to change existing project code or add any extra code; it automatically recognizes the controls that require input and pops up the input method panel without cluttering the code with input method logic.
  8. Extremely convenient to use; it can be integrated into the corresponding project through source code, which is a pri component that can be included in the project’s pro file.
  9. The interface is rich in features and has been continuously iterated and improved across various input application scenarios.
  10. Clear and concise interface, aesthetically pleasing UI, highly resembles iOS input methods, making it very suitable for touch devices.
  11. Top single-line text panel and pop-up multi-line multi-column text panel for word selection, supporting swipe selection.
  12. Includes vocabulary memory functionality, placing previously selected words at the front of the candidate list.
  13. Features a custom word creation function, allowing users to directly open vocabulary files to write custom phrases, displayed at the highest priority.
  14. Supports single pinyin with multiple Chinese characters, automatically adjusting priority.
  15. Built-in numeric keypad that automatically pops up in spin boxes where only numbers are needed, enhancing aesthetics.
  16. Can control whether to pop up a full keyboard numeric panel or a numeric keypad through settings.
  17. Can set the input method panel to automatically hide after pressing Enter or to execute an insert line break.
  18. Can disable the input method for certain input boxes that do not require input.
  19. Multi-layout character pages can be expanded to display various characters, suitable for multilingual input.
  20. The input method panel size can be freely set, adopting layouts that adapt to any resolution, also suitable for devices with lower resolutions.
  21. The position of the input method panel supports various placements, such as directly below/above the control, always centered, or stretched to fill the bottom.
  22. The interface adapts to screen size; when the input method pops up below the control and exceeds the right or bottom of the desktop, it automatically adjusts its position.
  23. Supports input in text boxes and other controls within web pages embedded in Qt applications.
  24. Can separately set the font size of panel keys, candidate word font size, icon size, top height, etc.
  25. Property control for numeric input, for example, if a text box should default to a numeric panel, set the code ui->lineEdit->setProperty(“flag”, “number”).
  26. Property control for uppercase input, for example, if a text box should always input uppercase letters, set the code ui->lineEdit->setProperty(“upper”, true).
  27. Freely control which input methods to display and which not to; for controls that do not require the input method to pop up, simply set the property noinput to true, e.g., ui->lineEdit->setProperty(“noinput”, true).
  28. Implements a long press feature that repeats the key press after 500 milliseconds, e.g., long pressing the backspace key continuously deletes.
  29. Supports single pinyin, full pinyin, and fuzzy pinyin input with an intelligent paging algorithm, allowing users to flip through Chinese word groups at will.
  30. Comes with 5 default skin colors, and users can set skin styles through code or customize skins using QSS.
  31. Utilizes a Google kernel input method engine, ensuring quality, with a dictionary file size of 1MB, no database dependencies, low resource usage, and high efficiency. Supports fuzzy pinyin, e.g., nh=你好.
  32. Optional Windows-specific version that supports input from external programs, such as Notepad, QQ chat windows, etc.
  33. Optional hard keyboard synchronized input version, allowing external physical keyboards to pop up a small candidate word panel similar to Sogou input method, with shortcut keys to switch input method status.
  34. The entire core code of the input method consists of about 1000 lines, making it very small and not burdening the program size.
  35. The code structure is extremely clear, with detailed comments, making it very easy to read and understand, allowing for modifications and expansions to meet various needs.

2. Effect Pictures

Qt-Based Embedded Linux Input Method: Custom Word Support, Traditional Chinese, Wayland and Watson Compatibility, Pure QWidget, Beautiful and Skinnable Interface
Insert image description here

3. Related Links

  1. File link:https://pan.baidu.com/s/1ZxG-oyUKe286LPMPxOrO2A Extraction code: o05q File name: bin_input.zip
  2. Domestic site:https://gitee.com/feiyangqingyun
  3. International site:https://github.com/feiyangqingyun

Leave a Comment