j
ja_ne_robot10 липня 2018 р. 17:06

Выравнивание в layout и sizePolicy

Товарищи, подскажите, пожалуйста: создаю на форме QHBoxLayout, добавляю в него виджеты с указанием выравнивания по центру, layout выставляет размер виджетов равным возвращаемому sizeHint и не реагирует на sizePolicy (пробовал разные варианты). Хочу добиться чтобы размер виджетов в layout изменялся вместе с изменением размера окна. resizeEvent переопределен чтобы виджет всегда был квадратным. Если Qt::AlignCenter не указывать, то всё работает как надо за исключением выравнивания виджетов по левому верхнему краю.


int main()
{ QHBoxLayout *l2 = new QHBoxLayout; QScatterPlot *ph1 = new QScatterPlot;
QScatterPlot *ph2 = new QScatterPlot;
QScatterPlot *ph3 = new QScatterPlot;
QScatterPlot *ph4 = new QScatterPlot;
l2->addWidget(ph1, 1, Qt::AlignCenter); l2->addWidget(ph2, 1, Qt::AlignCenter); l2->addWidget(ph3, 1, Qt::AlignCenter); l2->addWidget(ph4, 1, Qt::AlignCenter); }

QScatterPlot::QScatterPlot(QWidget *parent) : QCustomPlot(parent)
{

setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
}

void QScatterPlot::resizeEvent(QResizeEvent *event)
{
int s = qMin(event->size().width(), event->size().height());
QSize size(s, s);
resize(size);
QResizeEvent e(size, event->oldSize());
QCustomPlot::resizeEvent(&e);
event->accept();
}

QSize QScatterPlot::sizeHint() const
{
return QSize(200, 200);
}
Рекомендуємо хостинг TIMEWEB
Рекомендуємо хостинг TIMEWEB
Стабільний хостинг, на якому розміщується соціальна мережа EVILEG. Для проектів на Django радимо VDS хостинг.

Вам це подобається? Поділіться в соціальних мережах!

1
Evgenii Legotckoi
  • 10 липня 2018 р. 17:41

Добрый день!

Если вы переопределяете sizeHint и возвращаете фиксированные размеры в нём, то виджет всегда должен считаться по размеру того размера, который вы возвращаете в sieHint, по идее виджеты тогда никогда не должны реагировать на resizeEvent, как должны были бы.
Думаю, что Вам нужно создать в классе QScatterPlot, объявленные в классе переменные, отвечающие за ширину и высоту, которые будете устанавливать при событии resizeEvent, и с их помощью будете возвращать sizeHint
QSize QScatterPlot::sizeHint() const
{
  return QSize(m_width, m_height);
}


    Коментарі

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

    C++ - Тест 004. Указатели, Массивы и Циклы

    • Результат:50бали,
    • Рейтинг балів-4
    m
    • molni99
    • 26 жовтня 2024 р. 11:37

    C++ - Тест 004. Указатели, Массивы и Циклы

    • Результат:80бали,
    • Рейтинг балів4
    m
    • molni99
    • 26 жовтня 2024 р. 11:29

    C++ - Тест 004. Указатели, Массивы и Циклы

    • Результат:20бали,
    • Рейтинг балів-10
    Останні коментарі
    ИМ
    Игорь Максимов22 листопада 2024 р. 22:51
    Django - Підручник 017. Налаштуйте сторінку входу до Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
    Evgenii Legotckoi
    Evgenii Legotckoi01 листопада 2024 р. 00:37
    Django - Урок 064. Як написати розширення для Python Markdown Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
    A
    ALO1ZE19 жовтня 2024 р. 18:19
    Читалка файлів fb3 на Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
    ИМ
    Игорь Максимов05 жовтня 2024 р. 17:51
    Django - Урок 064. Як написати розширення для Python Markdown Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
    d
    dblas505 липня 2024 р. 21:02
    QML - Урок 016. База даних SQLite та робота з нею в QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
    Тепер обговоріть на форумі
    Evgenii Legotckoi
    Evgenii Legotckoi25 червня 2024 р. 01:11
    добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
    t
    tonypeachey115 листопада 2024 р. 17:04
    google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
    NSProject
    NSProject04 червня 2022 р. 13:49
    Всё ещё разбираюсь с кешем. В следствии прочтения данной статьи. Я принял для себя решение сделать кеширование свойств менеджера модели LikeDislike. И так как установка evileg_core для меня не была возможна, ибо он писался…
    9
    9Anonim25 жовтня 2024 р. 19:10
    Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…

    Слідкуйте за нами в соціальних мережах