Как изменить размер QWidget из его центра

0

Как изменить размер QLabel и сохранить его текущую позицию? То, что я хочу сделать, это изменить его размер, но я хочу, чтобы это было изменено со всех четырех сторон одинаково, вместо того, чтобы изменять размер с верхнего левого угла. Другими словами, я хочу изменить точку изменения виджета.

Я могу выполнить то, что я описываю выше, в основном изменяя размер и перемещая виджет, когда он изменил размер, но это утомительный процесс, и мне интересно, есть ли лучший способ.

Я не уверен, что объясню это право, надеюсь, это имеет смысл.

  • 1
    Вы используете макеты или он просто вставляется в другой виджет с помощью setgeometry или перемещения / изменения размера? Я предполагаю, что второе верно, поэтому я просто наследую от QLabel и напишу производный класс, который запомнит его центральное положение, а затем переопределит его resizeEvent, в котором вы будете использовать move () с правильными координатами. просто остерегайтесь не вызывать resize () или setGeometry () внутри вашего resizeEvent.
Теги:
qt
resize
qwidget
qlabel

1 ответ

1
Лучший ответ

Вы можете изменять размер и перемещать виджет за один раз, используя QWidget :: setGeometry(), беря новое положение и размер как прямоугольник (QRect). Там нет готовой функции для вашего точного требования, но вы можете, конечно, написать небольшую вспомогательную функцию, выполняющую математику.

  • 0
    Спасибо за вашу помощь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню