我使用的tkinter版本是访问tk.TclVersion=8.6。
我能够从ttk.Style()访问手写名称=‘TSpinbox’。
Stylename = TSpinbox
Layout = [('Spinbox.field', {'side': 'top', 'sticky': 'we', 'children': [('null', {'side': 'right', 'sticky': '', 'children': [('Spinbox.uparrow', {'side': 'top', 'sticky': 'e'}), ('Spinbox.downarrow', {'side': 'bottom', 'sticky': 'e'})]}), ('Spinbox.padding', {'sticky': 'nswe', 'children': [('Spinbox.textarea', {'sticky': 'nswe'})]})]})]
Element(s) = ['Spinbox.field', 'null', 'Spinbox.uparrow', 'Spinbox.downarrow', 'Spinbox.padding', 'Spinbox.textarea']
Spinbox.field options: ('fieldbackground', 'borderwidth')
null options: ()
Spinbox.uparrow options: ('background', 'relief', 'borderwidth', 'arrowcolor', 'arrowsize')
Spinbox.downarrow options: ('background', 'relief', 'borderwidth', 'arrowcolor', 'arrowsize')
Spinbox.padding options: ('padding', 'relief', 'shiftrelief')
Spinbox.textarea options: ('font', 'width')根据文档的说法,小部件ttk.Spinbox存在。但是在Python3.6.5 tkinter.ttk中,不存在这样的小部件:
AttributeError: module 'tkinter.ttk' has no attribute 'Spinbox'我可以知道这个小部件何时可用,或者哪个版本的pythontkinter.ttk已经提供了ttk.Spinbox小部件?谢谢。
发布于 2018-09-21 09:45:07
您说得对,ttk Spinbox的实现被省略了。这个问题已经在python 3.7中解决了。。
但是,您可以复制这个实现来自己完成这个任务:
import tkinter as tk
from tkinter import ttk
class Spinbox(ttk.Entry):
def __init__(self, master=None, **kw):
ttk.Entry.__init__(self, master, "ttk::spinbox", **kw)
def set(self, value):
self.tk.call(self._w, "set", value)
root = tk.Tk()
s = Spinbox(root, from_=0, to=10)
s.set(5)
s.pack()
root.mainloop()https://stackoverflow.com/questions/52440314
复制相似问题