【问题标题】:How to set row height of QTableView?QTableView如何设置行高?
【发布时间】:2013-10-10 19:32:44
【问题描述】:

我有QTableViewQAbstractTableModel。我要求行的高度等于 24。我知道这样做的唯一方法是调用 QTableView::setRowHeight。由于模型是动态的,它可能会添加新行,但我不想每次添加新行时都调用setRowHeight

如何配置 QTableView 使其对新添加的行使用相同的高度,或者可以向模型发送行的高度?

【问题讨论】:

    标签: c++ qt row qtableview qabstracttablemodel


    【解决方案1】:

    对于 Qt 版本

    QHeaderView *verticalHeader = myTableView->verticalHeader();
    verticalHeader->setResizeMode(QHeaderView::Fixed);
    verticalHeader->setDefaultSectionSize(24);
    

    对于 Qt 版本 >= 5 使用

    QHeaderView *verticalHeader = myTableView->verticalHeader();
    verticalHeader->setSectionResizeMode(QHeaderView::Fixed);
    verticalHeader->setDefaultSectionSize(24);
    

    如果该功能不适用于垂直标题,您可能必须在每次添加新行时调用 setRowHeight()

    【讨论】:

    • 我认为最好给与函数名称不同的指针命名,否则您可能会遇到名称冲突,例如如果你从 QTableView 构造函数 QHeaderView *vh = myTableView->verticalHeader();
    • 如果verticalHeader已经在作用域内,那么直接调用setResizeModesetDefaultSectionSize就可以了,不用担心变量遮蔽,也不需要复制本地指针。跨度>
    • QHeaderView 限制了传递给setDefaultSectionSize 的值,因此您可能需要在设置默认大小之前调用setMinimumSectionSizesetMaximumSectionSize
    猜你喜欢
    • 2019-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-27
    • 1970-01-01
    • 2012-04-30
    • 2023-03-14
    • 1970-01-01
    相关资源
    最近更新 更多