Tôi đang cố gắng thay đổi màu đánh dấu cho một số gtk.EventBox
. Nó có một màu nền nhất định, và tôi muốn vẽ một đường xung quanh nó với màu bổ sung của nó. Tôi đã tìm thấy drag_highlight
, vẽ một đường xung quanh tiện ích, nhưng tôi đã không tìm ra cách thay đổi màu sắc: nó luôn luôn đen. Bất kỳ ý tưởng?Màu Pygtk cho drag_highlight
7
A
Trả lời
4
Để thực hiện các dòng xung quanh EventBox
, người ta có thể đặt nó vào Frame
hoặc EventBox
khác (trong trường hợp này chúng ta có thể thiết lập độ rộng của "border"), đây là cách có vẻ:
Và đây là mã (nó là một modified EventBox example):
#!/usr/bin/env python
# example eventbox.py
import pygtk
pygtk.require('2.0')
import gtk
class EventBoxExample:
def __init__(self):
window = gtk.Window(gtk.WINDOW_TOPLEVEL)
window.set_title("Event Box")
window.connect("destroy", lambda w: gtk.main_quit())
window.set_border_width(10)
# Create an EventBox and add it to our toplevel window
frame = gtk.EventBox() # gtk.Frame()
window.add(frame)
frame.show()
frame.set_border_width(2)
frame.modify_bg(gtk.STATE_NORMAL,
frame.get_colormap().alloc_color("blue"))
event_box = gtk.EventBox()
frame.add(event_box)
event_box.set_border_width(10)
event_box.show()
# Create a long label
label = gtk.Label("Click here to quit, quit, quit, quit, quit")
event_box.add(label)
label.show()
# Clip it short.
label.set_size_request(110, 20)
# And bind an action to it
event_box.set_events(gtk.gdk.BUTTON_PRESS_MASK)
event_box.connect("button_press_event", lambda w,e: gtk.main_quit())
# More things you need an X window for ...
event_box.realize()
event_box.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.HAND1))
# Set background color to green
event_box.modify_bg(gtk.STATE_NORMAL,
event_box.get_colormap().alloc_color("green"))
window.show()
def main():
gtk.main()
return 0
if __name__ == "__main__":
EventBoxExample()
main()
+1
Điều này làm việc tuyệt vời, nhưng tôi sẽ không giải thưởng tiền thưởng được nêu ra bởi vì tôi muốn nhận được một câu trả lời mà không yêu cầu cha mẹ khác cho EventBox. Tôi chấp nhận câu trả lời của bạn bây giờ để tôi không nhất thiết phải nhớ để trao cho bạn tiền thưởng khi hết hạn. – zondo
Các vấn đề liên quan
- 1. pygtk thay đổi màu nền của tiện ích gtkHBox
- 2. PyGTK: gói nhãn động
- 3. pyGame trong ứng dụng pyGTK
- 4. Cách áp dụng chủ đề cho ứng dụng PyGTK
- 5. PyGTK ở đâu dành cho Mac OS X?
- 6. Cài đặt PyGtk trong virtualenv
- 7. GTK và PyGTK chênh lệch
- 8. Python Right Click Menu Sử dụng PyGTK
- 9. Bật hoặc tắt gtk.Button trong PyGTK
- 10. Ứng dụng biểu tượng khay đơn giản sử dụng pygtk
- 11. Cách làm việc với các chủ đề trong pygtk
- 12. Ngừng pygtk GUI khỏi khóa trong quá trình chạy dài
- 13. Tên màu Tkinter cho đối tượng màu
- 14. UIRefreshControl màu màu không phù hợp với cho màu
- 15. Tìm tên màu cho các màu gần bảng màu colorBrewer
- 16. Làm cách nào để đặt nút mặc định trong PyGTK?
- 17. pheatmap: Màu cho NA
- 18. Skinning: Sử dụng màu như StaticResource cho một màu khác
- 19. Đặt màu nền cho UINavigationBar
- 20. Đặt màu nền cho SKLabelNode?
- 21. Đặt màu cho hàng QTableView
- 22. Thêm màu nền cho MediaComposition
- 23. PyGTK hay PyQT có thích hợp hơn khi tạo các ứng dụng Python gốc GTK không?
- 24. Làm thế nào để nhận được giá trị từ mục được chọn trong treeview trong PyGTK?
- 25. Sử dụng pyglet, xoắn, pygtk cùng nhau trong một ứng dụng
- 26. Màu nền cho GTK_WINDOW_TOPLEVEL Gtk Widget
- 27. Pylab: nhãn bản đồ cho màu sắc
- 28. Có hộp thoại màu cho WPF không?
- 29. Thay đổi màu bóng UIToolbar cho UIBarButtonItem
- 30. Màu hàng thay thế cho JasperReports
có thể bạn sẽ cần phải viết mã riêng của bạn cho việc này. Trong tài liệu cho 'drag_highlight' đề cập đến nó kết nối với bộ xử lý' expose_event' và 'draw' vì vậy nếu bạn làm như vậy và sau đó cập nhật kiểu (hoặc đường viền) khi những sự kiện này xảy ra. – B8vrede