Tkinter شبكة الهندسة حجم مدير نشر (مع لزجة)

StackOverflow https://stackoverflow.com/questions/1441134

  •  10-07-2019
  •  | 
  •  

سؤال

وأنا في عداد المفقودين شيئا عن كيف تنتشر الأحجام في تاكا. جرب هذا:

from Tkinter import *

root = Tk()

frame1 = Frame(root, border=4, relief=RIDGE)
frame1.grid(sticky=E+W)
frame2 = Frame(root, border=4, relief=RIDGE)
frame2.grid(sticky=E+W)

label1 = Label(frame1, text='short', background='white')
label1.grid(sticky=E+W)
label2 = Label(frame2, text='quite a bit longer', background='white')
label2.grid(sticky=E+W)

root.mainloop()

وLABEL1 هو داخل frame1، وLABEL2 هو داخل frame2. LABEL1 يخرج أضيق من LABEL2، كما يراها خلفية بيضاء. لكن frame1 وframe2 هي نفس العرض، كما يراها حدودها. اعتقد ان الالتصاق توسيع LABEL1 أن يكون عرض نفس الأم.

إذا وضعت LABEL1 وLABEL2 داخل نفس الإطار، ثم LABEL1 يخرج واسعة كما LABEL2:

frame1 = Frame(root, border=4, relief=RIDGE)
frame1.grid(sticky=E+W)

label1 = Label(frame1, text='short', background='white')
label1.grid(sticky=E+W)
label2 = Label(frame1, text='quite a bit longer', background='white')
label2.grid(sticky=E+W)

وماذا أنا في عداد المفقودين؟ في واقع الحياة، ولدي بعض الإطارات المتداخلة مكدسة التي لم يتم توسيع كما أود.

وشكرا، دان

هل كانت مفيدة؟

المحلول

والصفوف والأعمدة لديهم "الوزن" الذي يصف كيف تنمو أو تتقلص لملء مساحة إضافية في الماجستير. افتراضيا صف أو عمود له وزن من الصفر، مما يعني أنك قد قال التسمية لملء العمود ولكن لم تكن قد قال العمود إلى ملء الإطار الرئيسي.

لإصلاح هذا، وإعطاء عمود الوزن. فإن أي عدد صحيح موجب تفعل في هذه الحالة المحددة:

frame1.columnconfigure(0, weight=1)
frame2.columnconfigure(0, weight=1)

لمزيد من المعلومات حول grid، مع أمثلة في روبي، تى سى ال، بيرل وبايثون، انظر الشبكة صفحة على tkdocs.com

نصائح أخرى

وهذا الحل مع الأعمدة والإطارات يعمل، ولكن للحصول على بطاقات لديهم نفس العرض في الشبكة، لا تحتاج الأطر أرفق. انظر أدناه مثال

from tkinter import *

root = Tk()

label1 = Label(root, text='short', bg='light green', relief=RIDGE)
label1.grid(sticky=E+W)
label2 = Label(root, text='quite a bit longer', bg='light green', relief=RIDGE)
label2.grid(sticky=E+W)

root.mainloop()
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top