QTableWidget で QHeaderView (Horizontal) のテキストを変更しようとしています。
最初の質問: QTableWidgetItem のように編集可能に設定することは可能ですか?
2 番目の質問: それができない場合、どうすればそれを行うことができますか? 次のように再描画しようとしました:
void EditableHeaderView::paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const
{
painter->save();
QHeaderView::paintSection(painter, rect, logicalIndex);
painter->restore();
painter->setPen(Qt::SolidLine);
painter->drawText(rect, Qt::AlignCenter, m_sValues[logicalIndex]);
}
しかし、ヘッダー インデックスはテキストの後ろに描画されます。
私が試した別の解決策は次のとおりです。
void EditableHeaderView::mySectionDoubleClicked( int section )
{
if (section != -1) // Not on a section
m_sValues[section] = QInputDialog::getText(this, tr("Enter a value"), tr("Enter a value"), QLineEdit::Normal, "");
QAbstractItemModel* model = this->model();
model->setHeaderData(section, this->orientation(), m_sValues[section]);
this->setModel(model);
}
しかし、それはうまくいきません...
誰かが解決策を持っていることを願っています。
ありがとうございました !