让Python GUI 画面在最前方显示/ 最小化显示/ 隐藏桌面图示的方法

很多时候,刚程序开启後有可能因为使用者操作的因素就让正在跑的程序被盖住了。尤其是在使用键盘滑鼠精灵控制的时候,如果出现这样的囧况,那程序就会因为点击错误而造成大乱的现象。

其次,笔者希望程序开启的时候可以直接显示一个图示在工作列上就好了,但程序还是有继续在运作或如果要隐藏桌面图示呢? 简单的说,程序还在萤幕上跑,但不想要显示工具列上的图示,该怎麽做呢?

使用工具

  • 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

完整程序码请参考


<<:  Day17 - 【概念篇】OAuth flows: Client Credentials

>>:  Day-19 Button

DAY5 速谈flex gride布局、定位、响应式

为了加快进度,我要快速带过flex、gride布局、定位和响应式,帮你系个安全戴,要飙车罗~~ fl...

『 间接方法 』

铁人赛第四天!简单整理下昨日分享的输入方法有两种: 直接输入:直接把值本身当成输入。 间接输入:透过...

Day.24 「你点了按钮~同时也点了网页本身!」 —— JavaScript 事件冒泡(Event bubbling)

我们上一个篇章认识了绑定事件,了解到不管是什麽节点,都可以绑定事件 那为什麽 JavaScript...

【D15】当大盘涨的时候,跟台积电有关系吗?

前言 取得众多资料後,接下来就要分析,我们来看看台积电与加权指数有关系吗? d15_2330AndT...

Day 45 (Node.js)

1.版本 https://nodejs.org/en/ 下载LTS (长期稳定版本) 用10以上版本...