Код:
from tkinter import *
from docx import Document
root = Tk()
info = ["Option 1", "Option 2", "Option 3"]
vars = []
for idx,i in enumerate(info):
var = IntVar(value=0)
vars.append(var)
lblOption = Label(root,text=i)
btnYes = Radiobutton(root, text="Yes", variable=var, value=2)
btnNo = Radiobutton(root, text="No", variable=var, value=1)
btnNa = Radiobutton(root, text="N/A", variable=var,value=0)
lblOption.grid(column=4,row=idx, sticky = W)
btnYes.grid(column=1,row=idx)
btnNo.grid(column=2,row=idx)
btnNa.grid(column=3,row=idx)
def save():
document = Document()
#add table
table = document.add_table(1, 4)
#style table
table.style = 'Table Grid'
#populate header row
heading_cells = table.rows[0].cells
heading_cells[0].text = "Options"
heading_cells[1].text = "Yes"
heading_cells[2].text = "No"
heading_cells[3].text = "N/a"
for idx, item in enumerate(vars):
cells = table.add_row().cells
cells[0].text = info[idx] # gets the option name
val = item.get() #radiobutton value
if val == 2: # checks if yes
cells[1].text = "*"
cells[2].text = "not-selected"
cells[3].text = "not-selected"
elif val == 1: # checks if no
cells[2].text = "*"
cells[1].text = "not-selected"
cells[3].text = "not-selected"
elif val == 0: # checks if N/A
cells[3].text = "*"
cells[1].text = "not-selected"
cells[2].text = "not-selected"
fn = document.save("Test.docx")
for cell in table.columns[2].cells[1:]:
if cell.text == '*':
fn = fn = document.save("failed.docx")
break
print(fn)
savebtn = Button(root, text = "Save", command = save).grid()
root.mainloop()
Чего я пытаюсь достичь:
Если no
был выбран для любого изс помощью переключателей, затем необходимо сохранить документ как Failed.docx
. Если каждая опция была выбрана без no's
, сохраните файл как Test.docx
.
Моя проблема:
Почему у меня последний цикл for и еслиОператор не работает.
Если я выберу несколько no's
из радиокнопок и нажму кнопку Сохранить, он создаст мне два файла Test.docx
& Failed.docx
, тогда как он должен был создать только один файл Failed.docx
Моя цель Моя цель - создать радиокнопки, в зависимости от того, какая опция была выбрана Yes, no & N/A
, она сгенерирует файл docx
.
Например, еслини один из no
не был выбран, затем сгенерируйте файл с именем Test.docx
.
Если был выбран хотя бы 1 или более no
, то забудьте Test.docx
и создайте другое имя файланазывается Failed.docx