Python scrollbar automatisch immer ganz unten

Gast #4505809
Hi,

wie kann ich in Python und tkinter das Textfeld so einstellen, dass er 
immer ganz unten in der letzten Zeile ist?

Ich habe im laufenden Programm immer wieder mal Ausgaben die ich im 
Textfeld anzeigen lassen möchte. Das mache ich so.
1
myText.insert(END, 'Text der ausgegeben wird')


Als Beispiel:
1
from tkinter import *
2
import tkinter as tk
3

4
fenster = tk.Tk()
5

6
myText = Text(fenster, height=20, width=50)
7
scroll = Scrollbar(fenster, command=myText.yview)
8
myText.configure(yscrollcommand=scroll.set)
9
myText.tag_configure('bold_italics', font=('Arial', 12, 'bold', 'italic'))
10
myText.tag_configure('big', font=('Verdana', 10, 'bold'))
11
myText.tag_configure('color', foreground='#8B0000', font=('Arial', 12, 'bold'))
12
myText.pack(side=LEFT)
13
scroll.pack(side=RIGHT, fill=Y)
14

15

16
myText.insert(END, 'Textzeile 1 \n\n', 'color')  
17
myText.insert(END, 'Textzeile 2 \n\n', 'color')  
18
myText.insert(END, 'Textzeile 3 \n\n', 'color')  
19
myText.insert(END, 'Textzeile 4 \n\n', 'color')  
20
myText.insert(END, 'Textzeile 5 \n\n', 'color')  
21
myText.insert(END, 'Textzeile 6 \n\n', 'color')  
22
myText.insert(END, 'Textzeile 7 \n\n', 'color')  
23
myText.insert(END, 'Textzeile 8 \n\n', 'color')  
24
myText.insert(END, 'Textzeile 9 \n\n', 'color')  
25
myText.insert(END, 'Textzeile 10 \n\n', 'color')  
26
myText.insert(END, 'Textzeile 11 \n\n', 'color')  
27
myText.insert(END, 'Textzeile 12 \n\n', 'color') 
28

29
    
30
    
31
    
32
  
33
fenster.mainloop()
Gast
Höre Stephan, ich kenn mich weder mit Python aus, noch weiss ich, unter 
welchem OS Du das nutzt, aber unter Windows habe ich das so gemacht:
1
@SendMessage(textfenster%,$00B1,-1,-1) 'Cursor auf Ende setzensetzen oder markieren
2
@SendMessage(textfenster%,$00C2,0,@ADDR(text$)) 'Text einfügen/ersetzen
3
@SendMessage(textfenster%,$00B6,0,1) 'Zeile Scrollen

Vielleicht hilft's ja...

Gruss Chregu

Edit: Tippfehler beseitigt
Gast
Clemens L. schrieb:
> "Immer" geht nicht.

Bringt ja auch irgendwie nichts. Was will ich mit einem Scrollbar, der 
immer an einer bestimmten Stelle festgenagelt ist? Quasi ein Scrollbar, 
der nicht scrollbar ist.
Eine gänge Implementation ist, dass der Scrollbar quasi unten kleben 
bleibt. Man kann immer frei scrollen, und die Position bleibt auch da 
stehen, wo man hingescrollt hat, außer, wenn der Scrollbar ganz unten 
ist. Dann wird beim Anhängen von Text automatisch weitegescrollt.
Ich kenne mich mit Tkinter nicht aus, aber vom Prinzip her würde ich vor 
dem Anhängen des Texts prüfen, ob der Scrollbar ganz am Ende steht. Wenn 
ja, dann wird er nach dem Einfügen auch wieder ganz ans Ende geschoben, 
sonst nicht.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.