2016-12-25 5 views

Antwort

1

pack ist in diesem Fall nicht der ideale Geometrie-Manager. Sie verwenden pack in einem Rahmen, in dem Sie nur Kinder nacheinander kleben möchten. Es gibt auch einen Platzmanager, für den ich noch keine "natürliche" Verwendung sehen kann.

Verwenden Sie in diesem Fall die grid manager. Dies ist weniger einfach als Pack, aber hat die Flexibilität, die Sie wollen. Sobald Sie herausgefunden haben, wie viele Zeilen und Spalten Ihr Raster haben wird, ist die Platzierung einfach mit .grid(column=lastcol,row=lastrow). Terry Jan Reedy schlug auch vor, viel zu große Zahlen zu verwenden, da leere Spalten/Zeilen nicht angezeigt werden, aber ich möchte pedantisch sein, damit ich weiß, wie mein Raster genau aussieht.

+0

Ich bin damit einverstanden Raster mit verwenden. 'Unten rechts' bedeutet letzte Spalte, nicht zuerst ;-). Da leere Zeilen und Spalten nicht angezeigt werden, funktionieren auch Zeilen und Spalten, die zu groß sind. Zum Beispiel sollte '.grid (column = 99, row = 99)' (oder 'row = 98' für die obige Schaltfläche) normalerweise funktionieren. –

2

Die Antwort auf "wie lege ich etwas in die untere rechte Ecke?" kann nicht angemessen aus dem Zusammenhang heraus beantwortet werden. Es hängt wirklich davon ab, was sonst noch im Fenster ist. Sie können place verwenden, um ein Widget ganz einfach an einer beliebigen Stelle zu platzieren, aber es ist selten die richtige Lösung.

Grid ist relativ leicht zu verstehen, wenn man wirklich in einem Raster wollen die Dinge auslegen (zB: a. Rechte Spalte mit ein paar Zeilen auf dem Boden und ein oder mehrere auf

packen Sie können auch einen Rahmen für die linke und rechte Seite erstellen und dann die Schaltflächen am unteren Rand des rechten Rahmens packen.

Es gibt auch die Möglichkeit zu verwenden mehr als eins zusammen mit zusätzlichen Frames.Sie könnten beispielsweise Raster verwenden, um das Hauptwidget in einer Kopfzeile, einem Hauptbereich und einer Fußzeile zu platzieren, und dann mithilfe von pack Schaltflächen in der Fußzeile anordnen.

Wenn Sie im wahrsten Sinne des Wortes nur zwei Tasten haben möchten und diese in der rechten unteren Ecke gestapelt werden sollen, empfehle ich die Verwendung von grid. Zusätzlich dazu, dass Sie sie in einer Reihe auf der Unterseite platzieren, müssen Sie sicherstellen, dass es mindestens eine weitere Zeile und eine weitere Spalte gibt, die zusätzlichen Platz einnimmt. Die Zeilen und Spalten können leer sein, aber sie müssen so konfiguriert sein, dass sie ein "Gewicht" haben.

Zum Beispiel:

frame1.grid_rowconfigure(0, weight=1) 
frame1.grid_columnconfigure(0, weight=1) 

# give the empty row 0 and column 0 a non-zero weight 
# so that grid gives all extra space to those columns. 

b2_1.grid(row=1, column=1) 
b2_2.grid(row=2, column=1) 
Verwandte Themen