Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » [PyQt5] Настройка высоты строк в таблице [RSS Feed]

#1 Окт. 5, 2015 18:14:40

vanvanov
Зарегистрирован: 2013-03-31
Сообщения: 252
Репутация: +  4  -
Профиль   Отправить e-mail  

[PyQt5] Настройка высоты строк в таблице

Добрый день.
Я недавно начал изучать PyQt. Сейчас создаю таблицу. Столбцы должны быть одинакового размера, высота строк настраивается под объем текста. Код такой:

#!/usr/bin/python3
import sys
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
font_family='LiberationMono'
font_size=14
width=1024
height=768
article='''Макаров      go (в сочетании с последующим герундием выражает действие, соответствующее значению герундия)                   
Габон (государство в юго-западной Африке)       присест (Баян)  заход (I cannot do it in one go - Я не могу сделать это за один заход / с первого захода Баян)  готовый к запуску
'''
article=article.splitlines()
for i in range(len(article)):
        article[i]=article[i].split('\t')
app = QApplication(sys.argv)
table = QTableWidget()
tableItem = QTableWidgetItem()
table.resize(width,height)
table.setRowCount(len(article))
table.setColumnCount(len(article[0]))
# Merge columns 1-4 of row 0
table.setSpan(0,1,1,4)
standard_col = width/len(article[0])
for i in range(len(article[0])):
        table.setColumnWidth(i,standard_col)
for i in range(len(article)):
        for j in range(len(article[i])):
                elem = QTableWidgetItem(article[i][j])
                table.setItem(i,j,elem)
                elem.setTextAlignment(Qt.AlignLeft | Qt.AlignTop)
                elem.setFont(QFont(font_family,font_size))
        table.verticalHeader().setSectionResizeMode(i,QHeaderView.ResizeToContents)
table.show()
app.exec_()
Проблема в том, что высота строк фактически изменяется (ResizeToContents) при вставке текста. После слияния колонок 1-4 строки 0 высота этой строки остается той же, что и до слияния. Я пробовал ставить ResizeToContents и до вставки текста, и вне цикла вставки, но это не помогает.

Вопрос вдогонку - а почему колонки не полностью помещаются в окно? Если с помощью стрелок переместиться в последнюю колонку, то можно заметить, что в первой колонке текст урезается на 1 символ, иногда больше.

Офлайн

  • Начало
  • » GUI
  • » [PyQt5] Настройка высоты строк в таблице[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version