• 7231阅读
  • 2回复

QTreeWidget支持可编辑后,如何实现编辑回车换行 [复制链接]

上一主题 下一主题
离线梦魇缘
 
只看楼主 倒序阅读 楼主  发表于: 2011-03-23
QTreeWidget支持可编辑后,如何实现QTreeWidgetItem中的项编辑支持回车换行,非常感谢!
离线梦魇缘
只看该作者 1楼 发表于: 2011-05-13
没有遇到过类似的问题吗?
离线XChinux

只看该作者 2楼 发表于: 2011-05-13
可以通过重新实现其keyPressEvent()来实现,下面是一个QTableView的示例,可做参考:

void TableView::keyPressEvent(QKeyEvent *event)
{
    bool bTrans = false;
    switch (event->key())
    {
        case Qt::Key_Return:
        case Qt::Key_Enter:
            bTrans = true;
        default:;
    }
    QTableView::keyPressEvent(event);
    if (!bTrans)
    {
        return;
    }
    QModelIndex idx = currentIndex();
    QWidget *wgt = indexWidget(idx);
    if (wgt != NULL)
    {
        commitData(wgt);
    }
    int iRow = idx.row();
    int iCol = idx.column();
    if (iRow == model()->rowCount() - 1)
    {
        return;
    }
    if (iCol < 4)
    {
        setCurrentIndex(model()->index(iRow, iCol + 1));
    }
    else if (iRow == model()->rowCount() - 2)
    {
        emit newRow();
    }
    else
    {
        setCurrentIndex(model()->index(iRow + 1, 0));
    }
}
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个