今回やること
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 件のコメント:
コメントを投稿