У меня сложный виджет с множеством различных подвиджетов, например, подклассы QLabel.Я хочу напечатать этот виджет, но, очевидно, я не хочу печатать фон, я хочу печатать с разными цветами текста или иметь слегка измененный стиль рамок.
Поскольку я действительно не хочу перебиратьвсе подвиджеты со специальной функцией «печать», которые мне нужно было бы прикрепить ко всем виджетам (как добавить «печать» в QLabel?), я хотел бы использовать paintEvent.
Если у меня есть иерархияMyWidget -> производный от -> некоторый QWidget, я хотел бы вставить подслой MyWidget -> MyPrintWidget -> некоторый QWidget, где myPrintWidget :: paintEvent проверит, идет ли текущая печать на экран (таким образом, вызовите QWidget :: paintEvent), иначе, если мы печатаем на принтере, вместо этого вызовите некоторую функцию MyPrintWidget :: drawWidget.
- Это правильный способ включить виджет для печати?
- Как я могу выяснить в paintEvent, что я печатаю на принтере вместо экрана?
- Есть ли хороший пример печати сложных виджетов?