Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Larry от Март 19, 2016, 10:30



Название: [РЕШЕНО]установка размера QWidget
Отправлено: Larry от Март 19, 2016, 10:30
Добрый день, форумчане.
Создал класс унаследованный от QWidget и переопределил метод sizeHint(). Размер возвращается правильный, но размер по высоте ячейки не изменяется, только по ширине подстраивается. В чем может быть проблема?
Вот так задаю содержимое и размер, где m_item это QLabel:
Код:
void QStatusItem::setContent(const QString& name)
{
    QSize size_item;

    if(m_role == QIconRole)
    {
        size_item = m_item->pixmap()->size();

        m_item->setPixmap(QPixmap(name));
    }
    else
    {
        QFont        font = m_item->font();
        QFontMetrics fm(font);
        int          length = fm.width(name)*1.2;

        size_item = QSize(length, fm.height()*1.2);

        m_item->setAlignment(Qt::AlignCenter);
        m_item->setText(name);
    }

    setFixedSize(size_item);
}
Этот виджет потом устанавливается в ячейку QTableWidget через setCellWidget();


Название: Re: установка размера QWidget
Отправлено: Larry от Март 19, 2016, 10:55
Попробовал добавить иконку размер 16х16. На изображении видно, что размер ячейки превышает необходимые размеры.


Название: Re: установка размера QWidget
Отправлено: Larry от Март 20, 2016, 12:12
Для нормального отображения надо было поменять в виджете setFixedSize() на resize().