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