iT邦幫忙

2021 iThome 鐵人賽

DAY 18
0
Software Development

Python GUI 專案設計模式及好用的開發技巧系列 第 19

讓Python GUI 畫面在最前方顯示/ 最小化顯示/ 隱藏桌面圖示的方法

  • 分享至 

  • xImage
  •  

很多時候,剛程式開啟後有可能因為使用者操作的因素就讓正在跑的程式被蓋住了。尤其是在使用鍵盤滑鼠精靈控制的時候,如果出現這樣的囧況,那程式就會因為點擊錯誤而造成大亂的現象。

其次,筆者希望程式開啟的時候可以直接顯示一個圖示在工作列上就好了,但程式還是有繼續在運作或如果要隱藏桌面圖示呢? 簡單的說,程式還在螢幕上跑,但不想要顯示工具列上的圖示,該怎麼做呢?

使用工具

  • pyside2
  1. 先簡單做一個視窗程式
from PySide2.QtWidgets import QApplication
from PySide2.QtWidgets import *
from p3 import Ui_MainWindow
import sys

class MainWindow(QMainWindow):

    def __init__(self):
        super(MainWindow, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

def main():
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())


if __name__ == "__main__":
    main()
  1. 執行後,當視窗出現後,打開其他畫面,發現主視窗程式被蓋掉了。

Part A. 讓程式永遠在畫面最上方執行

I. 先匯入QtCore中最主要的Qt 模組
from PySide2.QtCore import Qt
II. 在畫面初始化的地方加入
self.setWindowFlags(Qt.WindowStaysOnTopHint)

程式碼插入結果

III. 執行效果

Part B. 讓程式永遠以最小化,就是在工作列顯示圖示的方式運作中

I. 先匯入QtCore中最主要的Qt 模組
from PySide2.QtCore import Qt
II. 在畫面初始化的地方加入
self.setWindowFlags(Qt.WindowStaysOnBottomHint)

程式碼插入結果

III. 執行效果

[筆記] 觀察到程式開啟後就以圖示的方式在工具列上執行,但無法用滑鼠點開變成其他視窗的形式

Part C. 隱藏桌面圖示的方法

I. 先匯入QtCore中最主要的Qt 模組
from PySide2.QtCore import Qt
II. 在畫面初始化的地方加入
self.setWindowFlags(Qt.Tool)

程式碼插入結果

III. 執行效果

結論:
簡單的說就是修改setWindowFlags(),然後在裏頭放入不同的效果設定即可

  • 置頂顯示
    Qt.WindowStaysOnTopHint
  • 最小化顯示
    Qt.WindowStaysOnBottomHint
  • 隱藏桌面圖示
    Qt.Tool

/images/emoticon/emoticon35.gif

完整程式碼請參考


上一篇
如何使用WYSIWYG Python GUI 設計工具快速設計出子視窗及產出程式碼呢?
下一篇
從pyside2 快速移植到pyside6的方法
系列文
Python GUI 專案設計模式及好用的開發技巧31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言