tkinter 滚动条不活动 [英] tkinter scroll bar inactive

查看:118
本文介绍了tkinter 滚动条不活动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用 tkinter 使用垂直滚动条.我正在使用下面的代码.滚动条一直显示,直到我取消注释该行

#canvas.configure(yscrollcommand=yscrollbar.set)

我做错了什么?

提前致谢!

导入 tkinter 作为 tk从 tkinter 导入 ttk根=tk.Tk()框架 = tk.Frame(根)框架.pack()canvas = tk.Canvas(框架,高度=200,宽度=200,背景=蓝色")yscrollbar = tk.Scrollbar(frame, orient=tk.VERTICAL, command=canvas.yview)frame.columnconfigure(0, weight=1)frame.rowconfigure(0, weight=1)yscrollbar.grid(row=0, column=1,sticky='ns')canvas.grid(row=0, column=0,sticky='ewns')canvas.configure(yscrollcommand=yscrollbar.set)canvas.config(scrollregion=canvas.bbox(all"))root.mainloop()

I am trying to get a vertical scrollbar working with tkinter. I am using the code below. The scroll bar shows up until I uncomment the line

#canvas.configure(yscrollcommand=yscrollbar.set)

What am I doing wrong?

thanks in advance!

import tkinter as tk
from tkinter import ttk

root =tk.Tk()

frame = tk.Frame(root)
frame.pack()

canvas = tk.Canvas(frame, height=200, width=200, background="blue")

yscrollbar = tk.Scrollbar(frame, orient=tk.VERTICAL, command=canvas.yview)

frame.columnconfigure(0, weight=1)
frame.rowconfigure(0, weight=1)

yscrollbar.grid(row=0, column=1, sticky='ns')
canvas.grid(row=0, column=0, sticky='ewns')

canvas.configure(yscrollcommand=yscrollbar.set)
canvas.config(scrollregion=canvas.bbox("all"))

root.mainloop()

scrollbar inactive

解决方案

Thanks, the scrollregion was smaller than the canvas size...

got it working

import tkinter as tk
from tkinter import ttk


root =tk.Tk()

frame = tk.Frame(root, height=100, width=100)
frame.pack()

frame.columnconfigure(0, weight=1)
frame.rowconfigure(0, weight=1)

canvas = tk.Canvas(frame, height=200, width=200, background="blue")
canvas.grid(row=0, column=0, sticky='ewns')

yscrollbar = tk.Scrollbar(frame, orient=tk.VERTICAL, command=canvas.yview)
yscrollbar.grid(row=0, column=1, sticky='ns')
canvas.configure(yscrollcommand=yscrollbar.set)

frame_buttons = tk.Frame(canvas, bg="green")
canvas.create_window((0, 0), window=frame_buttons, anchor="nw")

rows = 9
columns = 5

buttons = [[tk.Button() for j in range(columns)] for i in range(rows)]
for i in range(0, rows):
    for j in range(0, columns):
        buttons[i][j] = tk.Button(frame_buttons, text=("%d,%d" % (i+1, j+1)))
        buttons[i][j].grid(row=i, column=j, sticky='news')
    
frame_buttons.update_idletasks()



canvas.configure(scrollregion=canvas.bbox("all"))

root.mainloop()

这篇关于tkinter 滚动条不活动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆