
wxPythonからUbuntu 22.04 LTSのアクセントカラーなどを利用する方法について。
What is the Best Hockey Stick Grip Tape?
Not a gimmick! Rezztek hockey player \u0026 goalie stick blade grip tape review
OSに使用されているシステムカラーはwx.SystemSettings.GetColour()メソッドで取得できます。
wx.SystemColour — wxPython Phoenix 4.1.1 documentation
https://docs.wxpython.org/wx.SystemColour.enumeration.html
【新品 23.0cm】モレリア2 japan パッションレッド>
その一覧をリスト表示するスクリプトを書いてみました。#!/usr/bin/env python """OSのシステムカラー(wx.SystemColour)を取得し一覧表示する""" import wx SYS_COLOR_LIST = [ "SCROLLBAR", "DESKTOP", "ACTIVECAPTION", "INACTIVECAPTION", "MENU", "WINDOW", "WINDOWFRAME", "MENUTEXT", "WINDOWTEXT", "CAPTIONTEXT", "ACTIVEBORDER", "INACTIVEBORDER", "APPWORKSPACE", "HIGHLIGHT", "HIGHLIGHTTEXT", "BTNFACE", "BTNSHADOW", "GRAYTEXT", "BTNTEXT", "INACTIVECAPTIONTEXT", "BTNHIGHLIGHT", "3DDKSHADOW", "3DLIGHT", "INFOTEXT", "INFOBK", "LISTBOX", "HOTLIGHT", "GRADIENTACTIVECAPTION", "GRADIENTINACTIVECAPTION", "MENUHILIGHT", "MENUBAR", "LISTBOXTEXT", "LISTBOXHIGHLIGHTTEXT", "BACKGROUND", "3DFACE", "3DSHADOW", "BTNHILIGHT", "3DHIGHLIGHT", "3DHILIGHT", "FRAMEBK" class MyApp(wx.Frame): def __init__(self, *args, **kw): super(MyApp, self).__init__(*args, **kw) self.InitUI() def InitUI(self): panel = wx.Panel(self) box = wx.BoxSizer(wx.HORIZONTAL) color_list = wx.ListCtrl(panel, wx.ID_ANY, style=wx.LC_REPORT) color_list.InsertColumn(0, "Index", width=50) color_list.InsertColumn(1, "Name", width=250) color_list.InsertColumn(2, "Color (R,G,B,alpha)", width=200) for i, item in enumerate(SYS_COLOR_LIST): color_list.InsertItem(i, str(i)) color_list.SetItem(i, 1, item) try: color = wx.SystemSettings.GetColour(i) color_list.SetItem(i, 2, str(color)) color_list.SetItemBackgroundColour(i, wx.Colour(color)) if sum(color[:3]) < 500 and color[3] > 50: color_list.SetItemTextColour(i, wx.Colour("white")) elif color[3] > 50: color_list.SetItemTextColour(i, wx.Colour("black")) except AssertionError: color_list.SetItem(i, 2, "None") box.Add(color_list, 1, wx.EXPAND) panel.SetSizer(box) self.SetSize((500, 500)) self.SetTitle('List of wx.SystemColour') def main(): app = wx.App() gui = MyApp(None) gui.Show() app.MainLoop() if __name__ == '__main__': main()
Ubuntu 22.04 LTSでの実行例(左はデフォルトのライトテーマ、右はダークテーマでアクセントカラーを変更):
これによると、どうやらアクセントカラーのインデックス番号は13のようです。したがって、スクリプトでアクセントカラーを利用するには例えば以下のように記述できます。調べてみたところ詳細な原因はまだわかっていないのですが、手がかりになるStack Overflowの回答を見つけました。
最安値 100 個 セット アイス ホッケー グリップ スティック テープ>元のコマンド: $ python3 [スクリプトのパス] 環境変数を追加して実行: $ env GDK_BACKEND=x11 python3 [スクリプトのパス]