Qt: как я могу сделать так, чтобы QWidget отображался в нескольких местах в моем главном окне?
У меня есть QMainWindow
с большим количеством графиков (я использую QCustomPlot
для тех). В результате каждый граф неизбежно становится довольно небольшим по размеру. Все графики на этой странице нарисованы на 1-й странице QStackedWidget
,
Чтобы обеспечить более четкое представление для каждого графика (по одному за раз), я хочу показать увеличенный вид графика, когда пользователь нажимает на него. Потенциальное решение состоит в том, чтобы иметь 2-ю страницу на QStackedWidget
в котором можно показать больший график. Вопрос заключается в том, как мне назначить выбранный график второй странице QStackedWidget
?
В качестве альтернативы, есть ли лучший способ увеличить конкретный QWidget
чтобы он занимал главное окно от начала до конца?
Как я могу позволить 2-й странице QStackedWidget
обновить его содержимое непосредственно из выбранного графика?
Есть ли пример, который я мог бы увидеть, чтобы понять, что я должен делать?
1 ответ
В дополнение к связанному вопросу, на данный момент вы можете сосредоточиться на преждевременной микрооптимизации. Меньший график будет отображаться с гораздо меньшим разрешением, поэтому он не будет выглядеть слишком хорошо, если вы взорвете его.
Если бы это был ваш собственный виджет со сложным рисунком, вы могли бы легко нарисовать растровое изображение, затем нарисовать большое растровое изображение на большом графике и уменьшить его для маленького графика. Но опять же, вы будете делать много дополнительных рисунков для всех этих маленьких графиков при случайном шансе, что они дойдут до центральной позиции. Вы можете оптимизировать это, но увеличит сложность.
Было бы все еще возможно сделать это для QCustomPlot
, но это будет не так просто, и я сомневаюсь, что попытка сделать это приведет к достойной отдаче. Так что просто создайте очень большой график, когда вам это нужно, и не беспокойтесь о производительности, прежде чем столкнетесь с проблемами с ним. Разница будет незначительной, так как графики не слишком сложны для рисования. Вы не будете обновлять один график из другого, вы просто будете использовать один и тот же набор данных в двух графиках.