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

2021年7月5日月曜日

Python wxPython

t f B! P L

今回やること

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テーマを適応中です。 語尾を自動でつけるプログラムを作りたいという要望をいただきました。是非紹介したいですがどの言語でどのようなプログラムかなど、お問い合わせフォームで詳しく教えてください!

最近の出来事

最近の出来事
寿司打お勧め75位♪(練習モードだけど)

アンケート

Welcome!

「プログラミング独学ブログ」へようこそ。 Yakinyといいます。幅広い範囲で投稿していますので、ぜひ過去の記事も見てみてください!!コメントも大歓迎です!更新がとまってしまって申し訳ございません

お問い合わせ

名前

メール *

メッセージ *

QooQ