我还在学习Qt和我感谢多所社区为我提供很大的,非常及时解答我的Qt的问题。谢谢你。

我很困惑上添加报头到QTableWidget的想法。我希望做的是有一个包含团队成员信息表。为成员的每个row应该包含他的第一个和最后一个名字,每一个在其自己的小区,一个小区中的电子邮件地址和办公中的其他细胞。我最好有这些列上方的header将它们命名为适当。

我想简单的开始,并得到公正的头显示“最后一次”(如姓氏)。这是我的代码。

int column = m_ui->teamTableWidget->columnCount();
m_ui->teamTableWidget->setColumnCount(column+1);
QString* qq = new QString("Last");
m_ui->teamTableWidget->horizontalHeader()->model()->setHeaderData(0, 
Qt::Horizontal, QVariant(QVariant::String, &qq));

我的表被corretly呈现,但头不包含我期望的那样。它包含包含文本“1” 1个细胞

我明明做的事情很无聊这里是错的,但我失去了。我频传的文件过来,什么也没找到。

感谢任何和所有的帮助。

有帮助吗?

解决方案 3

目前谁把我领到朝着正确的地方的人的要求,我张贴我做到了这一点作为一个答案的方式,我接受它。

    m_ui->teamTableWidget->setColumnCount(m_ui->teamTableWidget->columnCount()+1);
    QTableWidgetItem* qtwi = new QTableWidgetItem(QString("Last"),QTableWidgetItem::Type);
    m_ui->teamTableWidget->setHorizontalHeaderItem(0,qtwi);

其他提示

的最简单的解决方案是setHorizontalHeaderLabels(myListOfHeaderLabels)

我看到一个潜在的问题,也是一个更简单的方法来做到这一点。

首先,问题:

QString* qq = new QString("Last"); // <- qq is a pointer to a string.
m_ui->teamTableWidget->horizontalHeader()->model()->setHeaderData(0, 
    Qt::Horizontal, 
    QVariant(QVariant::String, &qq)); // <- You take the address of a pointer, or create a handle.

我想你想这样做,而不是:

QString* qq = new QString("Last");
m_ui->teamTableWidget->horizontalHeader()->model()->setHeaderData(0, 
    Qt::Horizontal, QVariant(QVariant::String, *qq));

现在,在更简单的方法来设定的数据的报头文件:

m_ui->teamTableWidget->horizontalHeaderItem( 0 )->setText( "Last" );

有关后代:

setHeaderData()和headerData()的化QAbstractItemModel默认implimentations没有做任何事情。你可以(应该?)(重新)impliment headerData(),以返回有用的标签。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top