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

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

Tkinter - 當框架內(nèi)的標簽數(shù)量發(fā)生變化時,滾動條不會調(diào)整大小

Tkinter - 當框架內(nèi)的標簽數(shù)量發(fā)生變化時,滾動條不會調(diào)整大小

茅侃侃 2023-10-26 14:29:35
我正在嘗試創(chuàng)建一個 GUI,其中左側(cè)是一個Listbox(包含在框架內(nèi)f2),顯示員工 ID,右側(cè)是另一個框架second_frame(包含在畫布和外部框架內(nèi)f3),以標簽的形式顯示每個選定員工的交易詳細信息。每個員工可以有多個交易。因此,標簽的數(shù)量必須是動態(tài)的,即對于 中的第一個選定的項目listbox,可以有兩個標簽,對于 中的第二個選定的項目listbox,可以有一百個。對于每個選擇,我都會調(diào)用兩個函數(shù)來銷毀舊標簽并創(chuàng)建新標簽。雖然代碼工作正常,但我無法根據(jù)所選listbox條目調(diào)整滾動條的大小。我是 Tkinter 的新手,請指教。下面是我的代碼。另請注意,從任何函數(shù)外部調(diào)用 test() 函數(shù)時都會顯示滾動條,但從任何函數(shù)內(nèi)部調(diào)用時不會顯示任何內(nèi)容。# -*- coding: utf-8 -*-from tkinter import *'''def test():    for i in range(0,50):        for j in range (0,7):            Label(second_frame, text=f'{i}{j}', width=20).grid(row=i, column=j, pady=5,padx=5)'''# --- function ---def destroy_frame():    #f1.grid_forget()    print("destroying frame")    for label in second_frame.winfo_children():        label.destroy()def create_frame(val):    print("creating new frame")    for i in range(0,val):        for j in range (5):            Label(second_frame, text=f'{i} {j} ', relief=GROOVE, width=10).grid(row=i, column=j, pady=5,padx=5)def on_selection(event):    # here you can get selected element    print('previous:', listbox.get('active'))    print(' current:', listbox.get(listbox.curselection()))    # or using `event`    print('(event) previous:', event.widget.get('active'))    print('(event)  current:', event.widget.get(event.widget.curselection()))    print (listbox.get(listbox.curselection()))    if (listbox.get(listbox.curselection()) == "Eid 1"):        destroy_frame()        create_frame(100)    elif (listbox.get(listbox.curselection()) == "Eid 2"):        destroy_frame()        create_frame(200)    print('---')root = Tk()root.geometry('800x500')#Create base Framesf1 = Frame(width=800, height=50, bg="yellow", colormap="new")f1.grid(row=0, columnspan=2)f1.grid_propagate(False)f2 = Frame(width=200, height=425, bg="light blue", colormap="new")f2.grid(row=1, column=0)f2.grid_propagate(False)
查看完整描述

1 回答

?
元芳怎么了

TA貢獻1798條經(jīng)驗 獲得超7個贊

當您將小部件添加到框架時,您的畫布不會觸發(fā)配置事件。相反,你的框架被觸發(fā)了。

所以你需要添加這一行:

second_frame.bind('<Configure>', lambda e : my_canvas.configure(scrollregion = my_canvas.bbox("all")))

創(chuàng)建后second_frame


查看完整回答
反對 回復 2023-10-26
  • 1 回答
  • 0 關(guān)注
  • 206 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

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