tkinter.ttk --- Widget theo chủ đề Tk

Source code: Lib/tkinter/ttk.py


Mô-đun tkinter.ttk cung cấp quyền truy cập vào bộ tiện ích theo chủ đề Tk, được giới thiệu trong Tk 8.5. Nó cung cấp các lợi ích bổ sung bao gồm hiển thị phông chữ khử răng cưa trong X11 và độ trong suốt của cửa sổ (yêu cầu trình quản lý cửa sổ bố cục trên X11).

Ý tưởng cơ bản của tkinter.ttk là tách biệt, trong phạm vi có thể, mã triển khai hành vi của tiện ích khỏi mã triển khai giao diện của nó.

Xem thêm

Tk Widget Styling Support

Tài liệu giới thiệu hỗ trợ theme cho Tk

Sử dụng Ttk

Để bắt đầu sử dụng Ttk, hãy nhập mô-đun của nó

từ tkinter nhập ttk

Để ghi đè các tiện ích Tk cơ bản, quá trình nhập phải tuân theo quá trình nhập Tk

từ nhập tkinter *
từ nhập tkinter.ttk *

Mã đó khiến một số tiện ích tkinter.ttk (Button, Checkbutton, Entry, Frame, Label, LabelFrame, Menubutton, PanedWindow, Radiobutton, ScaleScrollbar) tự động thay thế các tiện ích Tk.

Điều này mang lại lợi ích trực tiếp cho việc sử dụng các tiện ích mới mang lại giao diện tốt hơn trên các nền tảng; tuy nhiên, các widget thay thế không hoàn toàn tương thích. Sự khác biệt chính là các tùy chọn tiện ích như "fg", "bg" và các tùy chọn khác liên quan đến kiểu dáng tiện ích không còn xuất hiện trong các tiện ích Ttk. Thay vào đó, hãy sử dụng lớp ttk.Style để cải thiện hiệu ứng kiểu dáng.

Xem thêm

Converting existing applications to use Tile widgets

Một chuyên khảo (sử dụng thuật ngữ Tcl) về những khác biệt thường gặp khi chuyển ứng dụng sang sử dụng các tiện ích mới.

Widget Ttk

Ttk đi kèm với 18 widget, 12 trong số đó đã tồn tại trong tkinter: Button, Checkbutton, Entry, Frame, Label, LabelFrame, Menubutton, PanedWindow, Radiobutton, Scale, ScrollbarSpinbox. Sáu cái còn lại là mới: Combobox, Notebook, Progressbar, Separator, SizegripTreeview. Và tất cả chúng đều là lớp con của Widget.

Việc sử dụng các tiện ích Ttk mang lại cho ứng dụng giao diện được cải thiện. Như đã thảo luận ở trên, có sự khác biệt trong cách mã hóa kiểu dáng.

Mã TK:

l1 = tkinter.Label(text="Test", fg="black", bg="white")
l2 = tkinter.Label(text="Test", fg="black", bg="white")

Mã TTK:

phong cách = ttk.Style()
style.configure("BW.TLabel", foreground="black", Background="white")

l1 = ttk.Label(text="Test", style="BW.TLabel")
l2 = ttk.Label(text="Test", style="BW.TLabel")

Để biết thêm thông tin về TtkStyling, hãy xem tài liệu về lớp Style.

Tiện ích

ttk.Widget xác định các tùy chọn và phương thức tiêu chuẩn được hỗ trợ bởi các tiện ích theo chủ đề Tk và không được khởi tạo trực tiếp.

Tùy chọn tiêu chuẩn

Tất cả các Widget ttk đều chấp nhận các tùy chọn sau:

Tùy chọn

Mô tả

lớp học

Chỉ định lớp cửa sổ. Lớp này được sử dụng khi truy vấn cơ sở dữ liệu tùy chọn để tìm các tùy chọn khác của cửa sổ, để xác định các thẻ liên kết mặc định cho cửa sổ và để chọn kiểu và bố cục mặc định của tiện ích. Tùy chọn này ở chế độ chỉ đọc và chỉ có thể được chỉ định khi cửa sổ được tạo.

con trỏ

Chỉ định con trỏ chuột sẽ được sử dụng cho tiện ích. Nếu được đặt thành chuỗi trống (mặc định), con trỏ sẽ được kế thừa cho tiện ích mẹ.

tập trung

Xác định xem cửa sổ có chấp nhận tiêu điểm trong quá trình di chuyển bằng bàn phím hay không. 0, 1 hoặc một chuỗi trống được trả về. Nếu trả về 0, điều đó có nghĩa là cửa sổ sẽ bị bỏ qua hoàn toàn trong quá trình di chuyển bằng bàn phím. Nếu là 1, điều đó có nghĩa là cửa sổ sẽ nhận được tiêu điểm đầu vào miễn là nó có thể xem được. Và một chuỗi trống có nghĩa là các tập lệnh truyền tải sẽ đưa ra quyết định về việc có tập trung vào cửa sổ hay không.

phong cách

Có thể được sử dụng để chỉ định kiểu tiện ích tùy chỉnh.

Tùy chọn tiện ích có thể cuộn

Các tùy chọn sau được hỗ trợ bởi các tiện ích được điều khiển bằng thanh cuộn.

Tùy chọn

Mô tả

lệnh xscroll

Được sử dụng để giao tiếp với thanh cuộn ngang.

Khi chế độ xem trong cửa sổ của tiện ích thay đổi, tiện ích sẽ tạo lệnh Tcl dựa trên lệnh cuộn.

Thông thường tùy chọn này bao gồm phương thức Scrollbar.set() của một số thanh cuộn. Điều này sẽ khiến thanh cuộn được cập nhật bất cứ khi nào chế độ xem trong cửa sổ thay đổi.

lệnh yscroll

Được sử dụng để giao tiếp với thanh cuộn dọc. Để biết thêm thông tin, xem ở trên.

Tùy chọn nhãn

Các tùy chọn sau được hỗ trợ bởi nhãn, nút và các tiện ích giống nút khác.

Tùy chọn

Mô tả

văn bản

Chỉ định một chuỗi văn bản sẽ được hiển thị bên trong tiện ích.

văn bản biến

Chỉ định tên có giá trị sẽ được sử dụng thay cho tài nguyên tùy chọn văn bản.

gạch chân

Nếu được đặt, hãy chỉ định chỉ mục (dựa trên 0) của ký tự để gạch chân trong chuỗi văn bản. Ký tự gạch chân được sử dụng để kích hoạt khả năng ghi nhớ.

hình ảnh

Chỉ định một hình ảnh để hiển thị. Đây là danh sách gồm 1 hoặc nhiều phần tử. Phần tử đầu tiên là tên hình ảnh mặc định. Phần còn lại của danh sách nếu một chuỗi các cặp trạng thái/giá trị được xác định bởi Style.map(), chỉ định các hình ảnh khác nhau sẽ sử dụng khi tiện ích ở trạng thái cụ thể hoặc kết hợp các trạng thái. Tất cả hình ảnh trong danh sách phải có cùng kích thước.

hợp chất

Chỉ định cách hiển thị hình ảnh liên quan đến văn bản, trong trường hợp có cả tùy chọn văn bản và hình ảnh. Các giá trị hợp lệ là:

  • văn bản: chỉ hiển thị văn bản

  • hình ảnh: chỉ hiển thị hình ảnh

  • trên, dưới, trái, phải: hiển thị hình ảnh tương ứng bên trên, bên dưới, bên trái hoặc bên phải của văn bản.

  • không có: mặc định. hiển thị hình ảnh nếu có, nếu không thì hiển thị văn bản.

chiều rộng

Nếu lớn hơn 0, hãy chỉ định khoảng cách, tính theo chiều rộng ký tự, để phân bổ cho nhãn văn bản, nếu nhỏ hơn 0, hãy chỉ định chiều rộng tối thiểu. Nếu bằng 0 hoặc không được chỉ định thì chiều rộng tự nhiên của nhãn văn bản sẽ được sử dụng.

Tùy chọn tương thích

Tùy chọn

Mô tả

tiểu bang

Có thể được đặt thành "bình thường" hoặc "bị vô hiệu hóa" để kiểm soát bit trạng thái "bị vô hiệu hóa". Đây là tùy chọn chỉ ghi: cài đặt nó sẽ thay đổi trạng thái widget, nhưng phương thức Widget.state() không ảnh hưởng đến tùy chọn này.

Trạng thái tiện ích

Trạng thái widget là một bitmap của các cờ trạng thái độc lập.

Cờ

Mô tả

hoạt động

Con trỏ chuột ở trên tiện ích và nhấn nút chuột sẽ khiến một số hành động xảy ra

bị vô hiệu hóa

Widget bị vô hiệu hóa dưới sự kiểm soát của chương trình

tiêu điểm

Widget có tiêu điểm bàn phím

ép

Tiện ích đang được nhấn

đã chọn

"Bật", "đúng" hoặc "hiện tại" cho những thứ như Nút kiểm tra và nút radio

nền

Windows và Mac có khái niệm về cửa sổ "hoạt động" hoặc tiền cảnh. Trạng thái background được đặt cho các tiện ích trong cửa sổ nền và bị xóa đối với các tiện ích trong cửa sổ nền trước

chỉ đọc

Widget không được phép sửa đổi người dùng

thay thế

Định dạng hiển thị thay thế dành riêng cho widget

không hợp lệ

Giá trị của tiện ích không hợp lệ

Đặc tả trạng thái là một chuỗi các tên trạng thái, tùy chọn có tiền tố là dấu chấm than cho biết rằng bit bị tắt.

ttk.Widget

Ngoài các phương thức được mô tả bên dưới, ttk.Widget còn hỗ trợ các phương thức tkinter.Widget.cget()tkinter.Widget.configure().

class tkinter.ttk.Widget
identify(x, y)

Trả về tên của phần tử tại vị trí x y hoặc chuỗi trống nếu điểm không nằm trong bất kỳ phần tử nào.

xy là tọa độ pixel tương ứng với tiện ích.

instate(statespec, callback=None, *args, **kw)

Kiểm tra trạng thái của widget. Nếu lệnh gọi lại không được chỉ định, trả về True nếu trạng thái tiện ích khớp với statespecFalse nếu không. Nếu lệnh gọi lại được chỉ định thì nó sẽ được gọi bằng args nếu trạng thái widget khớp với statespec.

state(statespec=None)

Sửa đổi hoặc hỏi trạng thái tiện ích. Nếu statespec được chỉ định, hãy đặt trạng thái tiện ích theo trạng thái đó và trả về statespec mới cho biết cờ nào đã được thay đổi. Nếu statespec không được chỉ định, trả về cờ trạng thái hiện được bật.

statespec thường sẽ là một danh sách hoặc một bộ dữ liệu.

Hộp tổ hợp

Tiện ích ttk.Combobox kết hợp trường văn bản với danh sách giá trị bật xuống. Tiện ích này là một lớp con của Entry.

Ngoài các phương thức được kế thừa từ Widget: Widget.cget(), Widget.configure(), Widget.identify(), Widget.instate()Widget.state(), và các phương thức sau được kế thừa từ Entry: Entry.bbox(), Entry.delete(), Entry.icursor(), Entry.index(), Entry.insert(), Entry.selection(), Entry.xview(), nó còn có một số phương thức khác, được mô tả tại ttk.Combobox.

Tùy chọn

Tiện ích này chấp nhận các tùy chọn cụ thể sau:

Tùy chọn

Mô tả

xuất khẩu

Giá trị Boolean. Nếu được đặt, lựa chọn tiện ích sẽ được liên kết với lựa chọn Trình quản lý cửa sổ (ví dụ: có thể được trả về bằng cách gọi Misc.selection_get).

biện minh

Chỉ định cách căn chỉnh văn bản trong tiện ích. Một trong những "trái", "giữa" hoặc "phải".

chiều cao

Chỉ định chiều cao của hộp danh sách bật xuống, theo hàng.

hậu lệnh

Một tập lệnh (có thể được đăng ký với Misc.register) được gọi ngay trước khi hiển thị các giá trị. Nó có thể chỉ định giá trị nào sẽ hiển thị.

tiểu bang

Một trong những "bình thường", "chỉ đọc" hoặc "bị vô hiệu hóa". Ở trạng thái "chỉ đọc", giá trị không thể được chỉnh sửa trực tiếp và người dùng chỉ có thể chọn các giá trị từ danh sách thả xuống. Ở trạng thái "bình thường", trường văn bản có thể chỉnh sửa trực tiếp. Ở trạng thái "bị vô hiệu hóa", không thể tương tác được.

văn bản biến

Chỉ định tên có giá trị được liên kết với giá trị tiện ích. Bất cứ khi nào giá trị được liên kết với tên đó thay đổi, giá trị widget sẽ được cập nhật và ngược lại. Xem tkinter.StringVar.

giá trị

Chỉ định danh sách các giá trị sẽ hiển thị trong hộp danh sách thả xuống.

chiều rộng

Chỉ định một giá trị số nguyên cho biết độ rộng mong muốn của cửa sổ nhập, bằng các ký tự có kích thước trung bình của phông chữ của tiện ích.

Sự kiện ảo

Các tiện ích hộp tổ hợp tạo ra sự kiện ảo <<ComboboxSelected>> khi người dùng chọn một phần tử từ danh sách giá trị.

ttk.Combobox

class tkinter.ttk.Combobox
current(newindex=None)

Nếu newindex được chỉ định, hãy đặt giá trị combobox ở vị trí phần tử newindex. Ngược lại, trả về chỉ mục của giá trị hiện tại hoặc -1 nếu giá trị hiện tại không có trong danh sách giá trị.

get()

Trả về giá trị hiện tại của combobox.

set(value)

Đặt giá trị của combobox thành value.

hộp quay

Tiện ích ttk.Spinboxttk.Entry được cải tiến với các mũi tên tăng và giảm. Nó có thể được sử dụng cho số hoặc danh sách các giá trị chuỗi. Tiện ích này là một lớp con của Entry.

Bên cạnh các phương thức được kế thừa từ Widget: Widget.cget(), Widget.configure(), Widget.identify(), Widget.instate()Widget.state(), và các phương thức sau được kế thừa từ Entry: Entry.bbox(), Entry.delete(), Entry.icursor(), Entry.index(), Entry.insert(), Entry.xview(), nó còn có một số phương thức khác, được mô tả tại ttk.Spinbox.

Tùy chọn

Tiện ích này chấp nhận các tùy chọn cụ thể sau:

Tùy chọn

Mô tả

từ

Giá trị nổi. Nếu được đặt, đây là giá trị tối thiểu mà nút giảm sẽ giảm. Phải được đánh vần là from_ khi được sử dụng làm đối số, vì from là từ khóa Python.

để

Giá trị nổi. Nếu được đặt, đây là giá trị tối đa mà nút tăng sẽ tăng.

gia tăng

Giá trị nổi. Chỉ định mức độ mà các nút tăng/giảm thay đổi giá trị. Mặc định là 1.0.

giá trị

Chuỗi các giá trị chuỗi hoặc float. Nếu được chỉ định, các nút tăng/giảm sẽ chuyển qua các mục trong chuỗi này thay vì tăng hoặc giảm số.

bọc

Giá trị Boolean. Nếu True, các nút tăng và giảm sẽ lần lượt chuyển từ giá trị to sang giá trị from hoặc giá trị from sang giá trị to.

định dạng

Giá trị chuỗi. Điều này chỉ định định dạng của các số được đặt bằng các nút tăng/giảm. Nó phải ở dạng "%W.Pf", trong đó W là độ rộng đệm của giá trị, P là độ chính xác và '%' và 'f' là chữ.

lệnh

Python có thể gọi được. Sẽ được gọi mà không có đối số bất cứ khi nào nhấn nút tăng hoặc giảm.

Sự kiện ảo

Tiện ích spinbox tạo ra sự kiện ảo <<Increment>> khi người dùng nhấn <Up> và sự kiện ảo <<Decrement>> khi người dùng nhấn <Down>.

ttk.Spinbox

class tkinter.ttk.Spinbox
get()

Trả về giá trị hiện tại của spinbox.

set(value)

Đặt giá trị của spinbox thành value.

Sổ tay

Tiện ích Ttk Notebook quản lý một bộ sưu tập các cửa sổ và hiển thị từng cửa sổ một. Mỗi cửa sổ con được liên kết với một tab mà người dùng có thể chọn để thay đổi cửa sổ hiện đang hiển thị.

Tùy chọn

Tiện ích này chấp nhận các tùy chọn cụ thể sau:

Tùy chọn

Mô tả

chiều cao

Nếu có và lớn hơn 0, hãy chỉ định chiều cao mong muốn của vùng khung (không bao gồm phần đệm hoặc tab bên trong). Nếu không, chiều cao tối đa của tất cả các ô sẽ được sử dụng.

phần đệm

Chỉ định lượng không gian bổ sung cần thêm xung quanh bên ngoài sổ ghi chép. Phần đệm là một danh sách có tối đa bốn thông số kỹ thuật về độ dài trái trên cùng bên phải dưới cùng. Nếu ít hơn bốn phần tử được chỉ định, giá trị mặc định dưới cùng là trên cùng, bên phải mặc định là bên trái và trên cùng mặc định là bên trái.

chiều rộng

Nếu có và lớn hơn 0, hãy chỉ định chiều rộng mong muốn của vùng khung (không bao gồm phần đệm bên trong). Nếu không, chiều rộng tối đa của tất cả các ô sẽ được sử dụng.

Tùy chọn tab

Ngoài ra còn có các tùy chọn cụ thể cho các tab:

Tùy chọn

Mô tả

tiểu bang

"Bình thường", "bị vô hiệu hóa" hoặc "ẩn". Nếu "tắt", thì tab đó không thể chọn được. Nếu "ẩn" thì tab đó sẽ không được hiển thị.

dính

Chỉ định cách định vị cửa sổ con trong khu vực khung. Giá trị là một chuỗi chứa 0 hoặc nhiều ký tự "n", "s", "e" hoặc "w". Mỗi chữ cái đề cập đến một phía (bắc, nam, đông hoặc tây) mà cửa sổ con sẽ bám vào, theo trình quản lý hình học grid().

phần đệm

Chỉ định lượng không gian bổ sung cần thêm giữa sổ ghi chép và ngăn này. Cú pháp giống như đối với phần đệm tùy chọn được tiện ích này sử dụng.

văn bản

Chỉ định một văn bản sẽ được hiển thị trong tab.

hình ảnh

Chỉ định một hình ảnh để hiển thị trong tab. Xem hình ảnh tùy chọn được mô tả trong Widget.

hợp chất

Chỉ định cách hiển thị hình ảnh liên quan đến văn bản, trong trường hợp có cả hai tùy chọn văn bản và hình ảnh. Xem Label Options để biết giá trị pháp lý.

gạch chân

Chỉ định chỉ mục (dựa trên 0) của một ký tự để gạch chân trong chuỗi văn bản. Ký tự được gạch chân được sử dụng để kích hoạt ghi nhớ nếu Notebook.enable_traversal() được gọi.

Mã định danh tab

Tab_id hiện diện trong một số phương thức của ttk.Notebook có thể có bất kỳ dạng nào sau đây:

  • Một số nguyên giữa số 0 và số lượng tab

  • Tên của cửa sổ con

  • Đặc tả vị trí có dạng "@x,y", xác định tab

  • Chuỗi ký tự "hiện tại", xác định tab hiện được chọn

  • Chuỗi ký tự "end", trả về số lượng tab (chỉ hợp lệ cho Notebook.index())

Sự kiện ảo

Tiện ích này tạo ra sự kiện ảo <<NotebookTabChanged>> sau khi tab mới được chọn.

ttk.Notebook

class tkinter.ttk.Notebook
add(child, **kw)

Thêm một tab mới vào sổ ghi chép.

Nếu cửa sổ hiện được quản lý bởi sổ ghi chép nhưng bị ẩn thì nó sẽ được khôi phục về vị trí trước đó.

Xem Tab Options để biết danh sách các tùy chọn có sẵn.

forget(tab_id)

Xóa tab được chỉ định bởi tab_id, hủy ánh xạ và hủy quản lý cửa sổ liên quan.

hide(tab_id)

Ẩn tab được chỉ định bởi tab_id.

Tab này sẽ không được hiển thị nhưng cửa sổ liên quan vẫn được quản lý bởi sổ ghi chép và cấu hình của nó được ghi nhớ. Các tab ẩn có thể được khôi phục bằng lệnh add().

identify(x, y)

Trả về tên của thành phần tab tại vị trí x, y hoặc chuỗi trống nếu không có.

index(tab_id)

Trả về chỉ mục dạng số của tab được chỉ định bởi tab_id hoặc tổng số tab nếu tab_id là chuỗi "kết thúc".

insert(pos, child, **kw)

Chèn một khung vào vị trí đã chỉ định.

pos là chuỗi "end", chỉ mục số nguyên hoặc tên của thành phần con được quản lý. Nếu child đã được quản lý bởi sổ ghi chép, hãy di chuyển nó đến vị trí đã chỉ định.

Xem Tab Options để biết danh sách các tùy chọn có sẵn.

select(tab_id=None)

Chọn tab_id được chỉ định.

Cửa sổ con được liên kết sẽ được hiển thị và cửa sổ đã chọn trước đó (nếu khác) sẽ không được ánh xạ. Nếu tab_id bị bỏ qua, trả về tên tiện ích của khung hiện được chọn.

tab(tab_id, option=None, **kw)

Truy vấn hoặc sửa đổi các tùy chọn của tab_id cụ thể.

Nếu kw không được cung cấp, sẽ trả về từ điển của các giá trị tùy chọn tab. Nếu option được chỉ định, trả về giá trị của option đó. Nếu không, hãy đặt các tùy chọn thành các giá trị tương ứng.

tabs()

Trả về danh sách các cửa sổ do sổ ghi chép quản lý.

enable_traversal()

Bật tính năng truyền tải bàn phím cho cửa sổ cấp cao nhất chứa sổ ghi chép này.

Điều này sẽ mở rộng các liên kết cho cửa sổ cấp cao nhất chứa sổ ghi chép như sau:

  • Control-Tab: chọn tab theo tab hiện được chọn.

  • Shift-Control-Tab: chọn tab trước tab hiện được chọn.

  • Alt-K: trong đó K là ký tự ghi nhớ (gạch chân) của tab bất kỳ, sẽ chọn tab đó.

Nhiều sổ ghi chép trong một cấp cao nhất có thể được bật để truyền tải, bao gồm cả sổ ghi chép lồng nhau. Tuy nhiên, tính năng truyền tải sổ ghi chép chỉ hoạt động bình thường nếu tất cả các ngăn đều có sổ ghi chép chính.

Thanh tiến trình

Tiện ích ttk.Progressbar hiển thị trạng thái của một hoạt động đã chạy trong thời gian dài. Nó có thể hoạt động ở hai chế độ: 1) chế độ xác định hiển thị số lượng đã hoàn thành so với tổng khối lượng công việc phải làm và 2) chế độ không xác định cung cấp màn hình động để cho người dùng biết rằng công việc đang tiến triển.

Tùy chọn

Tiện ích này chấp nhận các tùy chọn cụ thể sau:

Tùy chọn

Mô tả

định hướng

Một trong những "ngang" hoặc "dọc". Chỉ định hướng của thanh tiến trình.

chiều dài

Chỉ định độ dài trục dài của thanh tiến trình (chiều rộng nếu nằm ngang, chiều cao nếu dọc).

chế độ

Một trong những "xác định" hoặc "không xác định".

tối đa

Một số chỉ định giá trị tối đa. Mặc định là 100.

giá trị

Giá trị hiện tại của thanh tiến trình. Trong chế độ "xác định", điều này thể hiện số lượng công việc đã hoàn thành. Trong chế độ "không xác định", nó được hiểu là modulo maximum; nghĩa là thanh tiến trình hoàn thành một "chu kỳ" khi giá trị của nó tăng thêm maximum.

biến

Tên được liên kết với giá trị tùy chọn. Nếu được chỉ định, giá trị của thanh tiến trình sẽ tự động được đặt thành giá trị của tên này bất cứ khi nào tên sau được sửa đổi.

giai đoạn

Tùy chọn chỉ đọc. Tiện ích tăng giá trị của tùy chọn này theo định kỳ bất cứ khi nào giá trị của nó lớn hơn 0 và ở chế độ xác định, nhỏ hơn mức tối đa. Tùy chọn này có thể được chủ đề hiện tại sử dụng để cung cấp thêm các hiệu ứng hoạt hình.

ttk.Progressbar

class tkinter.ttk.Progressbar
start(interval=None)

Bắt đầu chế độ tự động tăng: lên lịch sự kiện hẹn giờ định kỳ gọi Progressbar.step() mỗi mili giây interval. Nếu bị bỏ qua, interval mặc định là 50 mili giây.

step(amount=None)

Tăng giá trị của thanh tiến trình thêm amount.

amount mặc định là 1.0 nếu bị bỏ qua.

stop()

Dừng chế độ tự động tăng: hủy mọi sự kiện hẹn giờ định kỳ do Progressbar.start() khởi tạo cho thanh tiến trình này.

Dấu phân cách

Tiện ích ttk.Separator hiển thị thanh phân cách ngang hoặc dọc.

Nó không có phương thức nào khác ngoài những phương thức được kế thừa từ ttk.Widget.

Tùy chọn

Tiện ích này chấp nhận tùy chọn cụ thể sau:

Tùy chọn

Mô tả

định hướng

Một trong những "ngang" hoặc "dọc". Chỉ định hướng của dải phân cách.

Kích thước tay cầm

Tiện ích ttk.Sizegrip (còn được gọi là hộp phát triển) cho phép người dùng thay đổi kích thước cửa sổ chứa cấp cao nhất bằng cách nhấn và kéo tay cầm.

Tiện ích này không có tùy chọn cụ thể cũng như phương pháp cụ thể, ngoài những tùy chọn được kế thừa từ ttk.Widget.

Ghi chú dành riêng cho nền tảng

  • Trên macOS, theo mặc định, các cửa sổ cấp cao nhất sẽ tự động bao gồm một tay cầm kích thước tích hợp sẵn. Việc thêm Sizegrip là vô hại vì tay cầm tích hợp sẽ chỉ che đi tiện ích.

Lỗi

  • Nếu vị trí chứa toplevel được chỉ định tương ứng với bên phải hoặc dưới cùng của màn hình (ví dụ: ....), tiện ích Sizegrip sẽ không thay đổi kích thước cửa sổ.

  • Tiện ích này chỉ hỗ trợ thay đổi kích thước "đông nam".

Chế độ xem dạng cây

Tiện ích ttk.Treeview hiển thị bộ sưu tập các mục có thứ bậc. Mỗi mục có nhãn văn bản, hình ảnh tùy chọn và danh sách giá trị dữ liệu tùy chọn. Các giá trị dữ liệu được hiển thị trong các cột liên tiếp sau nhãn cây.

Thứ tự hiển thị các giá trị dữ liệu có thể được kiểm soát bằng cách đặt tùy chọn tiện ích displaycolumns. Tiện ích cây cũng có thể hiển thị tiêu đề cột. Các cột có thể được truy cập theo số hoặc tên tượng trưng được liệt kê trong các cột tùy chọn tiện ích. Xem Column Identifiers.

Mỗi mục được xác định bằng một tên duy nhất. Tiện ích sẽ tạo ID mục nếu chúng không được người gọi cung cấp. Có một mục gốc đặc biệt, được đặt tên là {}. Bản thân mục gốc không được hiển thị; con của nó xuất hiện ở cấp cao nhất của hệ thống phân cấp.

Mỗi mục cũng có một danh sách các thẻ, có thể được sử dụng để liên kết các ràng buộc sự kiện với các mục riêng lẻ và kiểm soát hình thức của mục đó.

Tiện ích Treeview hỗ trợ cuộn ngang và dọc, theo các tùy chọn được mô tả trong Scrollable Widget Options và các phương thức Treeview.xview()Treeview.yview().

Tùy chọn

Tiện ích này chấp nhận các tùy chọn cụ thể sau:

Tùy chọn

Mô tả

cột

Danh sách các mã định danh cột, chỉ định số lượng cột và tên của chúng.

cột hiển thị

Danh sách các mã định danh cột (chỉ số ký hiệu hoặc số nguyên) chỉ định cột dữ liệu nào được hiển thị và thứ tự xuất hiện của chúng hoặc chuỗi "#all".

chiều cao

Chỉ định số lượng hàng sẽ được hiển thị. Lưu ý: chiều rộng được yêu cầu được xác định từ tổng chiều rộng của cột.

phần đệm

Chỉ định phần đệm bên trong cho tiện ích. Phần đệm là danh sách có tối đa bốn thông số kỹ thuật về chiều dài.

chọn chế độ

Kiểm soát cách các liên kết lớp tích hợp quản lý lựa chọn. Một trong những "mở rộng", "duyệt" hoặc "không có". Nếu được đặt thành "mở rộng" (mặc định), nhiều mục có thể được chọn. Nếu "duyệt", mỗi lần chỉ có một mục được chọn. Nếu "không", lựa chọn sẽ không bị thay đổi.

Lưu ý rằng mã ứng dụng và các ràng buộc thẻ có thể đặt lựa chọn theo cách chúng muốn, bất kể giá trị của tùy chọn này.

hiển thị

Danh sách chứa 0 hoặc nhiều giá trị sau, chỉ định phần tử nào của cây sẽ hiển thị.

  • cây: hiển thị nhãn cây trong cột #0.

  • tiêu đề: hiển thị hàng tiêu đề.

Giá trị mặc định là "tiêu đề cây", tức là hiển thị tất cả các phần tử.

Note: Cột #0 luôn đề cập đến cột cây, ngay cả khi show="tree" không được chỉ định.

Tùy chọn mục

Các tùy chọn mục sau đây có thể được chỉ định cho các mục trong lệnh chèn và tiện ích mục.

Tùy chọn

Mô tả

văn bản

Nhãn văn bản để hiển thị cho mục đó.

hình ảnh

Hình ảnh Tk, hiển thị ở bên trái nhãn.

giá trị

Danh sách các giá trị được liên kết với mục.

Mỗi mục phải có cùng số giá trị như các cột tùy chọn tiện ích. Nếu có ít giá trị hơn cột thì các giá trị còn lại được coi là trống. Nếu có nhiều giá trị hơn cột thì các giá trị bổ sung sẽ bị bỏ qua.

mở

Giá trị True/False cho biết các mục con của mục này nên được hiển thị hay ẩn.

thẻ

Danh sách các thẻ được liên kết với mục này.

Tùy chọn thẻ

Các tùy chọn sau có thể được chỉ định trên thẻ:

Tùy chọn

Mô tả

tiền cảnh

Chỉ định màu nền trước của văn bản.

nền

Chỉ định màu nền của ô hoặc mục.

phông chữ

Chỉ định phông chữ sẽ sử dụng khi vẽ văn bản.

hình ảnh

Chỉ định hình ảnh của mục, trong trường hợp tùy chọn hình ảnh của mục đó trống.

Mã định danh cột

Mã định danh cột có bất kỳ dạng nào sau đây:

  • Một tên tượng trưng từ tùy chọn danh sách cột.

  • Một số nguyên n, chỉ định cột dữ liệu thứ n.

  • Một chuỗi có dạng #n, trong đó n là số nguyên, chỉ định cột hiển thị thứ n.

Ghi chú:

  • Các giá trị tùy chọn của mục có thể được hiển thị theo thứ tự khác với thứ tự chúng được lưu trữ.

  • Cột #0 luôn đề cập đến cột cây, ngay cả khi show="tree" không được chỉ định.

Số cột dữ liệu là một chỉ mục trong danh sách giá trị tùy chọn của một mục; số cột hiển thị là số cột trong cây nơi các giá trị được hiển thị. Nhãn cây được hiển thị trong cột #0. Nếu tùy chọn displaycolumns không được đặt thì cột dữ liệu n sẽ được hiển thị trong cột #n+1. Một lần nữa, column #0 always refers to the tree column.

Sự kiện ảo

Tiện ích Treeview tạo ra các sự kiện ảo sau.

Sự kiện

Mô tả

<<TreeviewChọn>>

Được tạo bất cứ khi nào lựa chọn thay đổi.

<<TreeviewMở>>

Được tạo ngay trước khi cài đặt mục tiêu điểm thành open=True.

<<TreeviewĐóng>>

Được tạo ngay sau khi đặt mục tiêu điểm thành open=False.

Phương pháp Treeview.focus()Treeview.selection() có thể được sử dụng để xác định vật phẩm hoặc các vật phẩm bị ảnh hưởng.

ttk.Treeview

class tkinter.ttk.Treeview
bbox(item, column=None)

Trả về hộp giới hạn (liên quan đến cửa sổ của tiện ích xem dạng cây) của item đã chỉ định ở dạng (x, y, chiều rộng, chiều cao).

Nếu column được chỉ định, trả về hộp giới hạn của ô đó. Nếu item không hiển thị (tức là nếu nó là hậu duệ của một mục đã đóng hoặc được cuộn ra khỏi màn hình), sẽ trả về một chuỗi trống.

get_children(item=None)

Trả về danh sách con thuộc item.

Nếu item không được chỉ định, trả về con gốc.

set_children(item, *newchildren)

Thay thế con của item bằng newchildren.

Những phần tử con có trong item mà không có trong newchildren sẽ bị tách khỏi cây. Không có mục nào trong newchildren có thể là tổ tiên của item. Lưu ý rằng việc không chỉ định newchildren sẽ dẫn đến việc tách các phần tử con của item.

column(column, option=None, **kw)

Truy vấn hoặc sửa đổi các tùy chọn cho column được chỉ định.

Nếu kw không được cung cấp, sẽ trả về một lệnh của các giá trị tùy chọn cột. Nếu option được chỉ định thì giá trị cho option đó sẽ được trả về. Nếu không, hãy đặt các tùy chọn thành các giá trị tương ứng.

Các tùy chọn/giá trị hợp lệ là:

id

Trả về tên cột. Đây là một tùy chọn chỉ đọc.

anchor: Một trong những giá trị neo Tk tiêu chuẩn.

Chỉ định cách căn chỉnh văn bản trong cột này theo ô.

minwidth: chiều rộng

Chiều rộng tối thiểu của cột tính bằng pixel. Tiện ích xem dạng cây sẽ không làm cho cột nhỏ hơn bất kỳ cột nào được chỉ định bởi tùy chọn này khi tiện ích được thay đổi kích thước hoặc người dùng kéo một cột.

stretch: True/False

Chỉ định xem có nên điều chỉnh độ rộng của cột hay không khi tiện ích được thay đổi kích thước.

width: chiều rộng

Chiều rộng của cột tính bằng pixel.

Để định cấu hình cột cây, hãy gọi cột này bằng cột = "#0"

delete(*items)

Xóa tất cả items được chỉ định và tất cả con cháu của chúng.

Mục gốc có thể không bị xóa.

detach(*items)

Hủy liên kết tất cả items được chỉ định khỏi cây.

Các vật phẩm và tất cả các thành phần con cháu của chúng vẫn còn hiện diện và có thể được chèn lại vào một điểm khác trên cây nhưng sẽ không được hiển thị.

Mục gốc có thể không được tách ra.

exists(item)

Trả về True nếu item được chỉ định có trong cây.

focus(item=None)

Nếu item được chỉ định, hãy đặt mục tiêu điểm thành item. Nếu không, trả về mục tiêu điểm hiện tại hoặc '' nếu không có mục nào.

heading(column, option=None, **kw)

Truy vấn hoặc sửa đổi các tùy chọn tiêu đề cho column được chỉ định.

Nếu kw không được cung cấp, sẽ trả về một lệnh của các giá trị tùy chọn tiêu đề. Nếu option được chỉ định thì giá trị cho option đó sẽ được trả về. Nếu không, hãy đặt các tùy chọn thành các giá trị tương ứng.

Các tùy chọn/giá trị hợp lệ là:

text: văn bản

Văn bản hiển thị trong tiêu đề cột.

image: tên hình ảnh

Chỉ định một hình ảnh để hiển thị ở bên phải của tiêu đề cột.

anchor: mỏ neo

Chỉ định cách căn chỉnh văn bản tiêu đề. Một trong những giá trị neo Tk tiêu chuẩn.

command: gọi lại

Lệnh gọi lại sẽ được gọi khi nhấn nhãn tiêu đề.

Để định cấu hình tiêu đề cột cây, hãy gọi tiêu đề này bằng cột = "#0".

identify(component, x, y)

Trả về mô tả của component được chỉ định dưới điểm được cung cấp bởi xy hoặc chuỗi trống nếu không có component như vậy ở vị trí đó.

identify_row(y)

Trả về ID vật phẩm của vật phẩm ở vị trí y.

identify_column(x)

Trả về mã định danh cột dữ liệu của ô tại vị trí x.

Cột cây có ID #0.

identify_region(x, y)

Trả về một trong:

khu vực

ý nghĩa

tiêu đề

Khu vực tiêu đề cây.

dải phân cách

Khoảng cách giữa hai tiêu đề cột.

cây

Khu vực cây cối.

tế bào

Một ô dữ liệu

Sẵn có: Tk 8.6.

identify_element(x, y)

Trả về phần tử ở vị trí x, y.

Sẵn có: Tk 8.6.

index(item)

Trả về chỉ số nguyên của item trong danh sách con của nó.

insert(parent, index, iid=None, **kw)

Tạo một mục mới và trả về mã định danh mục của mục mới được tạo.

parent là ID mục của mục gốc hoặc chuỗi trống để tạo mục cấp cao nhất mới. index là một số nguyên hoặc giá trị "kết thúc", chỉ định vị trí trong danh sách con của cha mẹ để chèn mục mới. Nếu index nhỏ hơn hoặc bằng 0, nút mới sẽ được chèn vào đầu; nếu index lớn hơn hoặc bằng số lượng con hiện tại thì nó sẽ được chèn vào cuối. Nếu iid được chỉ định, nó sẽ được sử dụng làm mã định danh mục; iid phải chưa tồn tại trong cây. Nếu không, một mã định danh duy nhất mới sẽ được tạo.

Xem Item Options để biết danh sách các tùy chọn có sẵn.

item(item, option=None, **kw)

Truy vấn hoặc sửa đổi các tùy chọn cho item được chỉ định.

Nếu không có tùy chọn nào được đưa ra, một lệnh có tùy chọn/giá trị cho mục sẽ được trả về. Nếu option được chỉ định thì giá trị cho tùy chọn đó sẽ được trả về. Nếu không, hãy đặt các tùy chọn thành các giá trị tương ứng do kw đưa ra.

move(item, parent, index)

Di chuyển item đến vị trí index trong danh sách con của parent.

Việc di chuyển một vật phẩm dưới một trong những con cháu của nó là bất hợp pháp. Nếu index nhỏ hơn hoặc bằng 0, item sẽ được chuyển về đầu; nếu lớn hơn hoặc bằng số con thì chuyển xuống cuối. Nếu item bị tháo ra thì nó sẽ được gắn lại.

next(item)

Trả về mã định danh của anh chị em tiếp theo của item hoặc '' nếu item là con cuối cùng của cha mẹ nó.

parent(item)

Trả về ID của cha mẹ của item hoặc '' nếu item ở cấp cao nhất của hệ thống phân cấp.

prev(item)

Trả về mã định danh của anh chị em trước đó của item hoặc '' nếu item là con đầu lòng của cha mẹ nó.

reattach(item, parent, index)

Bí danh cho Treeview.move().

see(item)

Đảm bảo rằng item có thể nhìn thấy được.

Đặt tất cả tùy chọn mở tổ tiên của item thành True và cuộn tiện ích nếu cần để item nằm trong phần hiển thị của cây.

selection()

Trả về một bộ các mục đã chọn.

Thay đổi trong phiên bản 3.8: selection() không còn nhận đối số nữa. Để thay đổi trạng thái lựa chọn, hãy sử dụng các phương pháp lựa chọn sau.

selection_set(*items)

items trở thành lựa chọn mới.

Thay đổi trong phiên bản 3.6: items có thể được truyền dưới dạng các đối số riêng biệt, không chỉ dưới dạng một bộ dữ liệu.

selection_add(*items)

Thêm items vào vùng chọn.

Thay đổi trong phiên bản 3.6: items có thể được truyền dưới dạng các đối số riêng biệt, không chỉ dưới dạng một bộ dữ liệu.

selection_remove(*items)

Xóa items khỏi vùng chọn.

Thay đổi trong phiên bản 3.6: items có thể được truyền dưới dạng các đối số riêng biệt, không chỉ dưới dạng một bộ dữ liệu.

selection_toggle(*items)

Chuyển đổi trạng thái lựa chọn của từng mục trong items.

Thay đổi trong phiên bản 3.6: items có thể được truyền dưới dạng các đối số riêng biệt, không chỉ dưới dạng một bộ dữ liệu.

set(item, column=None, value=None)

Với một đối số, trả về một từ điển gồm các cặp cột/giá trị cho item được chỉ định. Với hai đối số, trả về giá trị hiện tại của column đã chỉ định. Với ba đối số, đặt giá trị của column đã cho trong item đã cho thành value đã chỉ định.

tag_bind(tagname, sequence=None, callback=None)

Liên kết lệnh gọi lại cho sự kiện đã cho sequence với thẻ tagname. Khi một sự kiện được gửi đến một mục, lệnh gọi lại cho từng tùy chọn thẻ của mục đó sẽ được gọi.

tag_configure(tagname, option=None, **kw)

Truy vấn hoặc sửa đổi các tùy chọn cho tagname được chỉ định.

Nếu kw không được cung cấp, sẽ trả về lệnh cài đặt tùy chọn cho tagname. Nếu option được chỉ định, trả về giá trị cho option đó cho tagname được chỉ định. Nếu không, hãy đặt các tùy chọn thành các giá trị tương ứng cho tagname đã cho.

tag_has(tagname, item=None)

Nếu item được chỉ định, trả về 1 hoặc 0 tùy thuộc vào việc item được chỉ định có tagname đã cho hay không. Ngược lại, trả về danh sách tất cả các mục có thẻ được chỉ định.

Sẵn có: Tk 8,6

xview(*args)

Truy vấn hoặc sửa đổi vị trí ngang của chế độ xem dạng cây.

yview(*args)

Truy vấn hoặc sửa đổi vị trí dọc của chế độ xem dạng cây.

phong cách ttk

Mỗi tiện ích trong ttk được gán một kiểu, trong đó chỉ định tập hợp các thành phần tạo nên tiện ích và cách chúng được sắp xếp, cùng với các cài đặt động và mặc định cho các tùy chọn thành phần. Theo mặc định, tên kiểu giống với tên lớp của tiện ích nhưng nó có thể bị ghi đè bởi tùy chọn kiểu của tiện ích. Nếu bạn không biết tên lớp của một tiện ích, hãy sử dụng phương thức Misc.winfo_class() (somewidget.winfo_class()).

Xem thêm

Tcl'2004 conference presentation

Tài liệu này giải thích cách hoạt động của công cụ chủ đề

class tkinter.ttk.Style

Lớp này được sử dụng để thao tác cơ sở dữ liệu kiểu.

configure(style, query_opt=None, **kw)

Truy vấn hoặc đặt giá trị mặc định của (các) tùy chọn được chỉ định trong style.

Mỗi khóa trong kw là một tùy chọn và mỗi giá trị là một chuỗi xác định giá trị cho tùy chọn đó.

Ví dụ: để thay đổi mọi nút mặc định thành nút phẳng với một số phần đệm và màu nền khác

từ tkinter nhập ttk
nhập khẩu tkinter

gốc = tkinter.Tk()

ttk.Style().configure("TButton", đệm=6, Relief="phẳng",
   nền="#ccc")

btn = ttk.Button(text="Sample")
btn.pack()

root.mainloop()
map(style, query_opt=None, **kw)

Truy vấn hoặc đặt giá trị động của (các) tùy chọn được chỉ định trong style.

Mỗi khóa trong kw là một tùy chọn và mỗi giá trị phải là một danh sách hoặc một bộ dữ liệu (thường) chứa các thông số trạng thái được nhóm thành bộ dữ liệu, danh sách hoặc một số tùy chọn khác. Statespec là sự kết hợp của một hoặc nhiều trạng thái và sau đó là một giá trị.

Một ví dụ có thể làm cho nó dễ hiểu hơn:

nhập khẩu tkinter
từ tkinter nhập ttk

gốc = tkinter.Tk()

phong cách = ttk.Style()
style.map("C.TButton",
    tiền cảnh=[('ép', 'đỏ'), ('hoạt động', 'xanh')],
    nền=[('ép', '!disabled', 'đen'), ('hoạt động', 'trắng')]
    )

màu_btn = ttk.Button(text="Test", style="C.TButton").pack()

root.mainloop()

Lưu ý rằng thứ tự của các chuỗi (trạng thái, giá trị) cho một tùy chọn không quan trọng, ví dụ: nếu thứ tự được thay đổi thành [('active', 'blue'), ('pressed', 'red')] trong tùy chọn nền trước, kết quả sẽ là nền trước màu xanh lam khi tiện ích ở trạng thái hoạt động hoặc được nhấn.

lookup(style, option, state=None, default=None)

Trả về giá trị được chỉ định cho option trong style.

Nếu state được chỉ định, nó dự kiến sẽ là một chuỗi gồm một hoặc nhiều trạng thái. Nếu đối số default được đặt, nó sẽ được sử dụng làm giá trị dự phòng trong trường hợp không tìm thấy thông số kỹ thuật nào cho tùy chọn.

Để kiểm tra xem Nút sử dụng phông chữ nào theo mặc định

từ tkinter nhập ttk

print(ttk.Style().lookup("TButton", "font"))
layout(style, layoutspec=None)

Xác định bố cục tiện ích cho style nhất định. Nếu layoutspec bị bỏ qua, hãy trả về đặc tả bố cục cho kiểu đã cho.

layoutspec, nếu được chỉ định, dự kiến sẽ là một danh sách hoặc một số loại trình tự khác (không bao gồm chuỗi), trong đó mỗi mục phải là một bộ dữ liệu và mục đầu tiên là tên bố cục, còn mục thứ hai phải có định dạng được mô tả trong Layouts.

Để hiểu định dạng này, hãy xem ví dụ sau (nó không nhằm mục đích làm bất cứ điều gì hữu ích):

từ tkinter nhập ttk
nhập khẩu tkinter

gốc = tkinter.Tk()

phong cách = ttk.Style()
style.layout("TMenubutton", [
   ("Menubutton.background", Không ),
   ("Menubutton.button", {"trẻ em":
       [("Menubutton.focus", {"trẻ em":
           [("Menubutton.padding", {"trẻ em":
               [("Menubutton.label", {"side": "left", "expand": 1})]
           })]
       })]
   }),
])

mbtn = ttk.Menubutton(text='Text')
mbtn.pack()
root.mainloop()
element_create(elementname, etype, *args, **kw)

Tạo một phần tử mới trong chủ đề hiện tại, của etype đã cho, dự kiến là "hình ảnh", "từ" hoặc "vsapi". Cái sau chỉ có sẵn trong Tk 8.6 trên Windows.

Nếu "hình ảnh" được sử dụng, args phải chứa tên hình ảnh mặc định theo sau là các cặp thông số trạng thái/giá trị (đây là thông số hình ảnh) và kw có thể có các tùy chọn sau:

đường viền=phần đệm

phần đệm là danh sách có tối đa bốn số nguyên, chỉ định các đường viền trái, trên, phải và dưới tương ứng.

chiều cao=chiều cao

Chỉ định chiều cao tối thiểu cho phần tử. Nếu nhỏ hơn 0 thì chiều cao của hình ảnh cơ sở sẽ được sử dụng làm mặc định.

phần đệm=phần đệm

Chỉ định phần đệm bên trong của phần tử. Mặc định là giá trị của đường viền nếu không được chỉ định.

dính=thông số kỹ thuật

Chỉ định cách đặt hình ảnh trong bưu kiện cuối cùng. thông số kỹ thuật chứa 0 hoặc nhiều ký tự "n", "s", "w" hoặc "e".

chiều rộng=chiều rộng

Chỉ định chiều rộng tối thiểu cho phần tử. Nếu nhỏ hơn 0, chiều rộng của hình ảnh cơ sở sẽ được sử dụng làm mặc định.

Ví dụ:

img1 = tkinter.PhotoImage(master=root, file='button.png')
img1 = tkinter.PhotoImage(master=root, file='button-press.png')
img1 = tkinter.PhotoImage(master=root, file='button-active.png')
style = ttk.Style(root)
style.element_create('Button.button', 'hình ảnh',
                     img1, ('nhấn', img2), ('hoạt động', img3),
                     border=(2, 4), dính='chúng tôi')

Nếu "từ" được sử dụng làm giá trị của etype, element_create() sẽ sao chép một phần tử hiện có. args dự kiến ​​​​sẽ chứa tên chủ đề, từ đó phần tử sẽ được sao chép và tùy chọn là một phần tử để sao chép. Nếu phần tử cần sao chép này không được chỉ định thì phần tử trống sẽ được sử dụng. kw bị loại bỏ.

Ví dụ:

style = ttk.Style(root)
style.element_create('plain.background', 'from', 'default')

Nếu "vsapi" được sử dụng làm giá trị của etype, element_create() sẽ tạo một phần tử mới trong chủ đề hiện tại có hình thức trực quan được vẽ bằng Microsoft Visual Styles API, chịu trách nhiệm về các kiểu chủ đề trên Windows XP và Vista. args dự kiến ​​​​sẽ chứa lớp và phần Visual Styles như được đưa ra trong tài liệu của Microsoft, theo sau là một chuỗi tùy chọn gồm các bộ trạng thái ttk và giá trị trạng thái API của Visual Styles tương ứng. kw có thể có các tùy chọn sau:

phần đệm=phần đệm

Chỉ định phần đệm bên trong của phần tử. padding là danh sách gồm tối đa bốn số nguyên chỉ định số lượng phần đệm bên trái, trên, phải và dưới tương ứng. Nếu ít hơn bốn phần tử được chỉ định, giá trị mặc định dưới cùng là trên cùng, bên phải mặc định là bên trái và trên cùng mặc định là bên trái. Nói cách khác, một danh sách gồm ba số chỉ định khoảng đệm trái, dọc và phải; một danh sách gồm hai số xác định khoảng đệm ngang và khoảng đệm dọc; một số duy nhất chỉ định cùng một khoảng đệm xung quanh tiện ích. Tùy chọn này không được trộn lẫn với bất kỳ tùy chọn nào khác.

lề=phần đệm

Chỉ định phần đệm bên ngoài của phần tử. padding là danh sách gồm tối đa bốn số nguyên chỉ định số lượng phần đệm bên trái, trên, phải và dưới tương ứng. Tùy chọn này không được trộn lẫn với bất kỳ tùy chọn nào khác.

chiều rộng=chiều rộng

Chỉ định chiều rộng cho phần tử. Nếu tùy chọn này được đặt thì Visual Styles API sẽ không được truy vấn về kích thước hoặc bộ phận được đề xuất. Nếu tùy chọn này được đặt thì height cũng sẽ được đặt. Không thể kết hợp các tùy chọn widthheight với các tùy chọn padding hoặc margins.

chiều cao=chiều cao

Chỉ định chiều cao của phần tử. Xem các bình luận cho width.

Ví dụ:

style = ttk.Style(root)
style.element_create('pin', 'vsapi', 'EXPLORERBAR', 3, [
                     ('đã nhấn', '! đã chọn', 3),
                     ('hoạt động', '! đã chọn', 2),
                     ('đã nhấn', 'đã chọn', 6),
                     ('hoạt động', 'đã chọn', 5),
                     ('đã chọn', 4),
                     ('', 1)])
style.layout('Explorer.Pin',
             [('Explorer.Pin.pin', {'sticky': 'news'})])
pin = ttk.Checkbutton(style='Explorer.Pin')
pin.pack(expand=True, fill='cả hai')

Thay đổi trong phiên bản 3.13: Đã thêm hỗ trợ của nhà máy sản xuất phần tử "vsapi".

element_names()

Trả về danh sách các phần tử được xác định trong chủ đề hiện tại.

element_options(elementname)

Trả về danh sách các tùy chọn của elementname.

theme_create(themename, parent=None, settings=None)

Tạo một chủ đề mới.

Đó là lỗi nếu themename đã tồn tại. Nếu parent được chỉ định, chủ đề mới sẽ kế thừa kiểu, thành phần và bố cục từ chủ đề gốc. Nếu có settings thì chúng phải có cùng cú pháp được sử dụng cho theme_settings().

theme_settings(themename, settings)

Tạm thời đặt chủ đề hiện tại thành themename, áp dụng settings được chỉ định rồi khôi phục chủ đề trước đó.

Mỗi khóa trong settings là một kiểu và mỗi giá trị có thể chứa các khóa 'configure', 'map', 'layout' và 'element create' và chúng dự kiến sẽ có cùng định dạng như được chỉ định bởi các phương thức Style.configure(), Style.map(), Style.layout()Style.element_create() tương ứng.

Ví dụ: hãy thay đổi Combobox cho chủ đề mặc định một chút:

từ tkinter nhập ttk
nhập khẩu tkinter

gốc = tkinter.Tk()

phong cách = ttk.Style()
style.theme_settings("mặc định", {
   "TCombobox": {
       "cấu hình": {"đệm": 5},
       "bản đồ": {
           "nền": [("hoạt động", "green2"),
                          ("!disabled", "green4")],
           "fieldbackground": [("!disabled", "green3")],
           "tiền cảnh": [("tiêu điểm", "OliveDrab1"),
                          ("!disabled", "OliveDrab2")]
       }
   }
})

kết hợp = ttk.Combobox().pack()

root.mainloop()
theme_names()

Trả về danh sách tất cả các chủ đề đã biết.

theme_use(themename=None)

Nếu themename không được cung cấp, hãy trả về chủ đề đang được sử dụng. Nếu không, hãy đặt chủ đề hiện tại thành themename, làm mới tất cả các tiện ích và phát ra sự kiện <<ThemeChanged>>.

Bố cục

Một bố cục có thể chỉ là None, nếu nó không có tùy chọn nào hoặc một loạt các tùy chọn chỉ định cách sắp xếp phần tử. Cơ chế bố trí sử dụng phiên bản đơn giản của trình quản lý hình học gói: với một khoang ban đầu, mỗi phần tử được phân bổ một bưu kiện.

Các tùy chọn/giá trị hợp lệ là:

side: bên nào

Chỉ định phía nào của khoang để đặt phần tử; một trong những trên, phải, dưới hoặc trái. Nếu bị bỏ qua, phần tử sẽ chiếm toàn bộ khoang.

sticky: nswe

Chỉ định vị trí của phần tử bên trong bưu kiện được phân bổ của nó.

unit: 0 hoặc 1

Nếu được đặt thành 1, thì phần tử này và tất cả các phần tử con của nó sẽ được coi là một phần tử duy nhất cho mục đích của Widget.identify() et al. Nó được sử dụng cho những thứ như ngón tay cái của thanh cuộn có tay cầm.

children: [bố cục phụ... ]

Chỉ định danh sách các phần tử để đặt bên trong phần tử. Mỗi phần tử là một bộ (hoặc loại trình tự khác) trong đó mục đầu tiên là tên bố cục và mục còn lại là Layout.