Как скрыть значок запущенного приложения от панели QML PyQt5 гнома

Я работаю над менеджером по виджету как носатый в гноме. Я хочу скрыться, только мое AP мой значок приложения (отобразите все другие значки запущенных приложений) из запущенных приложений или отсюдаenter image description here

это - мой qml файл

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.12

Window {
    id:window
    visible: true
    width: 500
    flags: Qt.AlignLeft
    height: 375
    color: "transparent"
    title: qsTr("Nidgets")
    Timer{
        interval:100
        running: true
        repeat: true
        onTriggered: {
            time.text = Qt.formatDateTime(new Date(), "hh:mm A")
            date.text = Qt.formatDateTime(new Date(), "yyyy MMMM dd")
        }
    }

    Item {
        id: element1
        x: 0
        y: 0
        width: 200
        anchors.fill: parent
        height: 200
        focus: true
        Keys.onPressed: {
            if ((event.key === Qt.Key_F11) && (event.modifiers & Qt.ControlModifier)){
                if(window.flags == Qt.FramelessWindowHint)
                    window.flags = 0
                else
                    window.flags = Qt.FramelessWindowHint
            }
        }

        Text {
            id: date
            x: 310
            y: 205
            color: "#ffffff"
            text: Qt.formatDateTime(new Date(), "yyyy MMMM dd")
            font.pixelSize: 24
        }

        Text {
            id: time
            x: 74
            y: 86
            color: "#ffffff"
            anchors.centerIn: parent
            text: Qt.formatDateTime(new Date(), "hh:mm A")
            anchors.verticalCenterOffset: -45
            anchors.horizontalCenterOffset: 35
            font.pointSize: 75

        }


    }
}

мой main.py файл

import sys
from PyQt5.QtCore import QObject, QUrl
from PyQt5.QtWidgets import QApplication
from PyQt5.QtQuick import QQuickView
from PyQt5.QtQml import QQmlApplicationEngine
from threading import Thread
import os
import importlib

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

    engine = QQmlApplicationEngine()
    context = engine.rootContext()
    context.setContextProperty("main", engine)

    engine.load('main.qml')

    win = engine.rootObjects()[0]
    win.show()

    sys.exit(myApp.exec_())
1
задан 6 January 2020 в 15:07

1 ответ

Нет, по-видимому, никакого простого способа, который выставляется пользователю. Это сводится к присвоению _NET_WM_STATE_SKIP_TASKBAR к окну.

Видят здесь на Askubuntu для нескольких возможностей внешне изменить свойства окна после того, как окно было создано. Используя devilspie будет систематически скрывать окна, которые соответствуют определенным правилам от панели задач. Определенные окна могут быть скрыты от панели задач с помощью wmctrl. Это могло, например, быть сделано в сценарии запуска обертки.

лучший путь состоит в том, чтобы установить статус окна из кода приложения, где окно создается. Для Python это свелось бы к оператору такой как window.set_property("skip-taskbar-hint", True) для GTK. Посмотрите здесь для нескольких подсказок: https://stackoverflow.com/questions/22256507/how-to-make-a-program-skip-the-task-bar-task-list-in-gnu-linux.

1
ответ дан 6 January 2020 в 18:43

Другие вопросы по тегам:

Похожие вопросы: