【发布时间】:2020-03-05 22:40:47
【问题描述】:
我想在不聚焦时显示工具提示。
我参考这个PyQt Window Focus做了代码
但是,它只在单击一个窗口后起作用。工作正常,但窗口总是在任务栏闪烁。
而且我认为这种方法效率低。
我觉得好像os在等待任务到来的时候不是在休息,而是每时每刻都在检查任务的到来。
这是一个简单的window窗口,所以不会占用太多cpu,但我想更高效地编写代码。
有什么办法可以改善吗?
还是因为focusoutEvent只执行了一个,所以这个方法对吗? (CPU资源0%)
如果正确,我怎样才能消除任务栏上的闪烁?
我检查参考focusPolicy-prop
import sys, os
from PyQt5 import QtWidgets, QtGui, QtCore
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
class MyApp(QWidget):
def __init__(self):
super().__init__()
self.setFocusPolicy(QtCore.Qt.ClickFocus)
self.initUI()
def initUI(self):
vbox = QVBoxLayout()
vbox.addStretch(2)
btn = QPushButton("Test")
btn.setToolTip("This tooltip")
vbox.addWidget(btn)
vbox.addStretch(1)
self.setLayout(vbox)
self.setGeometry(300, 300, 300, 200)
self.show()
def focusOutEvent(self, event):
self.setFocus(True)
self.activateWindow()
self.raise_()
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = MyApp()
sys.exit(app.exec_())
【问题讨论】:
-
我想你使用的是 Windows,对吧?
-
@musicamante 是的
-
重新聚焦时显示工具提示有什么需要?它应该出现在哪里?
-
@musicamante 按钮名称为数字,工具提示显示图像。只是看起来像普通的工具提示(如邮政编码)
-
抱歉,您的回答不清楚。为什么在将焦点返回给窗口后需要显示工具提示?工具提示应该出现在哪里?
标签: python python-3.x pyqt pyqt5