Задал размеры с помощью Widget'а. Всё работает, но это решение смахивает на костыль: класть таблицу в Layout, а его в Widget, а последний уже куда надо. Нет ли какого-либо более простого решения?
Код:
def Print_Creature(self, creature, frame):
dic=creature.gene.copy()
gen=QTableWidget(3, len(dic))
gen.verticalHeader().hide()
gen.horizontalHeader().hide()
gen.setVerticalScrollBarPolicy(1)
gen.setHorizontalScrollBarPolicy(1)
font=QFont("Helvetica", 5)
box=QWidget()
box.setFixedHeight(65)
box.setFixedWidth(16*len(dic))
box.setFont(QFont("Helvetica", 5))
boxL=QHBoxLayout()
gen.setRowHeight(0, 15)
gen.setRowHeight(1, 15)
gen.setRowHeight(2, 15)
iterator=0
for n in range(len(dic)):
item=dic.popitem()
gen.setColumnWidth(iterator, 15)
TableWidgetItem=QTableWidgetItem(str(item[0][0]))
TableWidgetItem.setFont(font)
gen.setItem(0, iterator, TableWidgetItem)
TableWidgetItem=QTableWidgetItem(str(item[0][1]))
TableWidgetItem.setFont(font)
gen.setItem(1, iterator, TableWidgetItem)
TableWidgetItem=QTableWidgetItem(item[1])
TableWidgetItem.setFont(font)
gen.setItem(2, iterator, TableWidgetItem)
iterator+=1
boxL.addWidget(gen)
box.setLayout(boxL)
frame.addWidget(box)
Кстати, box.minimumSize () при таком подходе всё равно выдаёт значения на порядок больше, чем размеры, занятые ячейками.