Новый ответ
Вам нужно установить растяжку на отдельных участках, я создал простое тестовое приложение:
![Скриншот теста](https://i.stack.imgur.com/fec4D.png)
test.cpp
#include <QtGui>
int main(int argc, char** argv)
{
QApplication app(argc, argv);
QStandardItemModel mdl(3, 3); // rows, cols
mdl.setHorizontalHeaderLabels(QStringList() << "Name" << "Size" << "Date");
mdl.setItem(0, 0, new QStandardItem("Short name"));
mdl.setItem(0, 1, new QStandardItem("25kb"));
mdl.setItem(0, 2, new QStandardItem("2011/07/05"));
mdl.setItem(1, 0, new QStandardItem("This is a long name"));
mdl.setItem(1, 1, new QStandardItem("25kb"));
mdl.setItem(1, 2, new QStandardItem("2011/07/05"));
mdl.setItem(2, 0, new QStandardItem("This is a long long long long name"));
mdl.setItem(2, 1, new QStandardItem("25kb"));
mdl.setItem(2, 2, new QStandardItem("2011/07/05"));
QTableView view;
view.setModel(&mdl);
QHeaderView* hdr = view.horizontalHeader();
hdr->setResizeMode(0, QHeaderView::Stretch);
hdr->setResizeMode(1, QHeaderView::ResizeToContents);
hdr->setResizeMode(2, QHeaderView::ResizeToContents);
view.show();
return app.exec();
}
test.pro
QT += core gui
SOURCES=test.cpp
Примечание. Важно, чтобы void QHeaderView::setResizeMode(int, ResizeMode)
вызывался, когда этот логический индекс существует, то есть когда модель, определяющая эти столбцы, присоединена к представлению.
Старый ответ
QAbstractScrollArea имеет свойство horizontalScrollBarPolicy, которое может иметь параметр ScrollBarAlwaysOff
.
Попробуйте что-то вроде:
QAbstractScrollArea* scrollArea = // ???
scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
person
Silas Parker
schedule
24.04.2012