Python 我只想使用pyqt5在QTableWidget中单击第一列

Python 我只想使用pyqt5在QTableWidget中单击第一列,python,pyqt,pyqt5,qtablewidget,Python,Pyqt,Pyqt5,Qtablewidget,我有两列的QTableWidget。我想要的只是第一列可点击或可选择,其他列不应该 在下面的示例中,我只希望会话列是可单击的,而不是归档对象列 防止某些项目发出单击信号的一种可能的解决方案可能是重写mouseXEvents方法来重写默认行为,但这可能会导致问题,而一种简单的解决方案是在插槽中进行过滤: def _cellClicked(self, row, column): # Row and Col came directly from the click if colu

我有两列的QTableWidget。我想要的只是第一列可点击或可选择,其他列不应该

在下面的示例中,我只希望会话列是可单击的,而不是归档对象列


防止某些项目发出单击信号的一种可能的解决方案可能是重写mouseXEvents方法来重写默认行为,但这可能会导致问题,而一种简单的解决方案是在插槽中进行过滤:

def _cellClicked(self, row, column): 
    # Row and Col came directly from the click 
    if column == 0:
        item = self.JobTW.item(row, col) # Will assign the values 
        if item is not None:
            print("The session Nnumber is {} ".format(item.text()))
在上述情况下,列仍处于选中状态,如果不希望出现这种行为,可以使用委托:

class NonSelectableDelegate(QStyledItemDelegate):
    def editorEvent(self, event, model, option, index):
        return index.column() != 0

可点击还是可选择?它们是两个不同的概念。我使用第一列获取单击单元格的int值,然后我有一个处理该值的逻辑。我想阻止用户单击第二列。您尚未回答我的问题,能否显示为单击而实现的代码部分,您是否使用了任何信号?谢谢Eyllanesc,我不希望列中的任何行可单击。def _cellClicked(self,row,col):#row和col直接来自click item=self.JobTW.item(row,col)#将分配打印值(“会话编号为{}”。格式(item.text()))clickable对您意味着什么?你也没有提供我所要求的。
def _cellClicked(self, row, column): 
    # Row and Col came directly from the click 
    if column == 0:
        item = self.JobTW.item(row, col) # Will assign the values 
        if item is not None:
            print("The session Nnumber is {} ".format(item.text()))
class NonSelectableDelegate(QStyledItemDelegate):
    def editorEvent(self, event, model, option, index):
        return index.column() != 0
delegate = NonSelectableDelegate(self.JobTW)
self.JobTW.setItemDelegate(delegate)