どのように私はQtの中QTableWidgetにデータを持つヘッダを追加するには?
-
22-09-2019 - |
質問
私はまだQtのを学んだし、私は私のQtの質問に素晴らしい、非常にタイムリーな答えを私に提供するためのSOコミュニティにお世話になっています。ありがとうございます。
私はかなり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)
です。
私は1つの潜在的な問題、また、これを行うための簡単な方法を参照してください。
まず、問題ます:
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" );
QAbstractItemModelでsetHeaderData()とheaderData()のデフォルトのimplimentationsは何もしません。することができます(はず?)(再)impliment headerData()に有用Aラベルを戻すためにます。