Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 8, 2012 03:48:01

@cckyi_boxxx
От:
Зарегистрирован: 2012-01-13
Сообщения: 181
Репутация: +  14  -
Профиль   Отправить e-mail  

проблема с назначением цвета кнопки в wxpython

import wx
app = wx.App()
frame = wx.Frame(None, -1, size=(100, 100))
frame.Show()
butt = wx.Button(frame , size = (60 , 60) , label = 'trololo')
butt.SetBackgroundColour((0,0,0))
butt.SetForegroundColour((255,0,0))
butt.Show()
app.MainLoop()

по непонятным мне причинам никак не могу выставить бэкгроунд на кнопку , если кто знает как это сделать подскажите плз



Офлайн

#2 Окт. 9, 2012 03:16:04

@cckyi_boxxx
От:
Зарегистрирован: 2012-01-13
Сообщения: 181
Репутация: +  14  -
Профиль   Отправить e-mail  

проблема с назначением цвета кнопки в wxpython

люди так кто-нить знает ответ ?

ну или подскажите что лучше заюзать для создания кроссплатформенного (достаточно win и linux , макинтош если будет галить пох) , красивого (возможность управления цветом абсолютно всех элементов + возможность делать часть из них из изображений) и с возможностью сворачивания в трей (не только в Window List как у большинства софта) дабы софтина висела в трее и выдавала (хз как правильно называеться) информационные сообщения подобно центру безопасности на вендах , или alarm clock (при срабатывании) на линухе , заранее благодарю за ответы .



Офлайн

#3 Окт. 9, 2012 05:18:42

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

проблема с назначением цвета кнопки в wxpython

@cckyi_boxxx
люди так кто-нить знает ответ ?
У меня все работает, так что давайте смотреть версию wxPython и систему.
Правда код у вас странноват, обычно это выглядит примерно так
import wx
class MyFrame(wx.Frame):
    
    def __init__(self, *args, **kw):
        super(MyFrame, self).__init__(*args, **kw)
        butt = wx.Button(self, label = 'trololo')
        butt.SetBackgroundColour((0,0,0))
        butt.SetForegroundColour((255,0,0))
app = wx.App()
frame = MyFrame(None, -1, size=(100, 100))
frame.Show()
app.MainLoop()
но к цветам кнопки это не относится. А вообще сейчас народ больше смотрит в сторону Qt - pyQt pySide



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#4 Окт. 9, 2012 09:28:38

@cckyi_boxxx
От:
Зарегистрирован: 2012-01-13
Сообщения: 181
Репутация: +  14  -
Профиль   Отправить e-mail  

проблема с назначением цвета кнопки в wxpython

PooH спасибо за ответ , что касаеться версии :

import wx , sys
print wx.__version__ , "\n" , sys.version
2.8.10.1 
2.6.5 (r265:79063, Apr 16 2010, 13:09:56) 
[GCC 4.4.3]
система linux back track


что-же касаеться кода соглашусь странноват но он был набросан дабы отразить суть проблемы - бэкгроунд кнопки не становился черным хотя c цветом текста такой проблемы не было , и выкладывать весь код проекта (на тот момент 130 строк если считать с коментами) я не видел .

но к цветам кнопки это не относится.
не понял вас , SetBackgroundColour и не должен сделать цвет фона кнопки черным ?

А вообще сейчас народ больше смотрит в сторону Qt - pyQt pySide
что-то мне подсказывает что это не спроста , но перед тем как переходить на него хотел-бы у вас уточнить не возникает-ли проблем с моими потребностями которые я описывал выше ? (имееться ввиду из-за технических сложностей а не моей безграмотности)



Отредактировано @cckyi_boxxx (Окт. 9, 2012 09:29:25)

Офлайн

#5 Окт. 10, 2012 05:50:31

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

проблема с назначением цвета кнопки в wxpython

@cckyi_boxxx
что касаеться версии :
2.8.10.1
система linux back track
Странно, у меня та же версия wxPython, gtk 2.20.1, все работает. Может у вас какие-то специфические настройки темы в десктопе?
@cckyi_boxxx
не понял вас , SetBackgroundColour и не должен сделать цвет фона кнопки черным ?
я имел в виду, что несмотря на кривость приведенного кода, цвет кнопки должен меняться
@cckyi_boxxx
не возникает-ли проблем с моими потребностями которые я описывал выше ? (имееться ввиду из-за технических сложностей а не моей безграмотности)
Ну я писал более стандартные интерфейсы. Вообще, честно говоря, сейчас я бы взял Qt, в тот раз меня останавливала лицензия на PyQt под windows, а сейчас есть PySide.



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#6 Окт. 13, 2012 17:22:51

@cckyi_boxxx
От:
Зарегистрирован: 2012-01-13
Сообщения: 181
Репутация: +  14  -
Профиль   Отправить e-mail  

проблема с назначением цвета кнопки в wxpython

спасибо огромное за советы , благодаря им я сохранил уйму времени которая ушла-бы на то что-бы самому во всем разобраться , относительно wxPython вы попали в точку , он брал цвета для кнопки из сисиемной темы (на линухе) а на венде все заработало , в результате я его отбросил , сейчас разбираюсь с PyGTK , и опять попал в непонятную ситуацию :

вот код метода создающего кнопку

def cb(self):
        self.butt = gtk.Button(label = 'pzdc' )
        self.active.append(self.butt)
        self.states = [gtk.STATE_NORMAL , gtk.STATE_ACTIVE , gtk.STATE_PRELIGHT , gtk.STATE_SELECTED , gtk.STATE_INSENSITIVE]
        self.butt.connect("clicked" , self.simplealert , 'lol')
        self.butt.set_size_request(70 ,25)
        
        self.map = self.butt.get_colormap()
        self.but_bg = self.map.alloc_color("#1a1a1a") # state normal bg
        self.but_fg = self.map.alloc_color("#1e90ff") # state normal , active , highliht , selected fg 
        self.h_but_bg = self.map.alloc_color("#1f1f1f") # state highlight bg
        self.p_butt_bg = self.map.alloc_color("#2e2e2e") # state active , selected bg
        self.txt_fg = self.map.alloc_color("#1e90fe")
        
        self.style = self.butt.get_style().copy()
        self.style.bg[gtk.STATE_NORMAL] = self.but_bg
        self.style.bg[gtk.STATE_PRELIGHT] = self.h_but_bg
        self.style.bg[gtk.STATE_ACTIVE] = self.p_butt_bg
        
        for x in self.states :
            self.style.fg[x] = self.but_fg
            self.style.text[x] = self.txt_fg
        
        self.butt.set_style(self.style)
        self.butt.show()
        self.layout.put(self.butt , 0 , 0)

и здесь уже проблема не с цветом бэкгроунда а с цветом текста кнопки , согласно этой доке http://developer.gnome.org/pygtk/2.24/class-gtkstyle.html он должен был измениться но ничего не получаеться он как был черным так и остаеться



Офлайн

#7 Окт. 14, 2012 12:39:37

@cckyi_boxxx
От:
Зарегистрирован: 2012-01-13
Сообщения: 181
Репутация: +  14  -
Профиль   Отправить e-mail  

проблема с назначением цвета кнопки в wxpython

##################### upd #########################
еще раз выражаю благодарность , проблему решил заюзав изображения , единственное если у кого-нить есть хорошая дока по работе с треем в PyGTK то был бы очень благодарен за нее


#####################upd##########################
все вопросы сняты , спс за внимание



Отредактировано @cckyi_boxxx (Окт. 15, 2012 07:58:37)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version