今回やること
wxPythonを使って、Excelのようなテキストボックスがたくさん設置されているようなフレームをつくります。Excelのようなファイルの保存/開く をすることはできません。
ソースコード
import sys import wx import wx.lib.scrolledpanel as scrolled class MyFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self,None,-1,"Excel(大嘘)") panel = scrolled.ScrolledPanel(self,-1,size=wx.Size(self.GetSize()[0],self.GetSize()[1])) panel.SetupScrolling() textctrls = [] c = 5 r = 10 for col in range(c): for row in range(r): textctrls.append(wx.TextCtrl(panel,-1,"")) sizer = wx.FlexGridSizer(r,c,1,1) for ctrl in textctrls: sizer.Add(ctrl) panel.SetSizer(sizer) app = wx.App(0) MyFrame().Show(True) app.MainLoop()
解説
for文を使ってテキストボックスを設置したり、グリッド上に表示させたりしています。まず、スクロールするパネルを利用するため、
import wx.lib.scrolledpanel as scrolledとライブラリをimportします。
また、普通のwx.Panelではなく、スクロールできるように、scrolled.ScrolledPanelを使います。
textctrls = [] c = 5 r = 10 for col in range(c): for row in range(r): textctrls.append(wx.TextCtrl(panel,-1,""))のところでテキストボックスを設置しています。
列が5,行が10になるようにしています。
これを変えるには、cとrの変数の値を変えてください。
はい。今回はここまでにします。
こんな感じで、設置できるのおもしろいです。
動作環境:
Windows 10
64bit
Python 3.9.1 及び Python 3.8.2
wxPython 4.1.1a1
コメント、気軽にどうぞ。
0 件のコメント:
コメントを投稿