以下のコードを使用して、コンボ ボックスにデータを入力しています。ただし、アプリケーションを実行すると、指定されたパスにあるすべてのメディア ファイルが検出されます。アプリの実行中に別のファイルを追加して、コンボ ボックスのドロップダウン ボタンをクリックしようとすると、アイテムのリストが表示されます。最近追加されたアイテムでコンボボックスが更新されない場合、そこに問題があります:
...
...
...
#Select Media path
os.chdir("c:\\ffmpeg\\bin")
wrkdir = os.getcwd()
filelist = os.listdir(wrkdir)
self.formats1 = []
for filename in filelist:
(head, filename) = os.path.split(filename)
if filename.endswith(".avi") or filename.endswith(".mp4") or filename.endswith(".flv") or filename.endswith(".mov") or filename.endswith(".mpeg4") or filename.endswith(".mpeg") or filename.endswith(".mpg2") or filename.endswith(".mkv") or filename.endswith(".m4v") or filename.endswith(".wav") or filename.endswith(".mp3"):
self.formats1.append(filename)
self.format_combo1=wx.ComboBox(panel, size=(140, -1),value='Select Media', choices=self.formats1, style=wx.CB_DROPDOWN, pos=(300,50))
...
...
....
少し読んだ後、wx.ComboBox は wxControlWithItems、wx.combo.ComboCtrl、および wx.Choice のサブクラスであるため、これらのメソッドも使用できることがわかりました。必要なことを実行するように聞こえるメソッド (OnButtonClick()) を 1 つ見つけました。ドロップダウン矢印をクリックすると、ディレクトリ内の項目でコンボボックス リストが更新されます。ただし、使い方の説明はありません。誰かが私を正しい方向に導くことができますか. ありがとう!