Python&;QT:创建滚动帮助区域
我有一个用户界面,已经变得足够复杂,用户可以使用一些帮助。我尝试过工具提示,但我不喜欢它们如何让用户体验分心。我想要的是有一个始终显示帮助的区域,文本根据鼠标悬停的位置而变化 最有效的处理方法是什么?子类化工具提示?我考虑过eventFilter,但我已经在使用它来捕获QTextEdit框的按键,我不确定如何使它适用于每个对象。我进入了一个新的领域,所以任何帮助都将不胜感激Python&;QT:创建滚动帮助区域,python,qt,nuke,Python,Qt,Nuke,我有一个用户界面,已经变得足够复杂,用户可以使用一些帮助。我尝试过工具提示,但我不喜欢它们如何让用户体验分心。我想要的是有一个始终显示帮助的区域,文本根据鼠标悬停的位置而变化 最有效的处理方法是什么?子类化工具提示?我考虑过eventFilter,但我已经在使用它来捕获QTextEdit框的按键,我不确定如何使它适用于每个对象。我进入了一个新的领域,所以任何帮助都将不胜感激 谢谢 虽然我没有做您感兴趣的事情,但我对如何处理它(至少在最初)有一个非常好的想法,它确实涉及到使用您自己的事件过滤器对象
谢谢 虽然我没有做您感兴趣的事情,但我对如何处理它(至少在最初)有一个非常好的想法,它确实涉及到使用您自己的事件过滤器对象。以下是基本内容:
QObject
子类作为事件过滤器。这应该获取并存储要用于显示帮助文本的小部件实例(例如,aQLabel
)eventFilter
以查找QEvent::Enter
事件并适当设置帮助文本,但不使用事件。您需要创建一个系统,将发出事件的对象(即光标所在的对象)映射到应该显示的帮助文本installEventFilter
将其添加到要触发帮助文本显示的每个小部件中class HelpTextFilter(QtCore.QObject):
def uuu init uuu(self,helpTextWidget):
超级(HelpTextFilter,self)。\uuu初始化(helpTextWidget)
#每次都可以调用self.parent()来获取它,而不是
#存储它,但这可能需要大量的方法调用。
self.helpTextWidget=helpTextWidget
def eventFilter(自身、发送方、事件):
如果event.type()==QtCore.QEvent.Enter:
#在此处获取“发件人”的帮助文本。。。
self.helpTextWidget.setText(helpText)
返回错误
#登记
evFilter=HelpTextFilter(helpTextDisplayWidget)
对于widgetsThatNeedHelpTextDisplayed中的小部件:
widget.installEventFilter(evFilter)
希望这对您有所帮助。尝试将eventFilter设置为QEvent.Enter,并在whatsThis()中传递帮助文本。这是可行的,但我不确定我是否会遇到丑陋的冲突。仍然会喜欢任何想法。