self.setWindowFlags(Qt.WindowStaysOnTopHint | Qt.FramelessWindowHint) # 置顶,且去掉边框
还有一些其他效果,比如去掉窗体的最小化最大化按钮:self.setWindowFlags(Qt.WindowCloseButtonHint) # 只保留关闭按钮
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from ui_test import Ui_MainWindow # ui 使用 Qt designer 创建
class MyWindown(QMainWindow):
def __init__(self):
super().__init__()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.setWindowTitle("账号登陆") # 设置标题
self.setWindowIcon(QIcon("logo.ico")) # 添加图标
if __name__ == '__main__':
app = QApplication(sys.argv)
w = MyWindown()
w.show()
sys.exit(app.exec())
效果:
self.setWindowFlags(Qt.WindowStaysOnTopHint) # 置顶显示
说明:窗体去掉边框后就不能随意拖动了,需要自己实现拖动功能。
去边框后可移动的一种实现方式可以参考这篇博客:【PyQt5 Qt 窗体去边框,去边框后可移动】
self.setWindowFlags(Qt.FramelessWindowHint) # 去边框
效果:对比第一个效果图,边框没有了
self.setWindowFlags(Qt.FramelessWindowHint) # 去边框
self.setAttribute(Qt.WA_TranslucentBackground) # 窗体背景透明
说明:窗体背景透明子控件不透明,一定要先去掉窗体边框,否则效果无法直视
效果:背景变成透明的了,看到了窗体后面的代码,label控件自身因为没有背景色,所以只显示了文字。
代码:
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from ui_test import Ui_MainWindow # ui 使用 Qt designer 创建
class MyWindown(QMainWindow):
def __init__(self):
super().__init__()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.setWindowTitle("账号登陆") # 设置标题
self.setWindowIcon(QIcon("logo.ico")) # 添加图标
self.setWindowFlags(Qt.WindowStaysOnTopHint | Qt.FramelessWindowHint) # 置顶,且去掉边框
self.setAttribute(Qt.WA_TranslucentBackground) # 窗体背景透明
if __name__ == '__main__':
app = QApplication(sys.argv)
w = MyWindown()
w.show()
sys.exit(app.exec())
主要是设置窗体的:Qt.Tool 属性
# 通常用于设置主程序的附属窗口属性,比如工具条,它隶属于主程序,不需要以独立的任务栏图标呈现
self.setWindowFlags(Qt.WindowStaysOnTopHint | Qt.FramelessWindowHint | Qt.Tool) # 窗体置顶,无边框,在任务栏不显示图标。