アプリケーションにQTableView
幅QAbstractTableModel
があり、サイズ変更オプションを使用して各列を異なる幅にしたいui->tableView->horizontalHeader()->setSectionResizeMode (QHeaderView::Stretch);
私のモデルでは、次のことを行います。
class rangeModel : public QAbstractTableModel {
//other code .......
QVariant rangeModel::headerData(int section, Qt::Orientation orientation, int role) const
{
if (orientation != Qt::Horizontal)
return QVariant();
if (role != Qt::DisplayRole && role != Qt::SizeHintRole)
return QVariant();
if(role == Qt::SizeHintRole)
{
switch (section) {
case 0: return QSize(58, 20);
case 1: return QSize(58, 20);
case 2: return QSize(58, 20);
case 3: return QSize(228, 20);
}
}
switch (section) {
case 0: return "PREFIXMIN";
case 1: return "PREFIXMAX";
case 2: return "VALUE";
case 3: return "PROGRESS BAR";
default: return QVariant();
}
}
だから私は自分の行のサイズを変えたいのですが、それは起こらず、何らかの理由でビューが無視され、オプションQSizeHint
がなくても機能しません。QHeaderView::Stretch
列とヘッダーのサイズを変える方法は?