first commit
This commit is contained in:
53
frameless_for_MsWindow.py
Normal file
53
frameless_for_MsWindow.py
Normal file
@@ -0,0 +1,53 @@
|
||||
import sys
|
||||
import os
|
||||
from PyQt6.QtWidgets import QApplication, QMainWindow, QPushButton, QVBoxLayout, QWidget
|
||||
from PyQt6.QtCore import Qt, QPoint
|
||||
|
||||
# À placer tout en haut, avant les imports PyQt6 si possible
|
||||
os.environ["QT_QPA_PLATFORM"] = "xcb"
|
||||
|
||||
class FenetreSansTitre(QMainWindow):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
|
||||
# 1. Retirer la barre de titre
|
||||
self.setWindowFlags(Qt.WindowType.FramelessWindowHint)
|
||||
self.resize(400, 300)
|
||||
|
||||
# Interface simple
|
||||
layout = QVBoxLayout()
|
||||
btn_quitter = QPushButton("Fermer la fenêtre")
|
||||
btn_quitter.clicked.connect(self.close)
|
||||
layout.addWidget(btn_quitter)
|
||||
|
||||
container = QWidget()
|
||||
container.setLayout(layout)
|
||||
self.setCentralWidget(container)
|
||||
|
||||
# Variable pour stocker la position du clic
|
||||
self.old_pos = None
|
||||
|
||||
# --- Logique de déplacement ---
|
||||
|
||||
def mousePressEvent(self, event):
|
||||
if event.button() == Qt.MouseButton.LeftButton:
|
||||
# On sauvegarde la position relative du curseur dans la fenêtre
|
||||
self.old_pos = event.globalPosition().toPoint()
|
||||
|
||||
def mouseMoveEvent(self, event):
|
||||
if self.old_pos is not None:
|
||||
# Calcul de la distance parcourue
|
||||
delta = QPoint(event.globalPosition().toPoint() - self.old_pos)
|
||||
# Déplacement de la fenêtre
|
||||
self.move(self.x() + delta.x(), self.y() + delta.y())
|
||||
# Mise à jour de la position de référence
|
||||
self.old_pos = event.globalPosition().toPoint()
|
||||
|
||||
def mouseReleaseEvent(self, event):
|
||||
self.old_pos = None
|
||||
|
||||
if __name__ == "__main__":
|
||||
app = QApplication(sys.argv)
|
||||
fenetre = FenetreSansTitre()
|
||||
fenetre.show()
|
||||
sys.exit(app.exec())
|
||||
Reference in New Issue
Block a user