0

基本的にListCtrlから作成されたプログラムがあり、追加ボタン、編集ボタン、および削除ボタンがあります。ご想像のとおり、それほど難しいことではありません (線形プログラミングとは異なるため難しいと思いますが、学習中です)。

表示されるデータはデータベースから取得され、状況に応じて一部のデータが追加または編集または削除されます。

データが変更されると、ListCtrl が完全にリロードされるようになりたいと思います (基本的に、データがソートされるため)。これは、データベースからデータを更新し、新しいデータを使用してデータベースから新しい ListCtrl を作成することを意味します。ListCtrl とデータベースを別々に更新するのではありません。

これは ListCtrl にデータを挿入するコードであり、パネル内にあります (ListCtrl をリロードする必要があるオブジェクトは、さまざまな場所から呼び出されるダイアログです)。

i = 0
for data in coches:
    index = self.lista.InsertStringItem(i, data[0])
    self.lista.SetStringItem(index, 1, str(data[1]))
    self.lista.SetStringItem(index, 2, str(data[2]))
    self.lista.SetStringItem(index, 3, str(data[3]))
    self.lista.SetStringItem(index, 4, str(data[4]))
    if((index+1) % 2 == 0):
        self.lista.SetItemBackgroundColour(index,gris)
    i += 1

「coches」はデータベースからのリストで、「self.lista」は ListCtrl オブジェクトです。

前もって感謝します

4

2 に答える 2

1

個人的には、単純な ListCtrl ではなく ObjectListView を使用するのが好きです。このテーマに関するチュートリアルも書きました。そして今年、wxPython とSQLAlchemy を使用した CRUD に関するチュートリアルを書きました。それらもあなたに役立つと思います。

于 2012-06-18T21:41:36.333 に答える
1

ListCtrl何が問題なのかはわかりませんが、リストを更新するためにデータを変更するたびに、メソッド内に入力するためのコードを配置し、それを呼び出す必要があります。
再度入力する前にリストをクリアするには、ListCtrlメソッドDeleteAllItems()またはを使用できますClearAll()

于 2012-06-17T19:07:11.663 に答える