🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

1935閲覧

wxpythonで作成したGUIのultimatelistctrlに画像を挿入したい

able

総合スコア7

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2020/12/10 14:41

前提・実現したいこと

現在、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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

画像の表示
事前に ListCtrl と ImageList との関連付けが必要です。

python

1self.ul.AssignImageList(imagelist, wx.IMAGE_LIST_SMALL)

フォントサイズの変更 SetItemFont

python

1self.ul.SetItemFont(0, font)

投稿2020/12/10 15:09

teamikl

総合スコア8738

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

able

2020/12/11 13:37

teamikl様 ご回答いただきありがとうございます。 ultimatelistctrlに関する情報が日本語サイトではあまりなかったため、困っていたのですがなんとか実装することができました。 非常に助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問