2013-05-13 2 views
0

Можем ли мы изменить цвет фона текста флажка в WxPython? Я хочу, чтобы весь регион квадратика + прилагается текст к нему, чтобы быть в определенном цветеМожно ли изменить цвет фона текста флажка в WxPython?

checkbox = wx.CheckBox(self.panel, -1, 'Label', (5, 5) 

Так что цель состоит в том, чтобы изменить фона цвета флажка и маркировать

флажка .SetBackgroundColour («синий») только меняет квадрат флажке синий, но я хотел бы все, кроме того, что (в том числе фон лейбла)

ответ

0

Да просто

import wx 

затем определить свой класс

class my_window(wx.Frame): 

установить размер

wx.Frame.__init__(self,parent,id,'My Window', size=(300,200)) 

и цвет

self.SetBackgroundColour(wx.BLUE) 

Для этикеток вы должны использовать SetForegroundColor

self.label2.SetForegroundColour("yellow") 
+0

Как насчет флажка? cb = wx.CheckBox (...). cb.SetBackgroundColour (wx.BLUE) только меняет флажок, но я хочу, чтобы метка тоже – Iancovici

+0

см. обновленный ответ –

0

Я не верю, что виджет этого флажка поддерживает это. Даже если это так, оно может не поддерживать его на всех платформах. Поскольку wxPython как можно больше обертывает собственные виджеты, иногда собственный виджет не позволяет изменять передний план или фон или оба цвета. Что действительно запутывает, когда одна версия ОС позволяет это, а другая - нет.

Что предлагает Rachel выше, так это установить всю панель другого цвета. Это может работать, если вы складываете панели. Поместите панель на рамку, затем положите другую панель поверх основной панели и установите флажок поверх второй панели. Возможно, вам придется установить размер панели вручную.

Возможно, вам придется написать собственный виджет самостоятельно. Есть примеры в wx.lib и wxPython wiki.

0

self.checkbox.SetBackgroundColour (wx.Colour (255, 255, 128))

Я получил это из кода, генерируемого wxFormBuilder. Мне легче попробовать сначала спроектировать внешний вид, а затем изменить его далее, чтобы он соответствовал моим потребностям.

Смежные вопросы