为什么';t QTableView单元格在我单击它时是否聚焦?

为什么';t QTableView单元格在我单击它时是否聚焦?,qt,focus,qtableview,qstyleditemdelegate,Qt,Focus,Qtableview,Qstyleditemdelegate,我创建了一个QTableView,并设置了一个委托,该委托使用滑块编辑第2列中的单元格。我对第2列中的所有单元格调用openpersisteneditor: MinMaxSliderDelegate *minMaxSliderDelegate = new MinMaxSliderDelegate(this); table = new QTableView(); table->setModel(new ServoConfiguration(this)); table->setItemD

我创建了一个
QTableView
,并设置了一个委托,该委托使用滑块编辑第2列中的单元格。我对第2列中的所有单元格调用
openpersisteneditor

MinMaxSliderDelegate *minMaxSliderDelegate = new MinMaxSliderDelegate(this);
table = new QTableView();
table->setModel(new ServoConfiguration(this));
table->setItemDelegate(minMaxSliderDelegate);
for(int r=0; r<table->model()->rowCount(); r++) {
    table->openPersistentEditor(table->model()->index(r,2));
}
我的问题是,我需要知道用户何时使用滑块编辑值(它应该有焦点)。我发现,如果我从表格单元格的左侧点击滑块,滑块将成为
table->selectionModel()->currentIndex()返回的当前项但是,如果单击滑块,当前项目不会更改。我还发现,虽然我可以从单元格的左侧进入滑块,但无法从滑块中移出

我肯定我错过了一些简单的东西,但我会感谢一些帮助


如果有关系,我在其构造函数中为滑块设置了StrongFocus,滑块列的
QModelView
标志为:
Qt::ItemIsSelectable | Qt::ItemIsEditable | Qt::ItemIsEnabled

很抱歉,我无法说出回答您问题的确切代码。我只是觉得这可能与
QRect
有关

void QTableView::setSelection(const QRect&rect,QItemSelectionModel::SelectionFlags)

QWidget *MinMaxSliderDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const {

if (index.column()==2) {

    MinMaxSlider *editor = new MinMaxSlider(Qt::Horizontal, index.row(), parent);
    editor->setAutoFillBackground(true);
    editor->setFocusPolicy(Qt::StrongFocus);
    editor->setMinimum(750);
    editor->setMaximum(2000);
    editor->setMinValue(1000);
    editor->setMaxValue(1500);
    connect(uiObj, SIGNAL(setMinToCurrentValue(int)), editor, SLOT(setMinValueToCurrentValue(int)));
    connect(uiObj, SIGNAL(setMaxToCurrentValue()), editor, SLOT(setMaxValueToCurrentValue()));

    return editor;
}

return QStyledItemDelegate::createEditor(parent, option, index);