第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Tkinter - 如何停止在畫布窗口上方滾動(dòng)

Tkinter - 如何停止在畫布窗口上方滾動(dòng)

開(kāi)滿天機(jī) 2023-06-27 13:42:33
我有一個(gè)可滾動(dòng)框架,鼠標(biāo)滾輪綁定到滾動(dòng),但是當(dāng)框架小于畫布時(shí),我可以在其上方滾動(dòng) - 如何將框架保持在畫布頂部?這是代碼的最小版本:import tkinter as tkclass Gui:    def __init__(self, master):        self.root = master        self.canvas = tk.Canvas(self.root)        self.frame = tk.Frame(self.canvas,bg='white')        self.scroll = tk.Scrollbar(self.canvas,orient='vertical', command=self.canvas.yview)        self.canvas.configure(yscrollcommand=self.scroll.set)        self.scroll.pack(side='right', fill='y')        self.canvas.place(relheight=1, relwidth=0.85, relx=0.15)        self.canvas_frame = self.canvas.create_window((0,0), window=self.frame, anchor='nw')        self.frame.bind('<Configure>', self.onFrameConfigure)        self.canvas.bind_all('<MouseWheel>', lambda event: self.canvas.yview_scroll(int(-1*(event.delta/120)), 'units'))        self.addToFrame()    def onFrameConfigure(self, event):        self.canvas.configure(scrollregion=self.canvas.bbox('all'))    def addToFrame(self):        self.label = tk.Label(self.frame,text='Label')        self.label.pack()        if __name__ == "__main__":    root = tk.Tk()    gui = Gui(root)    root.mainloop()
查看完整描述

1 回答

?
阿波羅的戰(zhàn)車

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超6個(gè)贊

您可以定義自己的yview()方法,僅當(dāng)畫布的全部?jī)?nèi)容不可見(jiàn)時(shí)才進(jìn)行滾動(dòng)。為此,我使用了,如果所有畫布內(nèi)容都可見(jiàn),self.canvas.yview()則返回。(0.0, 1.0)然后我使用自定義yview()方法作為滾動(dòng)條命令和鼠標(biāo)滾輪綁定。


import tkinter as tk


class Gui:

    def __init__(self, master):

        self.root = master

        self.canvas = tk.Canvas(self.root)

        self.frame = tk.Frame(self.canvas,bg='white')

        self.scroll = tk.Scrollbar(self.canvas,orient='vertical', command=self.yview)

        self.canvas.configure(yscrollcommand=self.scroll.set)


        self.scroll.pack(side='right', fill='y')

        self.canvas.place(relheight=1, relwidth=0.85, relx=0.15)

        self.canvas_frame = self.canvas.create_window((0,0), window=self.frame, anchor='nw')


        self.frame.bind('<Configure>', self.onFrameConfigure)

        self.canvas.bind_all('<MouseWheel>', lambda event: self.yview('scroll', int(-1*(event.delta/120)), 'units'))

        self.addToFrame()


    def onFrameConfigure(self, event):

        self.canvas.configure(scrollregion=self.canvas.bbox('all'))


    def addToFrame(self):

        self.label = tk.Label(self.frame,text='Label')

        self.label.pack()


    def yview(self, *args):

        if self.canvas.yview() == (0.0, 1.0):

            return

        self.canvas.yview(*args)


if __name__ == "__main__":

    root = tk.Tk()

    gui = Gui(root)

    root.mainloop()


查看完整回答
反對(duì) 回復(fù) 2023-06-27
  • 1 回答
  • 0 關(guān)注
  • 224 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)