亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python - Tkinter 框架的 XY 滾動無法有效加載小部件

Python - Tkinter 框架的 XY 滾動無法有效加載小部件

陪伴而非守候 2021-12-08 16:16:55
我有當前代碼(從原始代碼中刪減) - 此代碼段也可在此處獲得。import tkinter as tkimport tkinter.ttk as ttkclass ScrolledFrame(tk.Frame):    def __init__(self, master, **kw):        tk.Frame.__init__(self, master, **kw)        vsb = tk.Scrollbar(self, orient='vertical')        vsb.grid(column=1, row=0, sticky='ns')        hsb = tk.Scrollbar(self, orient='horizontal')        hsb.grid(column=0, row=1, sticky='ew')        self.canvas = canvas = tk.Canvas(self, bd=0, highlightthickness=0,                        yscrollcommand=vsb.set, xscrollcommand=hsb.set)        canvas.grid(row=0, column=0, sticky='nsew')        #canvas.configure(scrollregion=canvas.bbox('all'))        vsb.config(command=canvas.yview)        hsb.config(command=canvas.xview)        self.grid_rowconfigure(0, weight=1)        self.grid_columnconfigure(0, weight=1)        # reset the view        canvas.xview_moveto(0)        canvas.yview_moveto(0)        self.interior = interior = tk.Frame(canvas)        interior_id = canvas.create_window(0, 0, window=interior,                                           anchor='nw')        def _configure_interior(event):            size = (interior.winfo_reqwidth(), interior.winfo_reqheight())            canvas.config(scrollregion="0 0 %s %s" % size)            if interior.winfo_reqwidth() != canvas.winfo_width():                canvas.config(width=interior.winfo_reqwidth())        interior.bind('<Configure>', _configure_interior)        def _configure_canvas(event):            if interior.winfo_reqwidth() != canvas.winfo_width():                canvas.itemconfigure(interior_id, width=canvas.winfo_width())        canvas.bind('<Configure>', _configure_canvas)代碼的目的是有一個框架,可以通過 x 和 y 軸滾動;但是,出現了一個問題,即在 x 軸上滾動會導致未繪制項目:然而,y 軸似乎工作得很好 - 我試圖通過不同scrollregion=設置(即'all')的程序進行更改,但沒有成功,它似乎完全刪除了 x 軸的功能。
查看完整描述

1 回答

?
慕姐4208626

TA貢獻1852條經驗 獲得超7個贊

您明確地將內部框架的寬度設置為與畫布的寬度相同。例如,當程序啟動時,畫布的寬度將略小于 360 像素,因此您將內部框架設置為該尺寸。在我的機器上最終是 309 像素。因此,當您滾動時,您將只能看到 309 像素的按鈕。

滾動的全部意義在于您試圖看到比窗口大的東西,但是您人為地使內部框架與窗口大小相同。

您應該停止強制內部框架與畫布大小相同,或者至少停止強制其小于畫布。它需要是它的自然大小。


查看完整回答
反對 回復 2021-12-08
  • 1 回答
  • 0 關注
  • 300 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號