QToolTip 中包含的变量不会自动更新

2024-01-04

我在 QLineEdit 上有一个 QToolTip,并且工具提示包含文本中的变量。工具提示代码包含在 init.h 文件中。问题是工具提示中的变量值在程序运行中发生更改时不会自动更新。例如,我将鼠标悬停在行编辑上,值会显示在工具提示中。我更改程序,返回行编辑,工具提示中的变量没有更改。

我可以通过将 .setToolTip 移至一个函数并在每次程序中发生任何更改时调用该函数来解决此问题,但这似乎有点矫枉过正,特别是当 99% 的程序更改与此特定工具提示无关时)。

变量应该自动更新吗?这是 init.h 文件中包含的工具提示设置代码。

self.ui.YourSSAmount.setToolTip(
        '<span>Click Reports/Social Security to see your<br>SS income at each start age'
        '<br><br>Your inf adj FRA amt at age {}:&nbsp;&nbsp;${:,.0f}'
        '<br>Age adjustment:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{:.0f}%'
        '<br>SS Income at age {}:&nbsp;&nbsp;&nbsp;&nbsp;${:,.0f}</span>'.format(
            self.generator.YouSSStartAge, self.generator.your_new_FRA_amt,
            self.generator.SS66.get(self.generator.YouSSStartAge, 1.32) * 100, self.generator.YouSSStartAge,
            self.generator.YourSSAmount))

setToolTip 方法获取文本并存储它,并且如果用于形成文本的任何变量发生更改,则不会收到通知。

鉴于此,有两种可能的解决方案:

  • 每次变量更改时更新工具提示:

    from PyQt5 import QtCore, QtWidgets
    
    
    class Widget(QtWidgets.QWidget):
        def __init__(self, parent=None):
            super().__init__(parent)
    
            self.le = QtWidgets.QLineEdit()
    
            lay = QtWidgets.QVBoxLayout(self)
            lay.addWidget(self.le)
    
            self.foo = QtCore.QDateTime.currentDateTime().toString()
            self.update_tooltip()
            timer = QtCore.QTimer(self, timeout=self.on_timeout)
            timer.start()
    
        def on_timeout(self):
            self.foo = QtCore.QDateTime.currentDateTime().toString()
            # every time any variable used to build the tooltip changes
            # then the text of the tooltip must be updated
            self.update_tooltip()
    
        def update_tooltip(self):
            # update tooltip text
            self.setToolTip("dt: {}".format(self.foo))
    
    
    if __name__ == "__main__":
        app = QtWidgets.QApplication([])
    
        w = Widget()
        w.show()
    
        app.exec_()
    
  • 覆盖工具提示以使用变量获取文本:

    from PyQt5 import QtCore, QtWidgets
    
    
    class LineEdit(QtWidgets.QLineEdit):
        def __init__(self, parent=None):
            super().__init__(parent)
            self._foo = ""
    
        @property
        def foo(self):
            return self._foo
    
        @foo.setter
        def foo(self, foo):
            self._foo = foo
    
        def event(self, e):
            if e.type() == QtCore.QEvent.ToolTip:
                text = "dt:{}".format(self.foo)
                QtWidgets.QToolTip.showText(e.globalPos(), text, self, QtCore.QRect(), -1)
                e.accept()
                return True
            return super().event(e)
    
    
    class Widget(QtWidgets.QWidget):
        def __init__(self, parent=None):
            super().__init__(parent)
    
            self.le = LineEdit()
    
            lay = QtWidgets.QVBoxLayout(self)
            lay.addWidget(self.le)
    
            self.le.foo = QtCore.QDateTime.currentDateTime().toString()
    
            timer = QtCore.QTimer(self, timeout=self.on_timeout)
            timer.start()
    
        def on_timeout(self):
            self.le.foo = QtCore.QDateTime.currentDateTime().toString()
    
    
    if __name__ == "__main__":
        app = QtWidgets.QApplication([])
    
        w = Widget()
        w.show()
    
        app.exec_()
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QToolTip 中包含的变量不会自动更新 的相关文章

  • 来自 python 的 FQL 多重查询因 unicode 查询而失败

    使用 python 2 6 5 和 facebook sdk 0 3 2 import facebook api facebook GraphAPI token api fql example u SELECT uid2 FROM frie
  • 我应该如何在 python 中使用 lxml 处理 XLink 引用?

    我被要求编写一些读取 XML 配置文件的脚本 这些文件充分利用 XLink 来包含存储在多个文件中的 XML 例如
  • 出现导入错误:无法从“随机”导入名称“随机”[重复]

    这个问题在这里已经有答案了 我在我的计算机上多次运行我的代码 但没有出现此错误 但突然间这个来了 File e Python 3 8 0 lib site packages comtypes client code cache py lin
  • 对 Python DataFrame 进行子集化

    我正在从 R 过渡到 Python 我刚刚开始使用 Pandas 我有一个可以很好地子集化的 R 代码 k1 lt subset data Product p id Month lt mn Year yr select c Time Pro
  • 如何在 Linux 中显示进程状态(阻塞、非阻塞)

    有没有办法查询 Linux 进程表中进程的状态 以便能够演示执行查询时进程是正在运行还是被阻止 我的目标是从进程或程序的 外部 执行此操作 因为我希望从操作系统进程的角度来理解这一点 但欢迎任何想法 这是Python代码阻塞的过程 impo
  • Python 按文件夹模块导入

    我有一个目录结构 example py templates init py a py b py a py and b py只有一个类 名称与文件相同 因为它们是猎豹模板 纯粹出于风格原因 我希望能够在中导入和使用这些类example py像
  • Python 可以使用单独的媒体播放器打开 mp3 文件吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 是否可以开一个mp3Python 中的文件 可以使用Popen 我并不是要在程序中运行它 我的意思是作为媒体播放器中的一个单独窗口或其
  • Python MySQL 模块

    我正在开发一个需要与 MySQL 数据库交互的 Web 应用程序 但我似乎找不到任何真正适合 Python 的模块 我特别寻找快速模块 能够处理数十万个连接 和查询 所有这些都在短时间内完成 而不会对速度产生重大影响 我想我的答案将是游戏领
  • 将列表传递给 PyCrypto 中的 AES 密钥生成器

    我尝试使用 Pycrypto 生成 AES 密钥 但收到以下错误 类型错误 列表 不支持缓冲区接口 对于以下声明 aescipher AES new mykey AES MODE ECB mykey 属于类型list并包含 18854347
  • numpy 数组最快的保存和加载选项

    我有一个生成二维的脚本numpy数组与dtype float和形状的顺序 1e3 1e6 现在我正在使用np save and np load对数组执行 IO 操作 然而 这些函数对于每个数组都需要几秒钟的时间 是否有更快的方法来保存和加载
  • 在 Windows 上将 NumPy 与 BLAS 链接

    我正在尝试在 Windows 系统上安装 Theano 并且需要安装 BLAS 和 LAPACK 我的 System32 文件夹中有这些的 dll 文件 当我运行 numpy config来自 Anaconda 的 show 库的路径正确显
  • PyPI 项目页面中的“Py 版本”是什么意思?这有关系吗?

    我注意到 大多数在 PyPI 上发布的项目在其项目页面中都包含 Py 版本 元数据 但它们的值各不相同 如果包不是通用包或不是纯 python 包 那么它们的值是不同的 这是可以理解的 以便表示它们的目标平台 例如鼻页 https pypi
  • Cython:为什么 size_t 比 int 快?

    更改某些 Cython 变量的类型int输入size t可以显着减少某些功能的时间 30 但我不明白为什么 例如 cimport numpy as cnp import numpy as np def sum int cnp int64 t
  • 在 (i)python 脚本中从 jupyter 内核获取输出

    我想从单个 ipython 会话中打开多个内核 在这些内核上运行代码 然后收集结果 但我不知道如何收集结果 甚至不知道如何查看 stdout stderr 我怎样才能做这些事情呢 到目前为止我所得到的 我已经使用如下代码管理了前两个步骤 打
  • 尝试修复我的功能

    我正在开发一个函数 我必须返回一个元组 其中第一个参数是最大数字的 str 第二个参数是 int 列表 这是示例以及我为该函数编写的内容 投票 G G N G C G 1 3 0 1 您必须将最大值的位置映射到正确的一方 parties N
  • 检测图像是否损坏或损坏

    我需要以编程方式检查用户在我的应用程序上选择作为壁纸的图像是否已损坏或损坏 基本上我为用户提供了选择自己的图像作为壁纸的选项 现在 当图像加载时 我只想检查它是否已损坏 如果您正在寻找 PHP 解决方案而不是 javascript 解决方案
  • 安排 Asyncio 任务每 X 秒执行一次?

    我正在尝试创建一个 python 不和谐机器人 它将每隔 X 秒检查一次活跃会员 并根据会员的在线时间奖励积分 我正在使用 asyncio 来处理聊天命令 这一切都正常 我的问题是找到一种方法来安排每隔 X 秒异步检查一次活动成员 我已经阅
  • 用于桌面数据库应用程序的 Python 框架

    是否有一个框架可以为Python开发桌面数据库应用程序 一些带有CRUD屏幕的屏幕 我正在寻找类似于 Windows 窗体的东西 能够将 TextField Combos 和其他 UI 隐喻与datasets连接到关系数据库例如 MySQL
  • python pandas如何在多个条件下过滤字符串

    我有以下数据框 import pandas as pd data 5Star FiveStar five star fiv estar data pd DataFrame data columns columnName 当我尝试用一 种条件
  • Python pip 安装错误 [SSL: CERTIFICATE_VERIFY_FAILED]

    我已经尝试解决这个问题有一段时间了 由于某种原因 我陷入了 ssl 问题 并且不知道发生了什么 问题 我已经安装了 python2 7 和 easy install2 7 但是当尝试使用 easy install2 7 安装 pip 时 出

随机推荐

  • Spring MVC如何禁止数据绑定到ModelAttribute?

    我有一个简单的 Controller用户登录后呈现页面的类 Controller SessionAttributes user public class DashBoardController RequestMapping value us
  • 在 equals 检查中避免 NullPointerException 的干净方法

    我有一个地址对象 我想为其创建 equals 方法 我可以通过执行类似以下操作 稍微缩短一点 来使这变得非常简单 public boolean equals Object obj if this obj return true if obj
  • NSManagedObject的hasChanges为true,而changedValues为空

    我正在尝试观察个人NSManagedObject变化于NSManagedObjectContextWillSaveNotification void managedObjectContextWillSave NSNotification n
  • 在 VS 2015 和 VS 2013 上运行同一段代码时出现问题

    在 Visual Studio 2013 和 2015 中运行一段代码时 我得到两种不同的结果 在 Visual Studio 2015 上 我得到一个 NullReference 在 2013 年 它按应有的方式工作 Visual Stu
  • 将 JSON NSData 转换为 NSDictionary

    我正在使用 Web 服务的 API 服务 在他们的描述中写道 他们发送 JSON 数据 在我看来 这些数据也与我从中得到的响应相匹配 这是我从 NSURLConnection Delegate connection didReceiveDa
  • 如何创建类的ArrayList?

    如何将一堆类添加到ArrayList
  • 仅使用静态多态性的异构容器

    我的目标是实现一个容器 这里是一组堆栈 每种类型一个 它同时接受许多不同类型的对象 使用 void 指针 或所有存储类型的公共基类 和运行时类型标识 RTTI 在运行时执行此操作非常简单 由于容器将保存的所有类型在编译时都是已知的 因此可能
  • 如何使用 MailApp 在电子邮件中包含内嵌图像

    我有一个简单的 MailApp 来发送 HTML 格式的文本 我的小问题是 如何在该文本中插入内嵌图像 例如 我想为荷兰语文本添加荷兰国旗 为法语内容添加法国国旗 我认为只使用 HTML 代码就可以完成这项工作 但可惜的是 没有这样的运气
  • 更改引荐来源网址的值[重复]

    这个问题在这里已经有答案了 可能的重复 如何在 Javascript 中手动设置 REFERER 标头 https stackoverflow com questions 9580575 how to manually set refere
  • 像工具一样的行为:自定义视图中的文本?

    我有一个自定义视图 布局中有两个文本视图 我们来叫一个key和另一个value 所以你知道怎么做TextView有这个吗
  • 如何从 Minecraft 编辑 .mca 文件?

    介绍 我想将我的各个 Minecraft 世界合并成一个世界 这似乎是一个相对容易的壮举 但随着我的研究 它演变成需要制作一个自定义程序 奋斗 我首先移动区域文件并将它们合并到一个区域文件夹中 这似乎是显而易见的解决方案 而且几乎有效 注意
  • 如何在Plone 5上自定义folder_contents?

    我在 Plone 5 上 我想修改默认显示的列数 folder contents 如果我没记错的话 整个table是一种在相应标签上使用相当大的 JSON data xxx 参数进行初始化的模式 那么 我应该深入研究 JSON 还是将注意力
  • 使用 jQuery 绘制动画线条

    我想使用 jQuery 来创建就像用隐形笔绘制线条图的效果 有点像这样 http d2fhka9tf2vaj2 cloudfront net tuts 152 QTiPad Milestones JavaScriptWebsite html
  • 如何修复 facebook Messenger-checkbox 的 CSP 问题

    我正在努力使Facebook Messenger 复选框 https developers facebook com docs messenger platform plugin reference checkbox plugin工作 我已
  • SKLabelNode没有透明背景

    您好 我在 SKLabelNode 上使用自定义字体 我可以设置字体颜色 但是还可以 但是文本的内部部分是透明的 例如 有什么方法可以将这种颜色设置为白色吗 到目前为止我的代码 scoreLabel fontColor SKColor co
  • 发布集合和 ModelState

    我的 MVC 应用程序中有一个问题 我不确定如何解决 或者我是否以错误的方式解决它 我有一个控制器 视图 它在带有复选框的网格中显示项目列表 当这些项目发布到我的控制器时 我想根据传入的 id 从数据库中删除行 该视图看起来像这样 for
  • 强制 IE9 使用浏览器模式而不是兼容模式

    我在用 in head标签 但是 当我在 IE9 上运行我的应用程序时 它使用浏览器模式 IE 9 紧凑视图 我希望我的应用程序仅使用浏览器模式 IE9 not 兼容视图 我意识到我在这方面有点晚了 但这是我使用过的并且它对我有用 确保这是
  • html5画布中的“擦除”

    我在 html5 canvas 中有一个涂鸦应用程序 我正在尝试找出实现橡皮擦控件的最佳方法 第一个冲动只是让橡皮擦绘制背景颜色 白色 但这是有问题的 因为如果用户将图像或另一层移动到他们之前擦除的位置 他们会在擦除的位置看到白色绘图 理想
  • FetchXml 中的左连接?

    如何使用 FetchXml 进行左连接 考虑一个简单的 SQL 查询 如下所示 select person name address city from person left join address on person addressi
  • QToolTip 中包含的变量不会自动更新

    我在 QLineEdit 上有一个 QToolTip 并且工具提示包含文本中的变量 工具提示代码包含在 init h 文件中 问题是工具提示中的变量值在程序运行中发生更改时不会自动更新 例如 我将鼠标悬停在行编辑上 值会显示在工具提示中 我