Как получить позиции x, y виджетов PyQt5, а также расстояние до верхней левой позиции главного экрана [дубликат] ⇐ Python

Программы на Python
Anonymous
Как получить позиции x, y виджетов PyQt5, а также расстояние до верхней левой позиции главного экрана [дубликат]

Сообщение Anonymous »

Я пытаюсь получить область выбора изображения, например, обрезая изображение. Итак, я разработал интерфейс с помощью PyQt Designer. Я поместил QLabel в большое пространство на изображении, а затем добавил растровое изображение с изображением в коде Python. Это работает хорошо, я могу нарисовать прямоугольник, линию и т. д. Но когда я использую события мыши, я понял; Положение мыши относительно главного экрана программы относительно верхнего левого угла. Но мне нужно положение мыши относительно моего QLabel.
Итак, как мне справиться с этой ситуацией. И это лучший способ нарисовать прямоугольник на изображении и получить область обрезки.
По моему мнению; мне нужна позиция QLabel в верхнем левом углу, и мне нужно событие, которое перехватывает обработчик изменения размера для обновления позиции. Таким образом, я могу вычислить область обрезки с помощью позиции вычитания мыши и позиции QLabel.
Изображение

class Window(QMainWindow):
def __init__(self, parent = None):
super(Window, self).__init__(parent)
uic.loadUi(path, self)

# some codes here

self.settignsImageLabel = self.findChild(QLabel, 'settignsImageLabel')
self.setSelectablePixcelArea()

def setSelectablePixcelArea(self):
# Get the size of the settings image label
original_pixmap = QPixmap("C:\\Users\\Leno\\Desktop\\green.png")

self.pix = QPixmap(original_pixmap.size())
self.pix.fill(Qt.transparent)

# Create a painter to draw on the new pixmap
self.painter = QPainter(self.pix)

# Draw the original image
self.painter.drawPixmap(0, 0, original_pixmap)

# Set the combined pixmap on the label
self.settignsImageLabel.setPixmap(self.pix)
self.settignsImageLabel.setScaledContents(True) # Optional: Scale the pixmap to fit the label


Подробнее здесь: https://stackoverflow.com/questions/790 ... top-left-p

Вернуться в «Python»