I found some way to solve this in table widget which I use:
@QHeaderView * header = m_ui->tableWidget->horizontalHeader();
int columnCnt = m_ui->tableWidget->columnCount();
int width = header->width()/columnCnt;
int height = header->height();
for(int i = 0; i<columnCnt; i++)
{
QTableWidgetItem * item = m_ui->tableWidget->horizontalHeaderItem(i);
if(item == NULL)
continue;
QVariant data = item->data(Qt::DisplayRole);
if (data.isValid())
{
QString text=data.toString();
item->setData(Qt::DisplayRole, "");
QPixmap original_button(width, height);
QPainter original_button_painter(&original_button);
/* QHeaderView::paintSection(&original_button_painter, QRect(0, 0, width, height), i);*/
QPixmap pix(width, height);
QPainter p(&pix);
p.drawPixmap(0, 0, original_button);
QRect new_r(0, 0, height, width);
QMatrix m;
m.translate(0, height);
m.rotate(-90);
p.setWorldMatrix(m, true);
p.drawText(new_r, Qt::AlignCenter, text);
item->setIcon(pix);
item->setSizeHint(QSize( height, width ));
}
}@
This code I place on my dialog which holds table widget in ui file. So the only one question is how to set true sizes of the text? It looks smaller then text in vertical header. Waiting for your code critic and propositions.