Отключить область прокрутки в QTableView / QTableWidget - PullRequest
0 голосов
/ 14 января 2019

У меня в настоящее время есть QTableWidget в QScrollArea, и я хотел бы вызвать полосу прокрутки моей области прокрутки, когда это необходимо, вместо той, что в TableView. Мне удалось отключить полосу прокрутки TableView, но другая не сработала.

    auto *scroll = new QScrollArea;
    auto *scrollWidget = new QWidget;
    auto *gridLayout = new QGridLayout(scrollWidget);

    auto *table = new QTableWidget;

    table->setRowCount(3);
    table->setColumnCount(4);

    // Disable scroll bar of the table
    table->horizontalScrollBar()->setDisabled(true);
    table->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);

    gridLayout->addWidget(table);

    scroll->setWidget(scrollWidget);
    scroll->setWidgetResizable(true);
    scroll->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);

Я думаю, что это окно просмотра TableView. Возможно, идея состоит в том, чтобы настроить область просмотра в соответствии с содержимым.

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 14 января 2019

Исправлена ​​установка фиксированной ширины таблицы следующим образом:

int size{ 0 };
for (int i = 0; i < table->columnCount(); ++i)
    size += table->columnWidth(i);

table->setFixedWidth(size);
...