60 lines
1.8 KiB
Python
60 lines
1.8 KiB
Python
import sys
|
|
import os
|
|
from PyQt6 import QtCore, QtGui, QtWidgets
|
|
from PyQt6 import uic
|
|
from PyQt6.QtCore import Qt
|
|
|
|
# À placer tout en haut, avant les imports PyQt6 si possible
|
|
os.environ["QT_QPA_PLATFORM"] = "xcb"
|
|
|
|
class MainWindow(QtWidgets.QMainWindow):
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
super().__init__(*args, **kwargs)
|
|
# Remove the title bar and window frame
|
|
self.setWindowFlags(Qt.WindowType.FramelessWindowHint)
|
|
|
|
# Optional: Make background transparent (if you want rounded corners, etc.)
|
|
# self.setAttribute(Qt.WidgetAttribute.WA_TranslucentBackground)
|
|
|
|
# Track mouse position for dragging
|
|
self._drag_pos = None
|
|
|
|
uic.loadUi("mainwindow.ui", self)
|
|
|
|
# Find the button by its objectName in Qt Designer
|
|
# Example: objectName = "close_btn"
|
|
self.close_btn.clicked.connect(self.close_link)
|
|
|
|
self.minimize_btn.clicked.connect(self.minimize_link)
|
|
|
|
def close_link(self):
|
|
sys.exit(app.exec())
|
|
|
|
def minimize_link(self):
|
|
# Minimize the application
|
|
self.setWindowState(Qt.WindowState.WindowMinimized)
|
|
|
|
# Mouse press event to start dragging
|
|
def mousePressEvent(self, event):
|
|
if event.button() == Qt.MouseButton.LeftButton:
|
|
self._drag_pos = event.globalPosition().toPoint() - self.frameGeometry().topLeft()
|
|
event.accept()
|
|
|
|
# Mouse move event to drag window
|
|
def mouseMoveEvent(self, event):
|
|
if event.buttons() == Qt.MouseButton.LeftButton and self._drag_pos is not None:
|
|
self.move(event.globalPosition().toPoint() - self._drag_pos)
|
|
event.accept()
|
|
|
|
# Mouse release event to stop dragging
|
|
def mouseReleaseEvent(self, event):
|
|
self._drag_pos = None
|
|
event.accept()
|
|
|
|
|
|
app = QtWidgets.QApplication(sys.argv)
|
|
|
|
window = MainWindow()
|
|
window.show()
|
|
app.exec() |