IscanderChe
IscanderCheJune 18, 2020, 9:45 a.m.

Залить цветом QScrollArea

День добрый.

Пытаюсь залить QScrollArea белым цветом. Делаю это следующим образом:

widget.h

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget* parent = nullptr);
    ~Widget();

private:
    QWidget* m_widget;
    QScrollArea* m_scrollArea;
    QGroupBox* m_groupe;
    QVBoxLayout* m_layout;
    QVBoxLayout* m_mainLayout;
};

widget.cpp

Widget::Widget(QWidget* parent)
    : QWidget(parent)
{
    m_widget = new QWidget(this);

    QPalette palette = m_widget->palette();
    palette.setColor(QPalette::Background, Qt::white);
    m_widget->setAutoFillBackground(true);
    m_widget->setPalette(palette);

    m_scrollArea = new QScrollArea(this);
    m_scrollArea->setWidget(m_widget);
    m_groupe = new QGroupBox(tr("Виджет"), this);
    m_layout = new QVBoxLayout;
    m_mainLayout = new QVBoxLayout;
    m_layout->addWidget(m_scrollArea);
    m_groupe->setLayout(m_layout);
    m_mainLayout->addWidget(m_groupe);
    setLayout(m_mainLayout);

    resize(200, 200);
}

Если не использовать QScrollArea, окрашенный в белый цвет виджет m_widget виден, с QScrollArea - белый виджет пропадает куда-то... Но а) m_widget нужен, поскольку планирую менять его на нужный в зависимости от вставляемого с помощью drag and drop контента и б) QScrollArea тоже необходим, чтобы была видна рамка.

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.

Do you like it? Share on social networks!

7
S
  • June 18, 2020, 11:30 a.m.
  • (edited)
  • The answer was marked as a solution.

Если тебе нужна рамка, разве не проще использовать QFrame, так и рамки из коробки менять можно
.
.
.

    IscanderChe
    • June 18, 2020, 11:57 a.m.

    Сделал так:

        m_frame = new QFrame(this);
        m_frame->setLineWidth(2);
        m_frame->setMidLineWidth(1);
    

    Рамка не показывается. Что не так?

      IscanderChe
      • June 18, 2020, 12:03 p.m.

      Разобрался. Забыл m_frame->setFrameShape(QFrame::Box) поставить.
      Спасибо!

        IscanderChe
        • June 18, 2020, 12:17 p.m.

        Теперь новая засада: ставлю setContentMargins(0, 0, 0, 0), и рамка исчезает. А мне надо, чтобы вижет заподлицо с рамкой был, а не на расстоянии.

          S
          • June 18, 2020, 3:19 p.m.
          • (edited)

          Возможно, виджет перекрывает фрейм, нужно просто поправить z-index

          Попробуй QWidget:: stackUnder() / raise() / lover()

            IscanderChe
            • June 18, 2020, 4:09 p.m.

            Никакого эффекта.

              IscanderChe
              • June 19, 2020, 4:32 a.m.

              Так получилось:

              Widget::Widget(QWidget* parent)
                  : QWidget(parent)
              {
                  m_widget = new QWidget(this);
              
                  QPalette palette = m_widget->palette();
                  palette.setColor(QPalette::Background, Qt::white);
                  m_widget->setAutoFillBackground(true);
                  m_widget->setPalette(palette);
              
                  m_widgetLayout = new QVBoxLayout;
                  m_widgetLayout->setContentsMargins(0, 0, 0, 0);
                  m_widgetLayout->addWidget(m_widget);
                  m_frame = new QFrame(this);
                  m_frame->setLineWidth(1);
                  m_frame->setMidLineWidth(0);
                  m_frame->setFrameShape(QFrame::Box);
                  m_frame->setLayout(m_widgetLayout);
                  m_frameLayout = new QVBoxLayout;
                  m_frameLayout->addWidget(m_frame);
                  m_groupe = new QGroupBox(tr("Виджет"), this);
                  m_groupe->setLayout(m_frameLayout);
                  m_mainLayout = new QVBoxLayout;
                  m_mainLayout->addWidget(m_groupe);
              
                  setLayout(m_mainLayout);
              
                  resize(200, 200);
              }
              

                Comments

                Only authorized users can post comments.
                Please, Log in or Sign up
                AD

                C ++ - Test 004. Pointers, Arrays and Loops

                • Result:50points,
                • Rating points-4
                m

                C ++ - Test 004. Pointers, Arrays and Loops

                • Result:80points,
                • Rating points4
                m

                C ++ - Test 004. Pointers, Arrays and Loops

                • Result:20points,
                • Rating points-10
                Last comments
                ИМ
                Игорь МаксимовNov. 22, 2024, 10:51 p.m.
                Django - Tutorial 017. Customize the login page to Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
                Evgenii Legotckoi
                Evgenii LegotckoiNov. 1, 2024, 12:37 a.m.
                Django - Lesson 064. How to write a Python Markdown extension Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
                A
                ALO1ZEOct. 19, 2024, 6:19 p.m.
                Fb3 file reader on Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
                ИМ
                Игорь МаксимовOct. 5, 2024, 5:51 p.m.
                Django - Lesson 064. How to write a Python Markdown extension Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
                d
                dblas5July 5, 2024, 9:02 p.m.
                QML - Lesson 016. SQLite database and the working with it in QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
                Now discuss on the forum
                m
                moogoNov. 22, 2024, 6:17 p.m.
                Mosquito Spray System Effective Mosquito Systems for Backyard | Eco-Friendly Misting Control Device & Repellent Spray - Moogo ; Upgrade your backyard with our mosquito-repellent device! Our misters conce…
                Evgenii Legotckoi
                Evgenii LegotckoiJune 25, 2024, 1:11 a.m.
                добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
                t
                tonypeachey1Nov. 15, 2024, 5:04 p.m.
                google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
                NSProject
                NSProjectJune 4, 2022, 1:49 p.m.
                Всё ещё разбираюсь с кешем. В следствии прочтения данной статьи. Я принял для себя решение сделать кеширование свойств менеджера модели LikeDislike. И так как установка evileg_core для меня не была возможна, ибо он писался…

                Follow us in social networks