Untitled
unknown
plain_text
a year ago
3.1 kB
6
Indexable
import sys from PyQt5.QtWidgets import QApplication, QWidget, QSystemTrayIcon, QMenu, QDesktopWidget from PyQt5.QtGui import QPixmap, QIcon, QPainter, QCursor from PyQt5.QtCore import Qt, QUrl from PyQt5.QtMultimedia import QSoundEffect class SataAndagi(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setWindowFlags(Qt.WindowStaysOnTopHint | Qt.FramelessWindowHint | Qt.Tool) self.setAttribute(Qt.WA_TranslucentBackground) self.pixmap = QPixmap('osaka250.png') # Replace with your image path self.setMask(self.pixmap.mask()) self.resize(self.pixmap.size()) self.position_window() self.sound = QSoundEffect() self.sound.setSource(QUrl.fromLocalFile('sata-andagi.wav')) # Replace with your sound file path self.tray_icon = QSystemTrayIcon(self) self.tray_icon.setIcon(QIcon('osaka250.ico')) # Replace with your icon path tray_menu = QMenu() show_action = tray_menu.addAction("Show") hide_action = tray_menu.addAction("Hide") quit_action = tray_menu.addAction("Quit") show_action.triggered.connect(self.show) hide_action.triggered.connect(self.hide) quit_action.triggered.connect(QApplication.instance().quit) self.tray_icon.setContextMenu(tray_menu) self.tray_icon.show() self.dragging = False self.drag_threshold = 5 # pixels self.click_pos = None self.show() def paintEvent(self, event): painter = QPainter(self) painter.drawPixmap(self.rect(), self.pixmap) def mousePressEvent(self, event): if event.button() == Qt.LeftButton: self.click_pos = event.pos() def mouseMoveEvent(self, event): if event.buttons() & Qt.LeftButton: if not self.dragging: if (event.pos() - self.click_pos).manhattanLength() > self.drag_threshold: self.dragging = True self.setCursor(QCursor(Qt.ClosedHandCursor)) if self.dragging: self.move(self.mapToParent(event.pos() - self.click_pos)) def mouseReleaseEvent(self, event): if event.button() == Qt.LeftButton: if self.dragging: self.dragging = False self.setCursor(QCursor(Qt.ArrowCursor)) else: self.play_sound() self.click_pos = None def position_window(self): screen = QDesktopWidget().screenNumber(QDesktopWidget().cursor().pos()) screen_geometry = QDesktopWidget().screenGeometry(screen) taskbar_height = QDesktopWidget().availableGeometry().height() - screen_geometry.height() x = screen_geometry.width() - self.width() y = screen_geometry.height() - self.height() - taskbar_height self.move(x, y) def play_sound(self): self.sound.play() if __name__ == '__main__': app = QApplication(sys.argv) app.setQuitOnLastWindowClosed(False) ex = SataAndagi() sys.exit(app.exec_())
Editor is loading...
Leave a Comment