界面可视化(十一):PyQt5窗口在linux置顶无效

为工具做一个悬浮窗口,使其在开启时,永远处于电脑所有的窗口的前方。

博客1: PyQt5 技巧篇-窗口置顶设置,如何使窗口始终显示在最前面

博客2: pyqt5窗口相关设置

只需要使用一行代码:

Dialog.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)

该方法经过测试,在window系统中可以实现,效果为: 当子窗口浮现在主窗口之前时,点击主窗口无法覆盖子窗口。

然而在linux系统中,该效果不存在,可被点击后覆盖。

 

博客3: PyQt5 将窗口暂时置于所有窗口最前方(唤醒窗口、窗口置顶)

Widget类中又raise()方法可以实现这个功能。

(由于在python3中 raise 是一个关键字,所以在PyQt5中这个方法的名字为 raise_,即widget.raise_()

Dialog.raise_()

在linux系统上也没有效果。

 

博客4: PyQt5 技术篇-窗口置顶不生效解决办法,setWindowFlags()设置不生效解决办法

可能情况被覆盖,例如:

Dialog.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)   # 设置窗口置顶
Dialog.setWindowFlags(QtCore.Qt.WindowCloseButtonHint)   # 设置只有关闭按钮

如果有多个setWindowFlags(),只有最后一个生效,因为是覆盖式设置。

合并参数来解决:

Dialog.setWindowFlags(QtCore.Qt.WindowCloseButtonHint|QtCore.Qt.WindowStaysOnTopHint)

但是该情况与遇到的问题不符。

博客5: QT模态对话框和非模态对话框

模态对话框就是指在子对话框弹出时,焦点被强行集中于该子对话框,子对话框不关闭,用户将无法操作其他的窗口。非模态相反,用户仍然可以操作其他的窗口,包括该子对话框的父对话框。
     如果从线程角度来讲,模态对话框实际上是线程阻塞的,也就是子对话框是一个线程,但是在创建这个子线程之后,父窗口就阻塞了;非模态对话框则不是阻塞型的线程模型,父子线程可以并行运行。
     在Qt中创建模态对话框,主要用到了QDialog的exec函数。
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyQt5 是一个基于 Python 语言的 GUI 框架,提供了一组丰富的界面设计工具和组件,能够帮助开发者快速构建各种图形用户界面应用程序。 以下是一个简单的 PyQt5 可视化界面设计的步骤: 1. 安装 PyQT5 使用 pip 命令安装 PyQt5: ``` pip install PyQt5 ``` 2. 创建 PyQt5 应用程序 在 Python 中,使用 PyQt5 库创建应用程序的步骤如下: ```python import sys from PyQt5.QtWidgets import QApplication, QWidget # 创建应用程序对象 app = QApplication(sys.argv) # 创建窗口对象 window = QWidget() # 设置窗口属性 window.setGeometry(100, 100, 300, 300) window.setWindowTitle("My First PyQt5 Application") # 显示窗口 window.show() # 进入应用程序主循环 sys.exit(app.exec_()) ``` 3. 添加界面组件 在创建窗口对象后,可以添加各种界面组件,例如按钮、标签、文本框等。下面是一个添加按钮的示例代码: ```python from PyQt5.QtWidgets import QPushButton # 创建按钮对象 button = QPushButton("Click Me", window) # 设置按钮属性 button.setGeometry(100, 150, 100, 30) ``` 4. 响应事件 在界面组件添加完成后,可以为其添加一些事件响应函数,例如按钮点击、窗口关闭等。下面是一个按钮点击事件的示例代码: ```python def on_button_clicked(): print("Button Clicked") # 将按钮点击事件与函数绑定 button.clicked.connect(on_button_clicked) ``` 5. 运行应用程序 最后,运行应用程序即可在屏幕上显示出我们创建的可视化界面: ```python # 显示窗口 window.show() # 进入应用程序主循环 sys.exit(app.exec_()) ``` 以上是一个简单的 PyQt5 可视化界面设计的步骤,具体使用可根据需求进行扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值