2011-10-24 27 views
10

Làm cách nào tôi có thể đặt kiểu cho các vật dụng treeview để các hàng thay thế có màu nền khác nhau, ví dụ: các hàng 1,3,5 có nền trắng và hàng 2,4,6 có màu xanh nhạt- nền màu xám?ttk treeview: các hàng màu thay thế

Tôi cũng muốn đặt gridlines.

Trả lời

25

Tôi đã gặp vấn đề tương tự này vài tháng trước.

Từ tk docs:

You can assign a list of tags to each item using the "tags" 
item configuration option (again, when creating the item or later on). 

Tag configuration options can then be specified, which will then 
apply to all items having that tag. 

Về cơ bản, bạn áp dụng một thẻ cho tất cả các dòng số lẻ, một thẻ khác nhau để mỗi người trong số các hàng chẵn, và sau đó cấu hình các thẻ.


Khi bạn tạo các mục bên trong treeview, thêm thẻ với họ:

tree.insert('', 'end', text = 'your text', tags = ('oddrow',)) 

Mã này tạo ra một phần tử trong tree, và lập luận tags gán tag 'oddrow' để nguyên tố này.

Khi bạn đã tạo tất cả các yếu tố của bạn với 'oddrow' và 'evenrow' thẻ, bạn có thể tô màu cho các thẻ:

tree.tag_configure('oddrow', background='orange') 
tree.tag_configure('evenrow', background='purple') 
+1

Bạn có bất kỳ mã mẫu nào hay bất kỳ thông tin nào khác không? Tôi không thể tìm ra cách thực hiện từ mô tả trong tài liệu. – foosion

+1

@foosion - Tôi đã cập nhật câu trả lời của mình. –

+0

Cảm ơn bạn. Bây giờ nếu chúng ta chỉ có thể tìm ra cách thêm các đường lưới ... :) – foosion

1

Tôi nhận ra đây là một câu hỏi cũ nhưng chỉ cho các hồ sơ cấu hình thẻ chỉ sau khi tạo cây (tức là khi không có mục nào được thêm vào nó) cũng hoạt động. Khi các mục được chèn vào sau, chúng sẽ có màu nền thích hợp với thẻ 'kỳ quặc' hoặc 'bừa bộn' của chúng.

+0

giải thích với một số mã số – HaveNoDisplayName

+0

Tôi nghĩ Colin có nghĩa là trước tiên bạn có thể định cấu hình các thẻ, sau đó thêm hàng và các hàng sẽ được tô màu. Không cần phải cấu hình thẻ sau khi thêm tất cả các hàng như câu trả lời của Matt ngụ ý. – akarilimano

Các vấn đề liên quan