3272406 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

傀儡師の館.Python

傀儡師の館.Python

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

PR

Recent Posts

Calendar

Keyword Search

▼キーワード検索

Category

Archives

2023.12
2023.11
2023.10
2023.09
2023.08

Freepage List

Profile

kugutsushi

kugutsushi

Free Space

設定されていません。
2015.02.26
XML
カテゴリ:Python
ここまできたらもっとやってみるだ。何か検索結果を簡単に一覧表示したいときがある。じゃあ、やってみる。参考にしたのは、String formating in wx.ListBoxあたりだったかな。しばらく前に書いたものなので忘れてしまった。

タイトル、カラム名のリスト、データのリストを渡してやると、一覧表示してくれるようなものを作ってみた。まずは、quickgui に以下を追加しておく。

import sys
from wx.lib.mixins.listctrl import ListCtrlAutoWidthMixin

class AutoWidthListCtrl(wx.ListCtrl, ListCtrlAutoWidthMixin):
def __init__(self, parent):
wx.ListCtrl.__init__(self, parent, -1, style=wx.LC_REPORT)
ListCtrlAutoWidthMixin.__init__(self)

class AutoList(wx.Frame):
def __init__(self, parent, id, title, columns, data, size=(400, 200)):
wx.Frame.__init__(self, parent, id, title, size=size)

hbox = wx.BoxSizer(wx.HORIZONTAL)

panel = wx.Panel(self, -1)

self.list = AutoWidthListCtrl(panel)
for i, name in enumerate(columns):
self.list.InsertColumn(i, name)
number_of_data = i

for i in data:
index = self.list.InsertStringItem(sys.maxint, i[0])
rest = len(i) - 1
for j in range(rest):
self.list.SetStringItem(index, j+1, i[j+1])

hbox.Add(self.list, 1, wx.EXPAND)
panel.SetSizer(hbox)

self.Centre()
self.Show(True)

def autolist(title, columns, data):
app = wx.App()
AutoList(None, -1, title, columns, data)
app.MainLoop()


呼び出してみる。呼び出しは簡単。サイズもオプションで指定できるようにしてみた。

# -*- coding:utf-8 -*-

import quickgui as q

columns =('名前','出生地','生年','血液型','好きな食べ物')
data = [('平 将門', '東京都', '1981', 'A','チョコレート'),
('平 清盛', '神奈川県', '1949','B','メロン'),
('宮本 武蔵', '埼玉県', '1949','AB','いちじく'),
]

q.autolist("デタラメデータ", columns, data, size=(200,100))



なかなか便利かもしれない。





お気に入りの記事を「いいね!」で応援しよう

Last updated  2015.02.26 05:53:02
コメント(0) | コメントを書く



© Rakuten Group, Inc.