Ngoại trừ trên OSX, bạn không thể làm gì vì tất cả các tiện ích này được vẽ trên cửa sổ thực là hình chữ nhật (trừ khi bạn sử dụng một số thủ thuật cấp thấp để cắt lỗ ra khỏi cửa sổ); phương pháp tiếp cận tôi khuyên bạn nên mặc dù tôi đã có mã - cho Tcl/Tk, không Python/Tkinter thừa nhận - mà hiện nó). OSX là ngoại lệ vì có các widget (chủ yếu) không được vẽ trên các cửa sổ thực, mà là sử dụng một hệ thống có trọng lượng nhẹ hơn (vì đó là cách OSX hoạt động).
Bạn có thể điều chỉnh các tiện ích có đường viền ít hơn bình thường, điều này là OK nếu bạn đang sử dụng kiểu giữ cho chúng về cơ bản vuông. Hoặc nếu bạn đang sử dụng canvas cho bề mặt "thú vị" của mình, bạn có thể tạo các thứ giống như nút trên canvas, điều này cũng có thể tốt hơn cho những gì bạn đang thực sự làm.
Để thay đổi màu nền của khung Ttk, bạn sẽ phải áp dụng kiểu cho nó. Các hướng dẫn tốt nhất về sáng tạo kiểu mà tôi đã thấy cho đến thời điểm này là ở số tkdocs style tutorial, là nơi mà Tôi chuyển sang khi tôi muốn tìm cách thực hiện những việc này. (Có, tài liệu Ttk nên tự trang trải nó, nhưng chưa được.)
Nguồn
2011-01-07 17:53:40
Câu trả lời ("không thể làm được") có thể đúng, nhưng lý do cơ bản (cửa sổ chữ nhật) thì không. Bất kể hình dạng của cửa sổ, màu nền trước và nền sau nên về nguyên tắc, hỗ trợ tính minh bạch. Nếu tiện ích Label hỗ trợ màu nền trong suốt (chuỗi rỗng ""), bạn có thể viết kiểu đã sử dụng màu đó cho mọi thứ nhưng nền trước văn bản và hình dạng của các phần tử trong suốt sẽ không thành vấn đề. – Dave
@Dave: Tiêu chuẩn X11 không hỗ trợ độ trong suốt về màu sắc, bất kể bạn nghĩ nó “nên” bao nhiêu (nhưng về mặt lý thuyết có thể làm điều đó cho các bề mặt cụ thể thông qua sử dụng OpenGL). Với Windows, một cái gì đó có thể được thực hiện với 'UpdateLayeredWindow' nhưng không ai thực sự đóng góp mã để làm điều đó. –