Забыл про свой вопрос на время после того как в тот же день придумал простое и не очень(наверное) умное решение
Оставлю код, вдруг кто будет искать решение данной проблемы и наткнется)
# вызывается при нажатии кнопки мыши по форме
def mousePressEvent(self, event):
# Если нажата левая кнопка мыши
if event.button() == QtCore.Qt.LeftButton:
# получаем координаты окна относительно экрана
x_main = main.geometry().x()
y_main = main.geometry().y()
# получаем координаты курсора относительно окна нашей программы
cursor_x = QtGui.QCursor.pos().x()
cursor_y = QtGui.QCursor.pos().y()
# проверяем условием позицию курсора на нужной области программы(у нас это верхний бар)
# если всё ок - перемещаем
# иначе игнорируем
if x_main <= cursor_x <= x_main + main.geometry().width():
if y_main <= cursor_y <= y_main + main.widget_2.geometry().height():
self.old_pos = event.pos()
else:
self.old_pos = None
elif event.button() == QtCore.Qt.RightButton:
self.old_pos = None
# вызывается при отпускании кнопки мыши
def mouseReleaseEvent(self, event):
if event.button() == QtCore.Qt.LeftButton:
self.old_pos = None
# вызывается всякий раз, когда мышь перемещается
def mouseMoveEvent(self, event):
if not self.old_pos:
return
delta = event.pos() - self.old_pos
self.move(self.pos() + delta)
Нажми "Нравится" если тебе помогло)