wxPythonでExcelみたいにテキストボックスをたくさん設置する

2021年7月5日月曜日

Python wxPython

今回やること

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()
wxPythonでExcelみたいにテキストボックスをたくさん設置する

解説

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

コメント、気軽にどうぞ。

ページ

QooQ