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