- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
除了已记录的类之外,ttk.Spinbox 类和 tk.Spinbox 类之间有什么区别?
我发现了一些差异,例如:
'%d'
,而 tk.Spinbox 打印 'up'
或 'down'
(下面的工作示例)后者是一个错误吗?如果是,有办法解决这个问题吗?我想使用 ttk.Spinbox,因为 tk.Spinbox 没有正确设置样式,没有 .set() 等。
以下代码生成两个 Spinbox。第一个继承自 tkinter,第二个继承自 ttk。它们的修改是相同的。
import tkinter as tk
import tkinter.ttk as ttk
class TkSpinbox(tk.Spinbox):
def __init__(self, *args, **kwargs):
super().__init__(*args, increment = 1, **kwargs)
self.tcl_do_upon_clicking_arrows = self.register(self.do_upon_clicking_arrows)
self.config(command = (self.tcl_do_upon_clicking_arrows, '%d'))
self.tcl_validate = self.register(self.validate)
self.config(validate = 'all', validatecommand = (self.tcl_validate, '%d'))
def do_upon_clicking_arrows(self, direction):
print(direction)
def validate(self, typeOfAction):
print(typeOfAction)
return(True)
class TtkSpinbox(ttk.Spinbox):
def __init__(self, *args, **kwargs):
super().__init__(*args, increment = 1, **kwargs)
self.tcl_do_upon_clicking_arrows = self.register(self.do_upon_clicking_arrows)
self.config(command = (self.tcl_do_upon_clicking_arrows, '%d'))
self.tcl_validate = self.register(self.validate)
self.config(validate = 'all', validatecommand = (self.tcl_validate, '%d'))
def do_upon_clicking_arrows(self, direction):
print(direction)
def validate(self, typeOfAction):
print(typeOfAction)
return(True)
root = tk.Tk()
tkSpinbox = TkSpinbox()
ttkSpinbox = TtkSpinbox()
tkSpinbox.grid()
ttkSpinbox.grid()
root.mainloop()
2018 年 12 月,tkinter 8.6 进行了更新,其中向 ttk 添加了 Spinbox。据我了解,在 tkinter 8.5 中,没有特殊的 ttk.Spinbox,尽管 ttk.Spinbox 确实遵循 ttk 的 Style 等。所以必须定义一些东西,对吗?
我在 tkinter 8.6 和 8.5 中尝试过这个(据说没有 Spinbox 但仍然正确设置样式)并得到了相同的结果。即,ttk.Spinbox 打印 '%d'
,而 tk.Spinbox 打印 'up'
或 'down'
。然而,validatecommand 在这两种情况下都按预期工作。
我检查了the Tk source code bug repository查了bug报告,但没有发现这个问题。我是否正确使用了 ttk.Spinbox 的命令?
最佳答案
使用 Tcl/Tk:
按下箭头后 ttk.Spinbox 设置为 0,而 tk.Spinbox没有。
必须设置 -to 值。
ttk.Spinbox 不会通过按箭头来验证更改,而 tk.Spinbox 会。
实际上是 tk.spinbox 中的一个错误——它做得太多了。如果输入有效,则向上或向下操作不会使其无效。
在 OSX 上按下 ttk.Spinbox 箭头按钮时,tk.Spinbox 不会亮起箭头按钮可以。在 Windows 上,两者都会亮起。
OSX 小部件实现与 Windows 是分开的,并且都试图与原生外观和感觉相匹配。实现问题。
至关重要的是,检索方向适用于 tk.Spinbox,但不适用于 ttk.Spinbox:ttk.Spinbox 打印“%d”,而 tk.Spinbox 打印“向上”或“向下”(下面的工作示例)
这里的问题是,python 在 tcl_do_upon_clicking_arrows 内部做什么?Tk 中没有特定的绑定(bind)可以执行此操作。没有 %d 个绑定(bind)参数在 Tk 中返回向上/向下。
这是一个 python tkinter 问题。
在 Tk 中,关联变量或验证命令的跟踪将用于跟踪更改。
关于python - ttk.Spinbox 和 tk.Spinbox 之间的行为差异是什么(ttk 中的箭头方向有问题吗?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54753119/
我正在使用的 tkinter 版本正在访问 tk.TclVersion=8.6。 我可以从 ttk.Style() 访问 stylename='TSpinbox'。 Stylename = TSpin
是否可以配置具有透明背景的 tkinter 或 ttk 小部件(Label、Entry、Text)以便放置它们在具有自定义背景颜色的容器中或在 Canvas 图形或图像之上? 我也在寻找一种方法来更改
我需要为按钮小部件创建一个自定义样式,它与使用 ttk 'clam' 主题的按钮具有相同的外观。 我可以这样设置主题: s = ttk.Style() s.theme_use('clam') 但是,鉴
最近开始使用 ttk 来改善我的 GUI 外观,但我在编辑 ttk.OptionMenu 样式时遇到了困难。正如我所理解的,下面的代码应该改变所有单选按钮和选项菜单的背景。对于 Radiobutton
除了已记录的类之外,ttk.Spinbox 类和 tk.Spinbox 类之间有什么区别? 我发现了一些差异,例如: ttk.Spinbox 在按下箭头后设置为 0,而 tk.Spinbox 则不会。
我正在使用主要使用 C 和 C++ 构建的遗留(桌面风格,现在已知)Windows 应用程序。当此应用程序在触摸屏 Windows 笔记本电脑上运行时,我需要在用户点击对话框屏幕上的输入框时自动显示触
我在使用 ttk.Notebook 和 grid 布局管理器布局两个相同的 ttk.Treeview 小部件时遇到问题。当我仅使用一个 TreeView (放置在标签框架中、放置在框架(部分)中、放置
有人可以解释一下为什么entry.select_range()适用于Button,但不适用于ttk.Button吗? from tkinter import * from tkinter import
考虑这个简单的代码: from tkinter import * from tkinter.ttk import * root= Tk() ttk.Label(root, text='Heading
我正在尝试在我的程序中加入可自定义的主题选择。我一直在引用这个指南:http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/ttk-themes.html
考虑这个简单的代码: from Tkinter import * import ttk root= Tk() ttk.Label(root, text='Heading Here').grid(row
当我更改图像的前景色时,包含位图图像的 ttk 标签无法正常工作。只有 ttk 标签有这个问题。 Tkinter 标签正常工作。 代码如下: import tkinter as tk import t
我有一排包含 ttk.Combobox 的小部件,当我勾选该行末尾的复选框时,我想更改该行中小部件的背景颜色。对于 tkinter,只需使用配置就很简单,但是对于 ttk,您必须使用一个主题,该主题似
这是我的代码 from Tkinter import * import ttk, tkMessageBox import os font = ("Avenir", 24) b = ttk.Style(
我想制作一个简单的弹出消息,当鼠标进入选项时显示以图标表示的选项名称,并在鼠标离开时隐藏。 这些图标是按钮内的图像,我已经能够在使用菜单小部件输入按钮时显示消息,但是当鼠标离开按钮时,它不会取消发布,
import tkinter from tkinter import ttk def main(): root = tkinter.Tk() numpad = NumPad(root)
我正在尝试使用这个问题 (Tk treeview column sort) 的答案中说明的 ttk.Treeview 排序函数,它适用于像“abc”、“bcd”、“cde”等字符串,但是当我尝试对数字
我有一个处于“禁用”状态的 ttk 条目。禁用时输入字段的背景颜色为浅蓝色。我怎样才能将它更改为默认的灰色?从这篇文章中,我了解了如何更改前景色。 tkinter ttk Entry widget -
使用ttk标签,可以指定根据标签状态显示的多个图像。但我无法让它发挥作用。这是代码。 from tkinter import * from tkinter.ttk import * BITMAP0 =
Python ttk gui 的创建很容易,并且大部分具有原生的外观和感觉 (win7)。不过,我遇到了一个小问题: 我想要一个看起来像 ttk.LabelFrame 但没有标签的框架。仅仅省略文本选
我是一名优秀的程序员,十分优秀!