Как мне избавиться от этого пробела в моем QTableWidget?

Как мне избавиться от пробелов в моем приложении:

Я хотел бы избавиться от пробелов в моем QTableWidget (синяя стрелка). Как мне это сделать?

Вот код для моего приложения:

    gridLayout = QGridLayout()

    #add other widgets

    currentItemsTable = QTableWidget(4, 2)
    currentDeviceIconLabel = QLabel("Current Device Icon: ")
    self.currentDeviceIcon = QLabel()
    currentAppIconLabel = QLabel("Current App Icon: ")
    self.currentAppIcon = QLabel()
    currentTitleLabel = QLabel("Current Title: ")
    self.currentTitle = QLabel(self.getCurrentTitle())
    currentSubtitleLabel = QLabel("Current Subtitle: ")
    self.currentSubtitle = QLabel(self.getCurrentSubtitle())

    currentItemsTable.setCellWidget(0, 0, currentDeviceIconLabel)
    currentItemsTable.setCellWidget(0, 1, self.currentDeviceIcon)
    currentItemsTable.setCellWidget(1, 0, currentAppIconLabel)
    currentItemsTable.setCellWidget(1, 1, self.currentAppIcon)
    currentItemsTable.setCellWidget(2, 0, currentTitleLabel)
    currentItemsTable.setCellWidget(2, 1, self.currentTitle)
    currentItemsTable.setCellWidget(3, 0, currentSubtitleLabel)
    currentItemsTable.setCellWidget(3, 1, self.currentSubtitle)
    currentItemsTable.horizontalHeader().hide()
    currentItemsTable.resizeColumnsToContents()
    currentItemsTable.resizeRowsToContents()
    currentItemsTable.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum)
    gridLayout.addWidget(currentItemsTable, 1, 4, 8, 2)

Кроме того, как я могу получить QTableWidget, чтобы изменить размер с содержанием строки и столбца? Я не хочу никаких полос прокрутки.

1 ответ

Решение

Я думаю, что вы должны использовать это:

currentItemsTable.horizontalHeader().setStretchLastSection(True)
currentItemsTable.verticalHeader().setStretchLastSection(True)

Вы должны вызывать это после resize....toContents() и каждый раз, когда вы собираетесь изменить размер содержимого, вы должны сначала установить setStretchLastSection(False), что-то вроде:

currentItemsTable.verticalHeader().setStretchLastSection(False)
currentItemsTable.resizeRowsToContents()
currentItemsTable.verticalHeader().setStretchLastSection(True)

Или вы получите странные эффекты при изменении размера.

Другие вопросы по тегам