Делаю виджет — диаграмму времени, которая будет отображать посчитанные моменты времени для разных групп объектов:
Высота (количество строк) будет задаваться количеством групп. Сам виджет должен иметь фиксированную высоту и ширину, однако если групп моментов будет больше, чем возможность отобразить на виджете заданной высоты, то должен быть вертикальный скролл. Аналогично, если объектов хотя бы в одной группе больше, чем сейчас отображено, то должен быть горизонтальный скролл.
Вопрос номер ноль: Как виджету задать фиксированный размер, выходя за который появлялся бы скролл по строкам клеточек. Но если Количество этих строк умещалось бы, то отрисовка на нижней границе виджета.
Вопрос номер один: Как прикрутить скролл к моему виджету?
Вопрос номер два: Окно, в котором будет отображаться эта временная диаграмма, не будет иметь возможности ресайза, всегда постоянный размер. Нужно ли делать layout?
Пока всё выглядит так для двух групп объектов:
.h файл диаграммы:
#pragma once
#include <QWidget>
#include <qscrollarea.h>
class TimeDiagram : public QWidget {
Q_OBJECT
public:
explicit TimeDiagram(QWidget *parent = nullptr);
virtual ~TimeDiagram();
void draw( QPainter *painter);
unsigned int getRowHeight();
QScrollArea *diagramArea;
protected:
void paintEvent(QPaintEvent *event);
};
Отрисовка при создании окна:
GraphicScaleDialog::GraphicScaleDialog(OutputData *outputData, QWidget *parent) :
QDialog(parent),
ui(new Ui::GraphicScaleDialog) {
ui->setupUi(this);
data = outputData;
diagramWidget = new TimeDiagram();
diagramWidget->diagramArea = new QScrollArea(this);
unsigned int height = diagramWidget->getRowHeight() * data->outputSettings.flowQuantity;
diagramWidget->diagramArea->setGeometry(30, 50, 1080, static_cast<int>(height));
diagramWidget->diagramArea->setWidget(diagramWidget);
diagramWidget->diagramArea->setWidgetResizable(true);
}
QScrollArea* area = new QScrollArea;
area->addWidget(pointerToyourWidget);
area->show();
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Есть два класса, Товары и Отделы (департамент), и их интерфейсы (свои сеттеры и геттеры)При добавлении товара сразу можно указать, к какому...
Есть сущность (1), у которой есть ассоциации один ко многим к другим сущностям (2)
пишу программу который позволяет добавить вопрос с нескольким файлом модель состоит из этих полей