QWidget обрамление
Я понимаю, что система координат виджета является локальной для виджета. 0,0 сверху слева.
Я хочу нарисовать рамку в виджете, но использование QRect, возвращаемого rect(), приведет к тому, что правая и нижняя части не будут отображаться в рамке.
Существует метод, называемый frameGeometry(), однако он возвращает QRect, который находится не в той же системе координат, что и виджет, но в родительской системе координат.
Есть ли способ получить обрамляющий прямоугольник для виджета в локальной системе координат.
Я знаю, что могу перевести frameGeometry() или просто создать новый прямоугольник:
QRect(0, 0, width()-1, height()-1);
Это правильная вещь?
1 ответ
Скорее всего, виджет имеет отступ для своего холста, который вам нужно будет вычесть из QRect виджета (который описывает общее пространство, которое занимает виджет, включая отступы со всех сторон), чтобы получить прямоугольник, который вписывается в ваш виджет. Не уверен насчет конкретного синтаксиса.