Форум сайта python.su
Здравствуйте. Пытаюсь создать небольшую таблицу в углу окна, но она занимает всё доступное место. При задании ширины столбцов и высоты строк введённые данные собираются в левый-верхний угол таблицы, однако сама таблица не уменьшается. Как явно задать её размер?
Код:
gen=QTableWidget(3, len(dic))#dic - словарь gen.verticalHeader().hide() gen.horizontalHeader().hide() gen.setRowHeight(0, 15) gen.setRowHeight(1, 15) gen.setRowHeight(2, 15) t=0 for n in range(len(dic)): d=dic.popitem() gen.setColumnWidth(t, 15) b=QTableWidgetItem(str(d[0][0])) b.setFont(QFont("Helvetica", 5)) b.setTextAlignment(Qt.AlignHCenter) gen.setItem(0, t, b) b=QTableWidgetItem(str(d[0][1])) b.setFont(QFont("Helvetica", 5)) b.setTextAlignment(Qt.AlignHCenter) gen.setItem(1, t, b) b=QTableWidgetItem(d[1]) b.setFont(QFont("Helvetica", 5)) b.setTextAlignment(Qt.AlignHCenter) gen.setItem(2, t, b) t+=1 frame.addWidget(gen)
Офлайн
Задал размеры с помощью 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)
Офлайн