2011-03-24 358 views

回答

0

你可以嘗試設置虛假的功能 setClickable

QTableWidget::horizontalHeader()->setClickable(false); 

如果一切正常,那麼你可以做同樣的[verticalHeader] [2]

[2]: http://doc.qt.nokia.com/latest/qtableview.html#verticalHeader 「verticalHeader」

+0

嗨歐麥爾,謝謝你的回答。但標題需要可點擊。我忘了寫這個。 – Oli 2011-03-24 16:14:52

+0

哪個onClick函數? – yolo 2011-03-24 16:25:01

+0

self.connect(self.myTableWidget.verticalHeader(),QtCore.SIGNAL('sectionClicked(int)'),self.myFunction) – Oli 2011-03-24 16:36:12

2

tableWidget->setSelectionMode(QAbstractItemView::NoSelection); 這個屬性保存該選擇模式的視圖中進行操作。SelectionMode

或者您可能需要tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows) 該屬性保存視圖使用哪種選擇行爲。 ​​

+0

這個選項我試過了。不工作。但是,謝謝。 – Oli 2011-03-30 20:20:34

1
QTableWidget::setSortingEnabled(true); 

這消除你描述的列選擇行爲和交易它由列排序!

1

有幾種幾種方法可以做到這一點

  1. 最簡單的方法是不那麼好:)(和一切:)依賴於Qt的實現: 在表中查看其水平頭sectionPressed( INT)連接到表selectColumn(INT),所以你可以簡單地將它們斷開:((同爲確保垂直插頭)
  2. 可以ipmlement表視圖虛擬selectionCommand(常量QModelIndex &,常量QE發泄*事件)界面,返回「沒有選擇」如果事件是0(因爲它是一個0,然後同時點擊標題區)
  3. 最後最好和原來的解決方案:你可以有,然後設置你的自己selectionModels都爲表和它的標題(或標題),並重新實現所需的選擇行爲。
1

您可能希望從標題的sectionPressed信號,沿東西線斷開selectColumn插槽:

disconnect(horizontalHeader(), SIGNAL(sectionPressed(int)),this, SLOT(selectColumn(int))); 
相關問題