Qt:一键后开始编辑单元格

shot

默认情况下,QTableView双击后开始编辑其中的单元格如何改变这种行为。一键后,我需要它开始编辑。

我已将组合框委托设置为该单元格。单击单元格时,仅将其选中。双击单元格时,QComboBox编辑器被激活但未展开。我希望它只需单击一下就可以扩展,就像我QComboBox通过的setCellWidget功能添加一样QTableWidget我需要使用model-view-delegate达到相同的效果。

fbucek

一键编辑您可以在正在使用的视图中重新实现mousePressEvent

void YourView::mousePressEvent(QMouseEvent *event)
{
    if (event->button() == Qt::LeftButton) {
        QModelIndex index = indexAt(event->pos());
        if (index.column() == 0) { // column you want to use for one click
            edit(index);
        }
    }
    QTreeView::mousePressEvent(event);
}

编辑时展开的QCombobox您应该在您的QItemDelegate子类中以及在最后调用showPopup设置setEditorData。

但是它有一些意想不到的行为。当鼠标离开其区域时,QComboBox消失。但是对我来说,这是优势。我可以通过单击并释放来选择其他项目。

void IconDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const
{
    Q_UNUSED(index);
    QComboBox *comboBox = qobject_cast<QComboBox*>(editor);
    // Add data
    comboBox->addItem(QIcon(":/icons/information16.png"), "info");
    comboBox->addItem(QIcon(":/icons/warning16.png"), "warning");
    comboBox->addItem(QIcon(":/icons/send16.png"), "send");
    comboBox->addItem(QIcon(":/icons/select16.png"), "select");
    comboBox->showPopup(); // <<<< Show popup here
}

一起可以快速工作。单击并按住以选择项目并在发布时提交数据(只需单击并释放)

如果要单击以显示展开的qcombobox,然后单击以选择/隐藏,我暂时不知道解决方案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

单元格编辑后如何维护JTable单元格渲染

单元格编辑开始时如何消除表格中的所有工具提示?

如何防止JTable单元格在某些按键上开始编辑?

检查单元格后如何停止DataGridView编辑?

QTableWidget:检测单元格开始编辑的信号

在extjs classic网格中开始单元格编辑

更改当前单元格后,C#datagridview单元格值编辑被撤消

VBA循环到15-20个网址后到达下一个网址,它会开始覆盖同一单元格中的数据。为什么在某些网址后开始将数据放到错误的单元格上?

清除一个单元格后在Excel中清除表格中的单元格

使用一键编码将单元格值设置为“列”

具有自定义单元格的TableView不会开始编辑

一键点击特定单元格即可触发宏

获得焦点后,Datagrid编辑单元格

JTable右键单击复制/粘贴菜单以一键复制单元格数据

单击一个单元格后,UICollectionView移动单元格将还原

错误发生后如何在DataGrid中编辑下一个单元格?

具有多个单元格附件按钮的表格视图应一键打开和关闭弹出窗口

避免单击两次以开始在Backgrid中编辑布尔(复选框)单元格

IE11的jqGrid问题-用户从可编辑单元格中跳出时,第一键输入忽略

满足某些条件时,将字符串单元格合并到唯一键上

编辑单元格后编辑/更新JTable

在QTableView中编辑单元格后使用TAB键前进时,如何避免使用编辑模式?

完成后验证单元格编辑

DatePickerCellEditor 重置单元格编辑开始和停止的时间

如何在 DataGrid 页面加载时聚焦并开始编辑第一行的第一个单元格

Cocoa:在编辑文本单元格 (NSTextField) 后收到通知并在 Swift 4 的 NSTableView 中添加文本单元格后开始编辑文本单元格?

在 TableView 中编辑单元格后更新 ObservableList

编辑内容后如何更改单元格背景?

根据同一行单元格的值停止编辑单元格