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, Scale và Scrollbar) 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, Scrollbar và Spinbox. Sáu cái còn lại là mới: Combobox, Notebook, Progressbar, Separator, Sizegrip và Treeview. 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 |
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 |
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à:
|
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 |
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() và 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.
x và y 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ề
Truenếu trạng thái tiện ích khớp với statespec vàFalsenế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() và 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 |
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.Spinbox là ttk.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() và 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à |
để |
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 |
đị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¶
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 |
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 |
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 |
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
Sizegriplà 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
Sizegripsẽ 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() và 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ị.
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ị |
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() và 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ề
Truenế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 x và y 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
Truevà 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 có), ("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 width và height 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()và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.