0

私は wxpython (および python も :)) の初心者であり、カスタムプログラムを実行して学習しようとしていますが、できないことがあります。Objectlistview の例を探していますが、それほど多くはありません。ここからコードをコピー/貼り付け/編集し(最後の例)、アイテムの重複を避けるために次のようなことをしたい:

self.olv = ObjectListView(self, style=wx.LC_REPORT|wx.SUNKEN_BORDER)
...
self.olv.SetDropTarget(MyFileDropTarget(self))
self.setFiles()
self.RemoveDuplicated(self.olv)

def RemoveDuplicated(self, X):
    for all in X:
        Counter = 0
        for B in X:
            if X.path(A) == X.path(B):
                Counter += 1
            if (X.path(A) == X.path(B) and Counter >=2):
                 Counter += 1
                 RemoveObject(B)

それを行うためのアイデアやチュートリアルはありますか? 前もって感謝します。

完了:D、再びマイク。

     def __init__(self, window):
    """Constructor"""
    wx.FileDropTarget.__init__(self)
    self.window = window
    self.all_filenames = []


#----------------------------------------------------------------------
def OnDropFiles(self, x, y, filenames):
    """
    When files are dropped, update the display
    """
    self.entriesList = list()   # Actual dropped file entries; duplicates are avoided.
    self.haveEntries = False    # Tracks actual dropped file entries, but not help entries.

    self.RemoveDuplicated(self.all_filenames, filenames)
    self.all_filenames += filenames
    self.window.updateDisplay(filenames)

    print len(all_filenames) , len(filenames)

def RemoveDuplicated(self, X, Y):
    for A in X:
        for B in Y:
            if A == B:
                Y.remove(B)
4

1 に答える 1

0

ObjectListViewに追加するのは基本的にオブジェクトまたはディクテーションのリストであるため、ウィジェットをこれらの値に設定する前に、そのリストで重複排除プロセスを実行するだけで済みます。Pythonのset関数とここでのソリューションを使用して、オブジェクトの重複を排除できます。

ObjectListView情報を探す場所がいくつかあります。

于 2012-08-16T18:19:11.763 に答える