【问题标题】:how to create frozen footer row in QTableView如何在 QTableView 中创建冻结的页脚行
【发布时间】:2014-02-12 18:06:30
【问题描述】:

我知道有类似的问题,但没有一个有解决方案。 Qt 文档为 QAbstractScrollArea::setViewportMargins() 指定了这一点:

“将滚动区域周围的边距设置为左、上、右和下。这对于具有“锁定”行和列的电子表格等应用程序很有用。边缘空间留空;将小部件放在未使用的区域. 注意这个函数经常被QTreeView和QTableView调用,所以边距必须由QAbstractScrollArea子类实现。此外,如果要在项目视图中使用子类,它们不应调用此函数。 默认情况下,所有边距为零。"

我能够通过调用 setViewportMargins 为冻结行创建空间,但我不知道如何在该空间中放置控件。有人知道怎么做吗?

【问题讨论】:

    标签: qt qtableview


    【解决方案1】:

    您应该查看code editor example

    基本上,您只需在视口边距上放置一个小部件。当您调整 QTableView 对象的大小时,您还必须调整小部件的大小。这当然是在您的QTableView 对象的resize event 中完成的。

    在示例中是这样完成的:

    void CodeEditor::resizeEvent(QResizeEvent *e)
    {
        QPlainTextEdit::resizeEvent(e);
    
        QRect cr = contentsRect();
        lineNumberArea->setGeometry(QRect(cr.left(), cr.top(), lineNumberAreaWidth(), cr.height()));
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-21
    • 1970-01-01
    • 1970-01-01
    • 2011-01-31
    • 1970-01-01
    • 2011-08-25
    相关资源
    最近更新 更多