Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > QScrollArea только вертикальная


Автор: wowka19 8.7.2016, 16:04
Мне нужна QScrollArea, которая предоставит полосу прокрутки только по вертикали, а по горизонтали будет вести себя как Layout, т.е. приводить ширину дочернего виджета к своей.
Как этого добиться?

Автор: wowka19 8.7.2016, 17:06
Код

class VerticalScrollArea : public QScrollArea
{
    Q_OBJECT

public:
    VerticalScrollArea(QWidget *parent = nullptr);

protected:
    void resizeEvent(QResizeEvent *ev);
};

VerticalScrollArea::VerticalScrollArea(QWidget *parent)
    :QScrollArea(parent)
{
    setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
    setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
}

void VerticalScrollArea::resizeEvent(QResizeEvent *ev)
{
    widget()->setFixedWidth(width());
    QScrollArea::resizeEvent(ev);
}


и в виджет с контентом добавил пересчет fixedHeight

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)