我正在使用QTableWidget
,当我打开包含QTableWidget
的对话框时,我注意到QTableWidgetis
后来被提取。
屏幕配置不同,但具有相同集QTableWidget
的其他对话框没有此问题。
我知道是什么代码造成的。
由于verticlaHeader () -> setSectionResizeMode (QHeader :: Stretch)
,它看起来像是延迟延期。但问题是,在其他对话框中同样设置QTableWidget似乎并非如此。我已经使用setSectionResizeMode
没有任何问题,但突然间我遇到了这个问题。
上面的图片不是确切的图片。因为我无法截取屏幕截图以适应时机。
更准确地说,QTableWidget似乎在图片中展开,但QTableWidget的大小不会改变。细胞的大小发生变化。根据SectionResizeMode的设置,单元格的大小很小,并且增加了qtableWidget的高度。
void MyWidget::init() {
QStringList horizontalHeader = QStringList() << "Max" << "Min";
QStringList verticalHeader = QStringList() << "Velocity[m/s]" << "Acceleration[m/s²]" << "Density[kg/m³" << "Pressure[kg/(ms²)]";
ui.PropertyTableWidget->setHorizontalHeaderLabels(horizontalHeader);
ui.PropertyTableWidget->setVerticalHeaderLabels(verticalHeader);
for (int i = 0; i < ui.PropertyTableWidget->columnCount(); ++i)
ui.PropertyTableWidget->verticalHeaderItem(i)->setTextAlignment(Qt::AlignmentFlag(Qt::AlignLeft + Qt::AlignVCenter));
ui.PropertyTableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
ui.PropertyTableWidget->verticalHeader()->setSectionResizeMode(QHeaderView::Stretch);
ui.PropertyTableWidget->horizontalHeader()->setFixedHeight(24);
ui.PropertyTableWidget->SetDelegateType(TABLE_DELEGATE_TYPE_ROW);
ui.PropertyTableWidget->setItemDelegateForRow(0, new LineEditDelegate(ui.PropertyTableWidget, -FLT_MAX, FLT_MAX, EDIT_DECIMAL, UNIT_TYPE_VELOCITY));
ui.PropertyTableWidget->setItemDelegateForRow(1, new LineEditDelegate(ui.PropertyTableWidget, -FLT_MAX, FLT_MAX, EDIT_DECIMAL, UNIT_TYPE_ACCELERATION));
ui.PropertyTableWidget->setItemDelegateForRow(2, new LineEditDelegate(ui.PropertyTableWidget, -FLT_MAX, FLT_MAX, EDIT_DECIMAL, UNIT_TYPE_DENSITY));
ui.PropertyTableWidget->setItemDelegateForRow(3, new LineEditDelegate(ui.PropertyTableWidget, -FLT_MAX, FLT_MAX, EDIT_DECIMAL, UNIT_TYPE_PRESS));
ui.PropertyTableWidget->EnableRowRemove(false);
}
答案 0 :(得分:0)
尝试一次,我希望它会起作用:
桌头服装:
horizontalHeader()->setResizeMode(QHeaderView::Fixed );
horizontalHeader()->setDefaultAlignment(Qt::AlignHCenter);
horizontalHeader()->setStretchLastSection(true);