前提・実現したいこと
現在、wxpythonでultimatelistctrlを使ったGUIを作成しています。
ultimatelistctrl内に画像を挿入しようとしているのですが上手くいきません。
また、ヘッダーの文字サイズは変更できるのですが、リスト内の文字サイズの変更の仕方がわかりません。
以上の2点についてご教授いただけると幸いです。
よろしくお願い致します。
該当のソースコード
python
1import wx 2from wx.lib.agw import ultimatelistctrl as ULC 3import os 4 5 6class MainPanel(wx.Panel): 7 def __init__(self, parent): 8 wx.Panel.__init__(self, parent) 9 10 self.aquamarine = wx.Colour("AQUAMARINE") 11 12 agwStyle = ( 13 ULC.ULC_HAS_VARIABLE_ROW_HEIGHT | wx.LC_REPORT | wx.LC_SINGLE_SEL) 14 15 self.ul = ULC.UltimateListCtrl( 16 self, agwStyle=agwStyle) 17 18 sizer = wx.BoxSizer(wx.VERTICAL) 19 sizer.Add(self.ul, 1, wx.EXPAND | wx.ALL, 5) 20 self.SetSizer(sizer) 21 22 mask = wx.LIST_MASK_TEXT | wx.LIST_MASK_IMAGE | wx.LIST_MASK_FORMAT 23 24 def gen_column_header(name, kind=0, mask=mask): 25 info = ULC.UltimateListItem() 26 info._mask = mask 27 info._format = 0 28 info._kind = kind 29 info._text = name 30 info._font = wx.Font(11, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, "") 31 return info 32 33 self.item = ["撮影日", "写真", "写真リンク"] 34 self.width = [150,300,300] 35 36 for i in range(len(self.item)): 37 self.ul.InsertColumnInfo(i, gen_column_header(self.item[i], 1, mask | ULC.ULC_MASK_FONT)) 38 self.ul.SetColumnWidth(i, self.width[i]) 39 40 self.ul.InsertStringItem(0, "") 41 self.checkBox = wx.CheckBox(self.ul, wx.ID_ANY, "撮影日", wx.DefaultPosition, (0,200), 0, name=self.item[0]) 42 self.ul.SetItemWindow(0, 0, self.checkBox, expand=True) 43 imagelist = wx.ImageList(300, 200) 44 imageidx = imagelist.Add(wx.Icon("a.png", wx.BITMAP_TYPE_ANY)) 45 self.ul.SetItemColumnImage(0,1,imageidx) 46 #file = os.path.abspath("a.png") 47 48 self.ul.SetStringItem(0, 2, "a.png") 49 self.ul.SetItemBackgroundColour(0, wx.Colour("AQUAMARINE")) 50 self.checkBox.SetBackgroundColour(wx.Colour("AQUAMARINE")) 51 52class MainFrame(wx.Frame): 53 def __init__(self): 54 wx.Frame.__init__(self, None, title="frame", size=(800, 350)) 55 MainPanel(self) 56 self.Show() 57 58 59if __name__ == "__main__": 60 app = wx.App(False) 61 frame = MainFrame() 62 app.MainLoop()
補足情報(FW/ツールのバージョンなど)
Python 3.8.5
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/11 13:37