簡體   English   中英

tkinter.ttk 中缺少 ttk.Spinbox?

[英]ttk.Spinbox missing in tkinter.ttk?

我使用的 tkinter 版本正在訪問 tk.TclVersion=8.6。

我可以從ttk.Style()訪問 stylename='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存在。 但是在 Python 3.6.5 tkinter.ttk ,這樣的小部件不存在:

AttributeError: module 'tkinter.ttk' has no attribute 'Spinbox'

我可以知道這個小部件什么時候可用,或者哪個版本的 Python tkinter.ttk已經提供了ttk.Spinbox小部件? 謝謝。

你說得對,省略了 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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM