python pyqt6 设定窗口置顶
self.setWindowFlag(Qt.WindowType.WindowStaysOnTopHint)即可
效果一般,页面会出现闪烁一次,
# 置顶按钮
self.top_button = QPushButton('', self)
self.top_button.move(self.width() - 90, 5) # 设置位置
self.top_button.setStyleSheet('border:none;background:transparent;')# image:url("./close.png");
self.top_button.setIcon(QIcon(get_icon('top.png'))) # 设置按钮图标为pixmap
self.top_button.setIconSize(QSize(20, 20)) # 设置图标尺寸
self.top_button.setShortcut('Ctrl+t')
self.top_button.clicked.connect(self.top_flag_window) # 设置点击事件,关闭窗口
self.top_button.setFixedWidth(20)
window_top_stay = False
# 窗口置顶逻辑
def top_flag_window(self):
global window_top_stay
window_top_stay = not window_top_stay
if window_top_stay == True:
self.setWindowFlag(Qt.WindowType.WindowStaysOnTopHint) # 将窗口置顶
self.setVisible(True)
# 把未选中状态的图标更新为选中状态的图标
self.top_button.setIcon(QIcon(get_icon("select_top.png"))) # 设置按钮图标为pixmap
self.top_button.setIconSize(QSize(20, 20)) # 设置图标尺寸
else:
self.setWindowFlags(self.windowFlags() & ~Qt.WindowType.WindowStaysOnTopHint) # 取消置顶
self.setVisible(True)
# 把选中状态的图标更新为未选中状态的图标
self.top_button.setIcon(QIcon(get_icon("top.png"))) # 设置按钮图标为pixmap
self.top_button.setIconSize(QSize(20, 20)) # 设置图标尺寸