Skip to content

[PyQt5] 使開發的界面不要顯示圖示在桌面側邊欄的方法

Last Updated on 2021-06-07 by Clay

我之前一直在試著寫一個自己的簡易桌面時鐘,也拜此所賜,我學習到了不少關於 PyQt5 這個使用 Python 撰寫界面框架的知識。

今天要紀錄來分享的 (其實我是怕自己忘記),是關於『寫好的程式在執行的時候不要在桌面側邊欄留下圖示 (Icon) 』這項設定。其實這個設定我找了很久,時不時地就會 Google 一下,但可惜一直都沒能找到。 (這其實代表了我的搜尋能力之差 XDDD)

就在今天,我突然間找到了答案!而且簡單到我覺得自己像個白痴 XDDD

廢話不多說,以下就在下面簡單地紀錄吧!


隱藏桌面圖示的方法

在開始之前,我要再次使用程式直接 Demo 我的問題。一來我怕看到這篇筆記的人不了解我在做什麼、二來我怕我自己隔了幾週就搞不懂我自己在做什麼 XDDD

# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import *


class MainWindow(QWidget):
     def __init__(self):
         super(MainWindow, self).__init__()
         self.resize(500, 500)
         self.setWindowTitle('test')


if __name__ == '__main__':
     app = QApplication([])
     window = MainWindow()
     window.show()
     sys.exit(app.exec_())



Output:

綠色框起來的部份便是我使用 PyQt5 撰寫的『界面』、而紅色框起來的部份則是我桌面側邊欄的『圖示』(Icon)。而我希望做到的便是我程式的界面照樣執行、但是桌面的圖示卻是隱藏著的。

簡單來講,就像個背景執行的小工具一般。

那要做到這件事情,其實非常簡單。

# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qt


class MainWindow(QWidget):
     def __init__(self):
         super(MainWindow, self).__init__()
         self.resize(500, 500)
         self.setWindowTitle('test')
         self.setWindowFlags(Qt.Tool)


if __name__ == '__main__':
     app = QApplication([])
     window = MainWindow()
     window.show()
     sys.exit(app.exec_())



沒錯!那就是匯入 Qt 這個函式,並使用

self.setWindowFlags(Qt.Tool)



這行程式碼設定即可。顯示的效果如下:

可以看到綠色的程式界面仍然存在、但是紅色框起來的部份(本來存在圖示 Icon 的地方)卻空空如也。

大成功!這就是我找了很久的設定!


References

(我就是在上方這個 stackoverflow 找到了)

2 thoughts on “[PyQt5] 使開發的界面不要顯示圖示在桌面側邊欄的方法”

  1. 你好!想請問一下,我本身有在寫一些python的文章,發覺你寫的Python都很不錯!是否引用你的文章連結放置在我的文章內呢?

Leave a Reply