在專案中遇到乙個qlineedit作為密碼輸入框, 此時需要遮蔽中文輸入法, 注意它與不能輸入中文是不等價的, 不能輸入中文可以用正規表示式validator解決
試了下面幾種方法:
1.
himc _imc;
hwnd hwnd = (hwnd)this->winid();
_imc = immgetcontext(hwnd);
if (hwnd && iswindow(hwnd))
這個方法並不好用, 經過嘗試, 它只對this為window的情況適用, 當this是乙個窗體中的控制項時, 並不起作用, 而且不保證總是有用, 具體原因不清楚..
2. void setinputmethodhints(qt::inputmethodhints hints)
這個函式呼叫以後根本沒啥作用, 不管引數給什麼
3. 正確的方法
只在遮蔽輸入法的qlineedit上呼叫
setattribute(qt::wa_inputmethodenabled, false)
這是qt官方給出的是否啟用輸入法的屬性, 在assistant中說的很清楚,
qt::wa_inputmethodenabled
14enables input methods for asian languages. must be set when creating custom text editing widgets.
QLineEdit 實現ip輸入
工程目錄如下 建立乙個 基於qwidget 的空白工程,新增 c class 也就是 iplineedit.cpp 和 iplienedit.h 這兩個檔案,新新增的用於繼承 qlineedit 類重新寫乙個用於ip輸入的類 iplineedit.cpp 檔案內容 include iplineedi...
控制QLineEdit的輸入範圍
1.使用正規表示式檢驗qlineedit的輸入範圍 如下 include include qlineedit lineedit new qlineedit this qregexp regexp a za z 1 9 0 9 1 9 0 9 和 1 9 d 上面的正規表示式表示只能輸入大於0的正整數...
限制QLineEdit的數值輸入範圍
在使用qlineedit輸入數值時,經常遇到限制其範圍的需要,比如角太陽高度角範圍為 90,90 經度值範圍 180,180 方位角範圍 0,360 qt提供了qintvalidator和qdoublevalidator可以限定數值輸入範圍,如使用qintvalidator限制整數的數值範圍 例1 ...