如何用数据的报头添加到Qt的一个QTableWidget的?
-
22-09-2019 - |
题
我还在学习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(),以返回有用的标签。
不隶属于 StackOverflow