python - 如何让 tkinter 滚动条工作(灰色)
问题描述
我正在创建一个简单的 tkinter 应用程序。当用户按下按钮时,会出现一个图像。如果他们再次按下它,则会出现另一个图像等。所以我想要一个滚动条,以便用户可以滚动到出现在页面外的图像。我不确定我做错了什么,但滚动条显示为灰色并且无法正常工作。
import calendar
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.geometry('800x800')
x = 30
y = 30
box_image = tk.PhotoImage(file='apple.png')
### SCROLL BAR ###
# create a main frame
main_frame = tk.Frame(root)
main_frame.pack(fill='both', expand=1)
# create a canvas
my_canvas = tk.Canvas(main_frame)
my_canvas.pack(side='left', fill='both', expand=1)
# add a scrollbar to the canvas
my_scrollbar = ttk.Scrollbar(main_frame, orient='vertical', command=my_canvas.yview)
my_scrollbar.pack(side='right', fill='y')
# configure the canvas
my_canvas.configure(yscrollcommand=my_scrollbar.set)
my_canvas.bind('<Configure>', lambda e: my_canvas.configure(scrollregion = my_canvas.bbox("all")))
# create Another frame inside the canvas
second_frame = tk.Frame(my_canvas)
# add that new frame to a window in the canvas
my_canvas.create_window((0,0), window=second_frame, anchor="nw", width="10000")
def display():
global x , y
panel2 = tk.Label(main_frame, image=box_image, bg='#f7f6f6')
panel2.place(x=x, y=y)
x = x
y = y+200
button = tk.Button(second_frame, text="click me", command=display)
button.place(x=0, y=0)
label = tk.Label(second_frame, text="label", bg="blue")
label.pack(fill="x", padx=50)
new_frame = tk.Frame(second_frame, bg='black', height=110)
new_frame.pack(fill="x")
root.mainloop()
解决方案
您需要将图像放入second_frame
,而不是放入main_frame
.
推荐阅读
- javascript - 显示无的CSS动画不起作用
- python - 尝试创建一个依赖于 python 3.6 但 Kinetic 仅支持 python 版本 2 的 ROS Kinetic 节点
- java - 如何使用 Firebase 身份验证 android studio 使用电子邮件和密码进行注册
- npm - 找不到模块:无法解析 gatsby 健全项目中的“@react-icons/all-files”
- node.js - 我尝试在本地计算机上全局安装 ionicons,但出现以下错误
- ios - 打开通用链接不会在应用程序中打开
- selenium - 即使 system.set 属性文件中的键和值正确,我也无法启动 Chrome 浏览器
- arrays - 如何在每行中显示两列是Scrollview而不是Flatlist?反应原生
- node.js - 无效响应和空 API 响应 - Alexa 对话问题
- python - 如何在openCV中获取带有视频输入的屏幕大小?