QTableWidget соблюдает диапазон при определении размера содержимого - PullRequest
0 голосов
/ 04 сентября 2018

Если у меня есть QTableWidget, и я установил диапазон столбцов ячейки, используя setSpan, Qt изменяет размер таблицы так, как если бы содержимое ячейки целиком находилось в первом столбце расширенной ячейки.

from PyQt5 import QtWidgets, QtCore
import sys

class myMainWindow(QtWidgets.QMainWindow):
    def __init__(self):
        super(myMainWindow, self).__init__()
        tableBoxWidget = QtWidgets.QWidget(self)
        tableBox = QtWidgets.QHBoxLayout(tableBoxWidget)
        self.setCentralWidget(tableBoxWidget)
        self.setMinimumWidth(750)
        tableBoxWidget.setContentsMargins(20,20,20,20)

        testTable = QtWidgets.QTableWidget(tableBoxWidget)
        tableBox.addWidget(testTable)

        testTable.setFocusPolicy(QtCore.Qt.NoFocus)
        testTable.setSelectionMode(QtWidgets.QAbstractItemView.NoSelection)

        testTable.setRowCount(3)
        testTable.setColumnCount(2)

        # setting column 1 resize to contents
        testTable.horizontalHeader().setStretchLastSection(False)
        testTable.horizontalHeader().setSectionResizeMode(QtWidgets.QHeaderView.ResizeToContents)

        longString = "abcdefghijklmnopqrstuvwxyz"
        shortString = "abc"

        #first row
        testTable.setItem(0, 0, QtWidgets.QTableWidgetItem(shortString))
        testTable.setItem(0, 1, QtWidgets.QTableWidgetItem(longString))

        #second row, two-column span
        testTable.setSpan(1, 0, 1, 2)
        testTable.setItem(1, 0, QtWidgets.QTableWidgetItem(longString))

        #third row, same as first
        testTable.setItem(2, 0, QtWidgets.QTableWidgetItem(shortString))
        testTable.setItem(2, 1, QtWidgets.QTableWidgetItem(longString))

        self.show()



app = QtWidgets.QApplication(sys.argv)
window = myMainWindow()
app.exec_()

Но есть ли способ заставить Qt учитывать дополнительное пространство, доступное для составной ячейки?

actual-v-desired-qtablewidget-span-sizing

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...