Как сделать программу над другими окнами?

Рейтинг: 1Ответов: 2Опубликовано: 02.03.2023

Я хочу сделать программу, которая будет над другими окнами.

Это как? Например, вы знаете Flstudio? На экране появится фрукт, и вы не можете скрыть его. Но как сделать это?
Я поискал немало, но все-таки не нашел.

Ответы

▲ 1

Как вариант:

import sys
from PyQt5 import QtCore, QtWidgets, QtGui


if __name__ == '__main__': 
    app = QtWidgets.QApplication(sys.argv)

    window = QtWidgets.QWidget()
    window.setWindowFlags(QtCore.Qt.Window | 
                          QtCore.Qt.FramelessWindowHint | 
                          QtCore.Qt.WindowStaysOnTopHint)   
                          
    window.setGeometry(750, 350, 100, 100)

    pixmap = QtGui.QPixmap("Ok.png").scaled(100, 100, 
                                            QtCore.Qt.KeepAspectRatio, 
                                            QtCore.Qt.FastTransformation)
    pal = window.palette()
    pal.setBrush(QtGui.QPalette.Normal, QtGui.QPalette.Window, 
        QtGui.QBrush(pixmap))
    pal.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Window, 
        QtGui.QBrush(pixmap))
    window.setPalette(pal)

    window.setMask(pixmap.mask())

    window.show()
    sys.exit(app.exec_())

введите сюда описание изображения


Ok.png

введите сюда описание изображения

▲ 1

Если пользуетесь PyQt, то вам поможет сплэш скрин.

splash = QSplashScreen() # объявляем переменную
splash.setWindowFlag(Qt.WindowStaysOnTopHint) # ставим флаг "поверх всех окон"
splash.setPixmap(QPixmap('my_splash.png')) # задаем картинку
splash.show() # показываем юзеру

Не забудьте в последствии поставить splash.hide() и splash.destroy() в том месте где ваша заставка должна исчезнуть с экрана. Ну и само собой в самом начале нужно импортировать необходимые библиотеки:

from PyQt5.QtWidgets import QSplashScreen
from PyQt5.QtGui import QPixmap
from PyQt5.Qt import Qt