0
我使用的是QTableWidget
,我用純文本項目填充它。如果我選擇一個單元格並按下一個鍵,則選擇將變爲一個單元格,該單元格的按鍵爲其起始字母。我如何禁用此行爲?在QTableWidget中禁用鍵盤搜索
我使用的是QTableWidget
,我用純文本項目填充它。如果我選擇一個單元格並按下一個鍵,則選擇將變爲一個單元格,該單元格的按鍵爲其起始字母。我如何禁用此行爲?在QTableWidget中禁用鍵盤搜索
您需要定義您自己的繼承QTableWidget類的TableWidget類,並用空實現覆蓋虛擬keyboardSearch()函數。這將禁用鍵盤搜索功能。
class MyTableWidget : public QTableWidget
{
...
public:
virtual void keyboardSearch(const QString& search) {};
...
};
是的,這是我需要的功能。但我試着避免從QTableWidget繼承。目前我使用Qt設計器創建了表並安裝了一個eventFilter。是否有可能通過事件捕捉「keyboardSearch」? – norca
這也適用,但通過過濾鍵盤事件,您可能會干擾QTableWidget的其他狀態(例如編輯狀態),而您不想過濾鍵盤事件。你最終可能會用相當複雜的代碼來做正確的事情。乾淨和最安全的方法是覆蓋keyboardSearch()。很容易,您不需要做比我在代碼示例中做的更多的事情,並且一旦完成,您就可以在Qt Designer中使用您的類。這很容易通過右鍵單擊Qt Designer中的小部件中的QTableWidget並選擇「Promote to ...」來實現。 –