文字列に基づいてフォルダー名を作成し、チェックボックスが選択されていることに基づいてサブフォルダーを作成するtkinterを使用してpythonプログラムを作成しています。
つまり、「banana」チェックボックスが選択されている場合、フォルダという名前の文字列内にバナナ フォルダが作成されます。これが私がこれを行うために必要なことです:
- ユーザーがチェックするチェックボックスのリスト (これらはサブフォルダーを作成します) これは私が問題を抱えている部分です
- ディレクトリを参照します (これは、親フォルダーが作成されるパスです)
- フォルダーに名前を付けます (文字列を入力して、すべてのサブフォルダーが入るフォルダーを作成します)
これまでの私のコードは次のとおりです。チェックボックスをすべて保存するためのより良い方法があることはわかっていますが、その方法はまだわかりません。
import tkinter as tk
from tkinter import *
from tkinter.filedialog import askdirectory
import os, sys
def browse():
dir = askdirectory()
if dir:
path.set(dir)
def genAsset():
assetPath=path.get()
assetName=asset.get()
expFold=export.get()
bakFold=bake.get()
sceFold=scene.get()
texFold=texture.get()
scuFold=sculpt.get()
refFold=reference.get()
renFold=render.get()
engFold=engine.get()
os.makedirs(assetPath+"/"+assetName+"/")
os.makedirs(assetPath+"/"+assetName+"/"+expFold+"/")
os.makedirs(assetPath+"/"+assetName+"/"+bakFold+"/")
os.makedirs(assetPath+"/"+assetName+"/"+sceFold+"/")
os.makedirs(assetPath+"/"+assetName+"/"+texFold+"/")
os.makedirs(assetPath+"/"+assetName+"/"+scuFold+"/")
os.makedirs(assetPath+"/"+assetName+"/"+refFold+"/")
os.makedirs(assetPath+"/"+assetName+"/"+renFold+"/")
os.makedirs(assetPath+"/"+assetName+"/"+engFold+"/")
#create the window and title
window=Tk()
window.title("v1.0")
#define variables and images
path=StringVar()
asset=StringVar()
VMR=PhotoImage(file="VMR.gif")
selectFolders=StringVar()
export=StringVar()
bake=StringVar()
scene=StringVar()
texture=StringVar()
sculpt=StringVar()
reference=StringVar()
render=StringVar()
engine=StringVar()
#define checkbuttons of folders to generate and store textvaiable
expButt=Checkbutton(window, text="export", textvariable=export).pack()
bakButt=Checkbutton(window, text="bake").pack()
sceButt=Checkbutton(window, text="scene").pack()
texButt=Checkbutton(window, text="texture").pack()
scuButt=Checkbutton(window, text="sculpt").pack()
refButt=Checkbutton(window, text="reference").pack()
renButt=Checkbutton(window, text="renders").pack()
engButt=Checkbutton(window, text="engine").pack()
#display the image file
hdrImg=Label(window, image=VMR)
hdrImg.photo=VMR
#select path and define asset name, store strings
lDirec=Label(window, text="Folder Directory:").pack()
ePath=Entry(window, textvariable=path, width=50).pack()
bBrowse=Button(window, text="Browse Path", command=browse).pack()
lAsset=Label(window, text="Asset Name:").pack()
eAsset=Entry(window, textvariable=asset, width=50).pack()
bCreate=Button(window, text="Create Asset", command=genAsset).pack()
window.mainloop()