#tkinter #canvas #toplevel #tkinter.checkbutton
#tkinter #холст #верхний уровень #tkinter.checkbutton
Вопрос:
Я хочу отобразить checkbutton с полосой прокрутки. ДЕМОНСТРАЦИЯ
Я бы хотел, чтобы обе кнопки всегда были видны (чтобы полоса прокрутки была только на кнопке checkbutton)
Вот мой код:
def selectColumns(self, data):
new_window = Toplevel(self.master, height=400, width=200)
select = Button(new_window, text="select all", command=lambda: self.selection_all(list_var))
select.pack()
canvas = Canvas(new_window, bg='#FFFFFF', width=300, height=300, scrollregion=(0, 0, 500, 500))
canvas.pack(side=LEFT)
vbar = Scrollbar(new_window, orient=VERTICAL)
vbar.config(command=canvas.yview)
vbar.pack(side=RIGHT)
frame = Frame(new_window, borderwidth=3, relief="sunken", bg="red", height=300, width=200)
canvas.create_window(0, 0, anchor=NW, window=frame)
i = 1
list_var = []
for col in data.columns:
var = BooleanVar()
# var.set(True)
list_var.append((var, col))
check = Checkbutton(frame, text=col, variable=var).pack()
i = 1
valid = Button(new_window, text="Valid", command=lambda: self.getValue(list_var, data=data, win=new_window))
valid.pack()
обнаруженная проблема:
- Моя кнопка проверки торчит из моего холста
- Моя действительная кнопка не выровнена, как сделать с pack (), чтобы canva находилась слева, полоса прокрутки справа, а моя действительная кнопка внизу по центру?
Комментарии:
1. Поскольку ваши флажки расположены вертикально, было бы проще использовать текстовый виджет, а не холст. Вы заинтересованы в том, чтобы увидеть это решение?