我有一个QTableWidget,我想禁用单击行或列标题时选择行或列的行为。
有谁知道如何禁用此行为?
修改 标题需要保持可点击状态,因为需要使用onClick功能。
答案 0 :(得分:2)
tableWidget->setSelectionMode(QAbstractItemView::NoSelection);
此属性保存视图操作的选择模式。SelectionMode
或许你需要tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows )
此属性保存视图使用的选择行为。
SelectionBehavior
答案 1 :(得分:1)
QTableWidget::setSortingEnabled(true);
这消除了您描述的列选择行为,并将其交换以按列排序!
答案 2 :(得分:1)
有几种方法可以做到这一点
答案 3 :(得分:1)
您可能希望将selectColumn插槽与标头的sectionPressed信号断开连接,其中包括以下内容:
disconnect(horizontalHeader(), SIGNAL(sectionPressed(int)),this, SLOT(selectColumn(int)));
答案 4 :(得分:0)
您可以尝试将false设置为函数setClickable
QTableWidget::horizontalHeader()->setClickable(false);
如果这样做,那么你可以对[verticalHeader] [2]
做同样的事情 [2]:http://doc.qt.nokia.com/latest/qtableview.html#verticalHeader“verticalHeader”
答案 5 :(得分:0)
我知道这个问题的答案。
disconnect(yourTableWidget->horizontalHeader(), SIGNAL(sectionPressed(int)),yourTableWidget, SLOT(selectColumn(int)));
答案 6 :(得分:-1)
如果Qt for Python是可以接受的,那么这样做可以为我工作:
def setModel(self, model):
super().setModel(model)
self.horizontalHeader().sectionPressed.disconnect()
显然,信号已在setModel
中连接。我只是断开了一切连接。