Nobody is me 2022-01-01 11:00 采纳率: 100%
浏览 359
已结题

想要在python-tkinter可视化窗口中加入滚动条

在文章之前,我先说明我是一个初学者,且对tkinter的知识都是自学,所以希望各位给予我一些建议,谢谢各位了
我现在在做一个可视化弹窗,内容是点击按钮之后会出现几张照片,但因为照片过大无法完全显示,而且后期也会加入其他的内容,所以需要加入滚动条来使其能翻页(不要说把弹窗拉大了,以后还想加很多东西,结果在滚动条这里卡好几天了,呜~)
我的代码如下:


from tkinter import *     # 弹窗的库
from PIL import Image,ImageTk
 #设置主页面函数

root = Tk(className='主页')         #设计弹窗函数名和标题
root.geometry('800x500')            # 设置弹窗大小
def Main():
    menu = Menu()                       # 设置头顶框
    menu.add_command(label="open")
    menu.add_command(label="add")
    menu.add_command(label="delete")
    root.config(menu=menu)


    butn1 = Button(root,text='龙庭大酒店',width=100,command=Long)    # command为链接,打开相应函数
    butn1.pack()
    

  #设计龙庭大酒店的窗口
def Long():
    pi1_open = Image.open('期末作业\龙庭大酒店1.jpg')
    global pi1_gif
    pi1_gif = ImageTk.PhotoImage(pi1_open)
    label_pi1 = Label(image=pi1_gif)
    label_pi1.pack()

    pi2_open = Image.open('期末作业\龙庭大酒店2.jpg')
    global pi2_gif
    pi2_gif = ImageTk.PhotoImage(pi2_open)
    label_pi2 = Label(image=pi2_gif)
    label_pi2.pack()

    pi3_open = Image.open('期末作业\龙庭大酒店3.jpg')
    global pi3_gif
    pi3_gif = ImageTk.PhotoImage(pi3_open)
    label_pi3 = Label(image=pi3_gif)
    label_pi3.pack()


Main()
mainloop()

其中关于第二个函数“Long”就是添加照片的函数,直接将代码传上来运行就没有照片
之前也搜过一些资料,说Scrollbar只能与canvas、entry、listbox、text相结合,所以我是否要重写代码?还是要加一个函数或类?
(完全自学,希望各位给予建议)

  • 写回答

2条回答 默认 最新

  • Smart-Space 2022-01-08 07:24
    关注

    将画布作为窗口的整体(顶层组件)组件是一个不错的选择。你可以将滚动条绑定到画布,甚至可以实时更新滚动条的可视范围。

    无论是绑定滚动条还是自动更新可视范围,都可以参考:https://blog.csdn.net/tinga_kilin/article/details/114737655

    然后就可以直接在画布中任意位置载入图片了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月16日
  • 已采纳回答 1月8日
  • 创建了问题 1月1日

悬赏问题

  • ¥15 生物医学数据分析。基础课程就v经常唱课程舅成牛逼
  • ¥15 云环境云开发云函数对接微信商户中的分账功能
  • ¥15 空间转录组CRAD遇到问题
  • ¥20 materialstudio计算氢键脚本问题
  • ¥15 有没有代做有偿主要做数据可视化部分即可(2023全国高考更省一本线理科类)
  • ¥15 配置FPT报错,该如何处理
  • ¥15 请大家看一下这个代码咋写,一点思路都没有,最好能做一下,不要伪代码,有偿
  • ¥15 有偿请人帮写个安卓系统下禁止装软件及禁止拷入文件的程序
  • ¥100 用 H.265 对音视频硬编码 (CUDA)
  • ¥20 mpich安装完成后出问题