首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QStandardItemModel & Qtableview

QStandardItemModel & Qtableview
EN

Stack Overflow用户
提问于 2013-05-17 07:01:35
回答 3查看 6.3K关注 0票数 4

我刚开始使用qt,我在QTtableview中使用了QTtableview。

请建议,

  1. 如何更改行和列标题名称。目前它显示的是1,2,3,4
  2. 如何使QStandardItemModel占据完整的Qtableview。目前,它显示在左上角。

代码语言:javascript
复制
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    model= new QStandardItemModel(4, 4);
    for (int row = 0; row < 4; ++row) {
        for (int column = 0; column < 4; ++column) {
            QStandardItem *item = new QStandardItem(QString("row %0, column %1").arg(row).arg(column));
            model->setItem(row, column, item);
        }
    }

    ui->tableView->setModel(model);

}
EN

回答 3

Stack Overflow用户

发布于 2013-05-17 08:53:58

1> model->setHorizontalHeaderItem(0, new QStandardItem(tr("Time")));

2>像这样:

代码语言:javascript
复制
for (int row = 0; row < 4; ++row)
{
    QList<QStandardItem *> rowData;
    rowData << new QStandardItem(QString("row %1, column %2").arg(row).arg(0))
    rowData << new QStandardItem(QString("row %1, column %2").arg(row).arg(1))
    rowData << new QStandardItem(QString("row %1, column %2").arg(row).arg(2))
    rowData << new QStandardItem(QString("row %1, column %2").arg(row).arg(3))
    model->appendRow(rowData);
}
票数 4
EN

Stack Overflow用户

发布于 2016-06-24 10:01:28

1-有多种方式输入一个视图的标题。我喜欢这样做:

代码语言:javascript
复制
QStandardItem *infoItem = new QStandardItem("Info");
infoItem ->setFont(heading);
infoItem ->setToolTip("Scene Object Name and Type");

QStandardItem *fileStatus = new QStandardItem();
fileStatus->setIcon(QIcon( ":/icons/fileStatus" ));
fileStatus->setToolTip("File Status displayed by ...");

QStandardItem *fileDirectory = new QStandardItem();
fileDirectory->setIcon( QIcon( ":/icons/directory" ) );
fileDirectory->setToolTip("File directory");

m_model->setHorizontalHeaderItem( 0, infoItem );
m_model->setHorizontalHeaderItem( 1, fileStatus);
m_model->setHorizontalHeaderItem( 2, fileDirectory );

2-你可以把拉伸的最后一节设置为真。这将确保每次调整表本身的大小时,您的上一列都会扩展到填充该表。

代码语言:javascript
复制
myView->horizontalHeader()->setStretchLastSection(true);

或者,您可以在所需的列上设置足够的伸长来填充表。要做到这一点,请确保setStretchLastSection设置为false。

代码语言:javascript
复制
myView->horizontalHeader()->setStretchLastSection(false);
myView->horizontalHeader()->setResizeMode(yourDesiredCol, QHeaderView::Stretch);
票数 2
EN

Stack Overflow用户

发布于 2013-05-17 08:53:17

使用setHorizontalHeaderLabels()和setVerticalHeaderLabels()或setHorizontalHeaderItem()和setVerticalHeaderItem()方法。

垂直标题是列名,水平标题是行名。

如果您想显示比简单文本(如图标或彩色文本)更多的信息,setVerticalHeaderItem非常有用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16603268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档