Python - добавление и вставка, приводящие к фигурным скобкам - PullRequest
0 голосов
/ 07 июня 2018

Мне нужна кнопка, чтобы взять результаты проверки и поместить их в текстовое поле с прокруткой.Но когда я запускаю следующее, я получаю кучу фигурных скобок, до и после используемых переменных.

Я только изучаю это и могу только представить, насколько уродлив код, но он работает .... Сорта.

У меня есть метод для каждого набора флажков, и каждыйиз этих методов позже вызывается с методом для их объединения.

На самом деле я не могу взять кредит, потому что в основном это вещи, собранные из паутины.

def combine_funcs(*funcs):
    def combined_func(*args, **kwargs):
        for f in funcs:
            f(*args, **kwargs)
    return combined_func



def addtolist():
    global List

    List = []
    for item in varList:
        if item.get() != "":
            List.append(item.get())
    sffScr.insert(INSERT, List)


def addtolistagain():
    global Listagain

    Listagain = []
    for item in varListagain:
        if item.get() != "":
            Listagain.append(item.get())
    sffScr.insert(INSERT, Listagain)
    sffScr.insert(END, '\n' "The second END " '\n')



# --- main ---



myApp = Tk()
myApp.title("GUI app")
myApp.geometry("800x700")

######
List = []
varList = []

var1 = StringVar()
cb1 = Checkbutton(myApp, text="Check set 1", variable=var1,
                           onvalue="check set 1" '\n'  , offvalue="")
cb1.grid(column=1, row=0, sticky=W)

var2 = StringVar()
cb2 = Checkbutton(myApp, text="check set 1, check 2", variable=var2,
                         onvalue="check set 1, check 2 '\n' ", offvalue="")
cb2.grid(column=1, row=1, sticky=W)

varList.append(var1)
varList.append(var2)

######
Listagain = []
varListagain = []

var1again = StringVar()
cb1again = Checkbutton(myApp, text="check set 2, check 1", variable=var1again,
                           onvalue="check set 2, check 1" , offvalue="")
cb1again.grid(column=2, row=0, sticky=W)

var2again = StringVar()
cb2again = Checkbutton(myApp, text="check set 2, check 2", variable=var2again,
                         onvalue="check set 2, check 2", offvalue="")
cb2again.grid( column=2, row=1, sticky=W)

varListagain.append(var1again)
varListagain.append(var2again)

######

b1 = Button(myApp, text="Add", command=combine_funcs(addtolist, addtolistagain))
b1.grid(row=1, column=3)

sffScrolW=50
sffScrolH=30

sffScr=scrolledtext.ScrolledText(myApp, width=sffScrolW, height=sffScrolH, wrap=tk.WORD)
sffScr.grid(column=0, row=3, columnspan=3, rowspan=15, sticky=tk.W, padx=5)

1 Ответ

0 голосов
/ 08 июня 2018

Итак, вы должны преобразовать список в строку.Я узнал, что когда вы печатаете список объектов, вы получаете кудрявые рывки.Изменение части моего кода с:

def addtolist():
    global List

    List = []
    for item in varList:
        if item.get() != "":
            List.append(item.get())
    sffScr.insert(INSERT, List)

На:

def addtolist():
    global List

    List = []
    for item in varList:
        if item.get() != "":
            List.append(item.get())
    listString="".join(List)
    sffScr.insert(INSERT, listString)
...