- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想创建一个悬停框(或信息框),当用户将鼠标光标放在 Pmw RadioSelect 标签 上时它会打开。例如,当光标放在“Primary”上方时,程序会打开一个信息框,解释“Primary”的含义。
问题:我不知道如何访问 RadioSelect 对象内部的各个标签。我需要将一个方法绑定(bind)到各个标签,但我不知道如何引用它们。
额外:我怎么能自己解决这个问题?我试着用 dir() 查看 RadioSelect 属性,并在线阅读了 Pmw 手册,但找不到相关信息。
编辑 这是我到目前为止发现的:manual说标签只有在明确设置位置后才开始存在:
labelpos
Initialisation option. Specifies where to place the label component.
If None, a label component is not created. The default is None
在明确设置之后,例如:
self.rs = Pmw.RadioSelect(parent, labelpos = 'w')
你可以引用它self.rs.component('标签')
但我仍然不知道如何访问各个标签。
编辑 2: 诀窍只是将 RadioSelect“项目”分配给变量,就像接受的答案所建议的那样:
self.cb1 = self.radio_select.add("text")
将“项目”分配给变量后,您可以简单地将方法绑定(bind)到变量,如下所示:
self.balloon = Pmw.Balloon(self, initwait=500, relmouse='both')
self.balloon.bind(self.cb1, "Balloon text example")
最佳答案
如果我很了解你的问题,我认为你正在寻找:
Pmw.RadioSelect
中的单个标签)Pmw.Balloon()
并将其绑定(bind)到各个复选按钮(或您所称的标签 ).我重新编程了,如下所示,但使用了另一种方法。我的意思是我主要依靠 add()
返回组件小部件。然后我将 Pmw.Balloon()
的实例绑定(bind)到 add()
的返回值。这样做,您已经为自己提供了一种单独访问复选按钮的方法(如果需要,您可以玩更多)getvalue()
访问单个复选按钮(标签)或 getcurselection()
通过返回返回当前选定按钮的名称来类似工作的方法。 但是在实践中,您会得到元组(我的意思是这些函数返回所有选定的复选按钮的名称,正如我在用作回调方法的access_to_labels_individually()
中所示显示您选择的复选按钮的名称;当然您也可以根据需要使用它)这是一个 MVCE程序:
'''
Created on Jun 18, 2016
@author: Billal BEGUERADJ
'''
# -*- coding: utf-8 -*-
import Pmw
import tkinter as tk
class Begueradj:
def __init__(self, parent):
self.balloon = Pmw.Balloon(parent)
# Create and pack a vertical RadioSelect widget, with checkbuttons.
self.checkbuttons = Pmw.RadioSelect(parent,
buttontype = 'checkbutton',
orient = 'vertical',
labelpos = 'w',
command = self.access_to_labels_individually,
hull_borderwidth = 2,
hull_relief = 'ridge',
)
self.checkbuttons.pack(side = 'left', expand = 1, padx = 10, pady = 10)
# Add some buttons to the checkbutton RadioSelect
self.cb1 = self.checkbuttons.add('Primary')
self.cb2 = self.checkbuttons.add('Secondary')
self.cb3 = self.checkbuttons.add('Tertiary')
# Bind the Balloon instance to each widget
self.balloon.bind(self.cb1, 'Primary:\n This is our primary service')
self.balloon.bind(self.cb2, 'Secondary:\n This is our primary service')
self.balloon.bind(self.cb3, 'Tertiary:\n This is our primary service')
# You can use getvalue() or getcurselection() to access individual labels
def access_to_labels_individually(self, tag, state):
print(self.checkbuttons.getvalue())
# Main program starts here
if __name__ =='__main__':
begueradj = Pmw.initialise(fontScheme = 'pmw1')
begueradj.title('Billal BEGUERADJ')
d = Begueradj(begueradj)
begueradj.mainloop()
(我保留相同的屏幕截图,因为上面的程序产生相同的结果)
以下是与鼠标悬停在每个 tkinter.Checkbutton()
实例上相关的正在运行的程序的屏幕截图,无论它是否被选中:
关于Python:引用 Pmw RadioSelect 中的单个标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37875456/
问题: 我想安装 Pmw 2.0.0(项目页面 here),以便我可以在 python3 中将它与 tkinter 一起使用。软件包中的安装脚本会检测您正在使用的 python 版本,并安装适合您系统
我有一个使用 Pmw 库的 GUI,根的背景是蓝色的。当小部件放置在蓝色背景上时,小部件的灰色原始颜色显示在蓝色背景上。我设法通过更改 EntryField 的标签部分的 label_bg 属性来删除
我添加了一个按钮: def addButtons(self): self.buttonBox = Pmw.ButtonBox(self.dataFrame, label
我想创建一个悬停框(或信息框),当用户将鼠标光标放在 Pmw RadioSelect 标签 上时它会打开。例如,当光标放在“Primary”上方时,程序会打开一个信息框,解释“Primary”的含义。
我正在寻找一种方法来禁用 Pmw.ComboBox 小部件的直接编辑。使用 entry_field=DISABLED 进行小部件配置会导致组合框灰显且无法使用。这是我的代码,它允许直接编辑菜单:
在我的 pydev eclipse 中出现未解析的导入:Pmw,我从以下位置下载了 Pmw:http://pmw.sourceforge.net/ http://sourceforge.net/pro
我正在尝试使用 Py2exe 构建我的独立可执行文件。我导入了 Pmw 类。当我运行 stanalone 可执行文件时,出现此错误: Traceback (most recent call last)
这是我的问题:我正在运行 this 中的代码例子。我在我的 RaspberryPi 上安装了 Python 2.7 和 3,但我已经检查并仔细检查过,我在 2.7 中运行代码。我在 2.7 下安装了
基于此Previos Post我想弄清楚如何从我的 python 文件中生成一个 exe 文件。主要问题似乎是 Pmw 及其模块似乎无法通过 pyinstaller 正确导入。主要错误是: FileN
我是一名优秀的程序员,十分优秀!