قم بتعيين اللون المقدمة في CellRenderErtext عند تسليط الضوء على صف
-
26-09-2019 - |
سؤال
عندما يكون لدي gtk.CellRendererText
, ، يمكنني ربطها foreground
اللون مع أحد أعمدة متجر الأشجار ، وضبط foreground-set
تنسب إلى True ، لتغيير لون النص في هذا العمود. ومع ذلك ، عندما يتم تحديد الصف مع العمود الملون ، يختفي لونه ، وهو نفس لون خلية محددة. كيف يمكنني تغيير اللون عند اختياره؟
المحلول
لقد واجهت نفس المشكلة ، وبعد تجربة بدائل مختلفة ، باستخدام markup
الممتلكات بدلا من text
خاصية حل المشكلة. يرجى العثور أدناه والمثال الذي يعمل في Ubuntu Maverick:
#!/usr/bin/python
import gtk
class Application(object):
def __init__(self):
window = gtk.Window()
model = gtk.TreeStore(str)
model.append(None, row=('Normal row',))
model.append(None, row=('<span foreground="red">Red row</span>',))
treeview = gtk.TreeView(model)
renderer = gtk.CellRendererText()
column = gtk.TreeViewColumn('Column', renderer, markup=0)
treeview.append_column(column)
scrolled_window = gtk.ScrolledWindow()
scrolled_window.add(treeview)
window.add(scrolled_window)
window.connect('destroy', lambda w: gtk.main_quit())
window.show_all()
def run(self):
gtk.main()
if __name__ == '__main__':
Application().run()
في لعبة TreeView أكثر تعقيدًا مع الأعمدة المتعددة التي أعمل عليها ، markup
لا يبدو أن الخاصية تعمل عندما لا يتم تحديد الصف. على أي حال ، استخدام كليهما markup
و foreground
يبدو أن الخصائص في نفس الوقت تعمل بشكل جيد.
لا تنتمي إلى StackOverflow