Urobiť snímok v Metadata obsahovať miestne grid systémy?

0

Otázka

Veľmi jednoduchá otázka, že nemôžem nájsť odpoveď na Zásobník Exchange. (Iba tento zavádzajúci závit: Python3 Metadata: Sietí v Rámci Siete? Rámy Popri Iných Rámy? ktorá bohužiaľ nie je odpoveď na otázku).

Som pomocou podmnožiny s Python na pokus program s GUI. Bohužiaľ, som úplne nechápu sústavy.

Mal som dojem, že každý rám obsahuje vlastnú sústavy, 0,0, kde je v ľavom hornom rohu, ktoré rám.

Vytvoril som tento kód:

root = Tk()

main_frame = Frame(root, width='1520', height='1080', bg='#a1a1a1').grid(row=0, column=1)
side_frame = Frame(root, width='400', height='1080', bg='#757575').grid(row=0, column=0)

header_label = Label(main_frame, text='Heading', font=('Agency', 48), bg='#a1a1a1', fg='#ffffff').grid(row=0, column=0)

A dúfal, že, pretože štítok je nastavený na (0,0) v hlavnom ráme, že štítok by sa zobrazujú v hlavnom rámci. Avšak, to nebolo. Zistil som, že trochu divné, a znepokojuje. Nižšie je obrázok, čo je namiesto deje - hlavičke štítku je uvedená v "side_frame'.

Chybné usporiadanie obrázok

Mohol by niekto prosím, vysvetlite mi, ako grid systém funguje? Nebol som naozaj problémy, kým som sa snažil pridať posúvač na main_frame - potom som si uvedomil, že tam je nejaký vážny nešikovnosti vložené do podmnožiny a chcel by som, aby správne pochopili.

Vďaka!

layout optimization python tkinter
2021-11-21 20:36:50
1

Najlepšiu odpoveď

1

Problém je, že ste nastavenie main_frame a side_frame na Nonetak pominuteľné, že ako rodič pre akékoľvek iné widget sa uistite, že widget dieťa koreňovej widget.

Je to preto, že v jazyku python x=y().z() nastaví hodnoty x na z(). Preto, keď sa main_frame = Frame(...).grid(...) sady main_frame k výsledkom .grid(...)a grid vždy sa vracia None.

Mali by ste samostatné widget tvorby od widget rozloženie, a to je jeden z dôvodov, prečo. Druhý veľký dôvod je, že je kód ľahšie čítať a vizualizovať.

main_frame = Frame(root, width='1520', height='1080', bg='#a1a1a1')
side_frame = Frame(root, width='400', height='1080', bg='#757575')

main_frame.grid(row=0, column=1)
side_frame.grid(row=0, column=0)
2021-11-21 21:25:09

Ďakujeme! Nemám plne pochopiť špecifiká ako je to odlišné od ich rozdeľujú, ale si určite vyriešiť môj problém. Teraz čakať na ďalší problém vzniká... :D
Jordan Regan

V iných jazykoch

Táto stránka je v iných jazykoch

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................