pyqt獲取輸入欄 輕量級Qt鍵盤 中文輸入

2021-10-14 00:11:53 字數 1651 閱讀 9263

在原有的鍵盤基礎上新增中文輸入功能。

中文輸入候選欄chinesewidget使用qlistwidget和樣式表實現:

settext輸入對應拼音字母,即會載入符合的拼音中文。pressedchanged訊號函式即為當按鍵按下,傳遞對應的中文。

class chinesewidget : public qlistwidget ;
設定qlistwidget:

setfocuspolicy(qt::nofocus);

/* 設定為列表顯示模式 */

setviewmode(qlistview::listmode);

/* 從左往右排列 */

setflow(qlistview::lefttoright);

/* 遮蔽水平滑動條 */

sethorizontalscrollbarpolicy(qt::scrollbaralwaysoff);

/* 遮蔽垂直滑動條 */

setverticalscrollbarpolicy(qt::scrollbaralwaysoff);

/* 設定為畫素滾動 */

sethorizontalscrollmode(qlistwidget::scrollperpixel);

/* 設定滑鼠左鍵拖動 */

qscroller::grabgesture(this, qscroller::leftmousebuttongesture);

/* 設定樣式 */

setstylesheet(r"(

qlistwidget

qlistwidget::item

qlistwidget::item:hover

qlistwidget::item:selected

qlistwidget::item:selected:!active

)");

字型檔載入在qmap> >容器中。

qfile pinyin(":/chineselib/pinyin");

if (! pinyin.open(qiodevice::readonly))

while (! pinyin.atend())

部分字型檔內容預覽:

安a

按a愛a

阿a暗a

啊a埃a

礙a凹a

奧a岸a

矮a案a

俺a

取拼音首字母索引,再匹配中文。

const qlist> &tmp = m_data[text.left(1)];

for (const qpair&each : tmp)

1. 輕量級qt鍵盤-介紹篇

2. 通過索引優化查詢效能

PyQT5 009 輸入校驗器

說明 qlineedit控制項的輸入校驗器 限制只能輸入整數 浮點數或滿足一定條件的字串。校驗器校驗器 描述qintvalidator對輸入的整數文字進行校驗,可設定範圍 qdoublevalidator對輸入的浮點數文字進行校驗,可設定範圍 精度 qregexpvalidator使用自定義的正規表...

獲取通知欄高度

之前上網找了很多方法,想獲取到通知欄的高度.但都不行.有時應用做成全屏確實不方便,例如用在一些平板上,那些該死的平板的虛擬按鍵和通知欄是放在一起的.這時候就需要獲取他的高度了.如下,還是謝謝我舊公司的高手程式猿.將自己之前發在eoe論壇的帖子copy過來而已,順便把樓下的一同分享的也搬過來.這是自己...

PyQt503 選單和工具欄

選單式位於選單欄的一組命令操作。工具欄是應用窗體中由按鈕和一些常規命令操作組成的元件。qmainwindow類提供了乙個應用主視窗。預設建立乙個擁有狀態列 工具欄和選單欄的經典應用視窗骨架。狀態列是用來顯示狀態資訊的元件。import sys class example qmainwindow de...