Seite 1 von 1

[Tkinter/tkk] Separator mit .place() GeometryMgr

Verfasst: Donnerstag 12. Juli 2012, 20:27
von graphicsH
Hi,

ich arbeite gerade an einem Projekt mit etwas komplexerem GUI,und möchte daher einen Separator einbauen...

Geometrie-Manager: place
Module: ttk

Code: Alles auswählen

from Tkinter import *
import ttk
root = Tk()
s = tkk.Separator(root,orient=HORIZONTAL)
s.place(y=30)
root.mainloop()
Das Problem:
Der Separator ist nur einige mm lang!

Alle Beispiele im Internet vewrwenden den .grid Geometrie Manager,daher wollte ich fragen,ob der .place GM überhaupt einen Separator (korrekt) darstellen kann...
Wenn ja,wie ich die Länge einstellen kann... (habe bereits width/length/u.ä. ausprobiert...)

Re: [Tkinter/tkk] Separator mit .place() GeometryMgr

Verfasst: Donnerstag 12. Juli 2012, 21:19
von BlackJack
@graphicsH: Warum verwendest Du `place()`?

Re: [Tkinter/tkk] Separator mit .place() GeometryMgr

Verfasst: Donnerstag 12. Juli 2012, 21:57
von graphicsH
weil es zu komplex für pack,und zu genau (positionen,etc...) für grid ist...

Re: [Tkinter/tkk] Separator mit .place() GeometryMgr

Verfasst: Donnerstag 12. Juli 2012, 23:16
von deets
Glaube ich nicht. Pack & Grid sind immer besser als place. Man muss sich ein bisschen mehr Muehe geben, aber erhaelt dafuer adaptive layouts.

In HTML baut auch keiner mehr pixel-GIFs + Tabellenlayouts mit harten Koordinaten...

Re: [Tkinter/tkk] Separator mit .place() GeometryMgr

Verfasst: Donnerstag 12. Juli 2012, 23:27
von BlackJack
@graphicsH: Was für eine Ausnahme-GUI hast Du denn da? Das muss ja was ganz exotisches sein.

Re: [Tkinter/tkk] Separator mit .place() GeometryMgr

Verfasst: Freitag 13. Juli 2012, 12:09
von graphicsH
@BlackJack
das Problem ist,dass es sehr viele widgets enthält,aber möglichst klein bleiben soll. und mit place kann ich viel genauer (und daher platzsparender) positionieren.

@all
Könnte mir auch jemand meine Frage beantworten,anstatt meine Gründe zu hinterfragen?

Re: [Tkinter/tkk] Separator mit .place() GeometryMgr

Verfasst: Freitag 13. Juli 2012, 13:04
von deets
graphicsH hat geschrieben: @all
Könnte mir auch jemand meine Frage beantworten,anstatt meine Gründe zu hinterfragen?
Ach, bei jemandem der so offensichtlich besser weiss wie's geht - da wagt man ja gar nicht zu antworten, man macht sich wahrscheinlich eh nur zum Lappel...

Re: [Tkinter/tkk] Separator mit .place() GeometryMgr

Verfasst: Freitag 13. Juli 2012, 13:12
von graphicsH
fuck off

genau deßhalb hab ich das forum vor nem jahr verlassen,und werds auch jetzt wieder machen...
Anstatt hilfreiche Antworten wie in anderen Foren,bekommt man nur
Dumme Kommentare:
deets hat geschrieben:
graphicsH hat geschrieben: @all
Könnte mir auch jemand meine Frage beantworten,anstatt meine Gründe zu hinterfragen?
Ach, bei jemandem der so offensichtlich besser weiss wie's geht - da wagt man ja gar nicht zu antworten, man macht sich wahrscheinlich eh nur zum Lappel...
oder unnötige Gegenfragen:
BlackJack hat geschrieben:@graphicsH: Warum verwendest Du `place()`?
Und ein drittes mal werd' ich's mir nicht antun,in diesem Forum Hilfe zu suchen...



P.S.: wenn mögliche möge einer der admins meinen account löschen,ich finde den button zum account-löschen nicht unter den einstellungen. sollte mal jemand etwas übersichtlicher machn...

Re: [Tkinter/tkk] Separator mit .place() GeometryMgr

Verfasst: Freitag 13. Juli 2012, 13:45
von BlackJack
@graphicsH: Meine Gegenfrage war nicht unnötig. Das ich vorher erfahre *warum* jemand ein Problem hat, welches er vielleicht gar nicht haben müsste, ist für mich nötig um abzuschätzen ob es a) einen besseren Lösungsweg gibt, und dann b) zu entscheiden ob *ich* in den eingeschlagenen Lösungsweg Zeit investieren möchte. Und bei der Verwendung von `place()` beschäftige ich mich nur mit dem Problem wenn ich mir sicher bin, dass das kein künstliches Problem ist, welches man mit anderen Mitteln besser lösen könnte. Wovon Du mich bisher nicht überzeugen konntest.

Re: [Tkinter/tkk] Separator mit .place() GeometryMgr

Verfasst: Freitag 13. Juli 2012, 14:39
von webspider
Ist lange her dass ich meinen Account in einem Forum eigenhändig löschen konnte. Und Stolz ist bekanntermaßen eine der Todsünden. Warum also wegen einer solchen Kleinigkeit gleich in die Luft gehen, hat fast schon Troll-Charakter.

Re: [Tkinter/tkk] Separator mit .place() GeometryMgr

Verfasst: Freitag 13. Juli 2012, 15:29
von wuf
Hi graphicsH

Please don't f...ck us all! We still love you!
Nicht gleich den Pickel ins Korn werfen! Zurück zu deinem 'Separator' Problem. Ich brauchte für meine Anwendungen hauptsächlich den pack-Layouter und bin damit gut klar gekommen. Hier eine simple Code-Sequenz die den Separator einbindet. Dies unter ausschliesslicher Verwendung des pack-Layouters:

Code: Alles auswählen

import Tkinter as tk
import ttk

root = tk.Tk()
root.geometry('300x100')
root.title('Separator')

main_frame = tk.Frame(root)
main_frame.pack(fill='x', expand=True, padx=10, pady=10)

button = ttk.Button(main_frame, text='Starten')
button.pack(pady=5)

separator = ttk.Separator(main_frame,orient='horizontal')
separator.pack(fill='x', expand=True, pady=0, padx=0)

button = ttk.Button(main_frame, text='Beenden')
button.pack(pady=5)

root.mainloop()
Wenn du für deine Anwendung noch mehr Unterstützung benötigst müsstest du uns natürlich auch mehr Code präsentieren.

Gruß wuf :wink:

Re: [Tkinter/tkk] Separator mit .place() GeometryMgr

Verfasst: Freitag 13. Juli 2012, 16:02
von graphicsH
@wuf
erstmal danke für die erste 'brauchbare' antwort :)

Nur wie gesagt,aus Platzgründen verwende ich place.
In meinen Testversuchit pack und grid funktioniert der Separator auch,nur bei place nicht...

Da es aber anscheinend keine Lösung für das Problem gibrt (auch im restl. Internet) verwendeich einfach ein Frame mit minimaler Höhe,wodurch es auch als eparator hinhalten kann. Das Problem ist somit gelöst...

Re: [Tkinter/tkk] Separator mit .place() GeometryMgr

Verfasst: Freitag 13. Juli 2012, 16:14
von yipyip
Das funktioniert doch mit 'place':

Code: Alles auswählen

import Tkinter as tk
import ttk

root = tk.Tk()

sep = ttk.Separator(root,orient=tk.HORIZONTAL)
sep.place(y=30, width=100)

seph = ttk.Separator(root, orient=tk.HORIZONTAL)
lab = ttk.Label(text='Some Widget')
lab.place(relx=0.5, rely=0.4, anchor=tk.CENTER)
seph.place(in_=lab, rely=1, relwidth=1)

root.mainloop()
Siehe auch: http://effbot.org/tkinterbook/place.htm

Re: [Tkinter/tkk] Separator mit .place() GeometryMgr

Verfasst: Freitag 17. August 2012, 12:19
von graphicsH
yipyip hat geschrieben:Das funktioniert doch mit 'place':

Code: Alles auswählen

import Tkinter as tk
import ttk

root = tk.Tk()

sep = ttk.Separator(root,orient=tk.HORIZONTAL)
sep.place(y=30, width=100)

seph = ttk.Separator(root, orient=tk.HORIZONTAL)
lab = ttk.Label(text='Some Widget')
lab.place(relx=0.5, rely=0.4, anchor=tk.CENTER)
seph.place(in_=lab, rely=1, relwidth=1)

root.mainloop()
Siehe auch: http://effbot.org/tkinterbook/place.htm
Ich probiers mal,nur hab ich bei 'width' immer eine Fehlermeldung bekommen...