Страницы

Поиск по вопросам

понедельник, 2 марта 2020 г.

Как перемещать приложение, если шапка с кнопками управления окна (закрыть/свернуть/расширить) скрыта

#python #python_3x #pyqt5


Как скрыть верхнюю шапку где находятся кнопки управления приложения
(закрыть/свернуть/расширить), но в тоже время можно было бы перемещать приложение. 

Как саму шапку скрыть я понял, но как сделать чтобы можно было бы при этом перемещать
приложение 

import sys
from PyQt5 import QtWidgets, QtCore

app = QtWidgets.QApplication(sys.argv)

w = QtWidgets.QMainWindow()
w.setWindowFlags(QtCore.Qt.FramelessWindowHint)
w.show()
sys.exit(app.exec_())

    


Ответы

Ответ 1



Пример: from PyQt5.QtWidgets import QWidget, QApplication from PyQt5.QtCore import Qt class Widget(QWidget): def __init__(self): super().__init__() self.setWindowFlags(Qt.FramelessWindowHint) self.old_pos = None def mousePressEvent(self, event): if event.button() == Qt.LeftButton: self.old_pos = event.pos() def mouseReleaseEvent(self, event): if event.button() == 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) if __name__ == '__main__': app = QApplication([]) w = Widget() w.show() app.exec()

Ответ 2



Принцип простой. Тебе надо отследить нажатие левой кнопки мыши на любом элементе, хоть на всей форме. Сохранить координаты. Далее отслеживать движение мыши, брать ее координаты относительно всего экрана, вычесть из них сохраненные координаты, и установить позицию формы в получившиеся координаты. Ничего сложного тут нет.

Комментариев нет:

Отправить комментарий