2012-04-05 57 views
2

默認情況下,編輯QTable中的項目將選擇單元格內的所有文本。我想避免這種情況。但是,我似乎無法找到發生這種情況的地方。防止QTable選擇編輯中的所有文本

我寫了一個簡單的自定義委託,它繼承自QStyledItemDelegate,並返回一個自定義對象,它簡單地繼承自QLineEdit。在這些課程中,我嘗試了一些我認爲可以做「訣竅」的組合,例如禁用QLineEdit::focusInEvent(),指定我的QLineEdit的選擇,但沒有任何效果。

我得到的最接近的是,當我單擊一個單元格時,我設置了我想要的選定文本。但在點擊單元格的時刻到執行自定義選擇的時刻之間,無論如何都要選擇整個文本,這是我想要避免的。

有什麼想法?謝謝,

回答

2

編碼自定義QLineEdit的是這樣的:

class MyLineEdit : public QLineEdit { 
public: 
    MyLineEdit(QWidget*parent=0) : QLineEdit(parent) 
    {} 

    void showEvent(QShowEvent*) 
    { 
    deselect(); 
    setSelection(1,2); // should be configurable 
    } 
}; 

並將其設置爲編輯器部件,我可以雙擊單元格並獲得線編輯與無任何閃爍一些預先選定的文本。無論如何,整個單元格在雙擊中選中,不知道這是否可以接受。

+0

這個伎倆。謝謝! – piwi 2012-04-06 07:29:55