Tkinter Cursors ( Mauszeiger)

Code-Stücke können hier veröffentlicht werden.
pyStyler
User
Beiträge: 311
Registriert: Montag 12. Juni 2006, 14:24

Samstag 5. August 2006, 08:43

Hallo,
ich habe mal die Tkinter Mauszeiger zusammengefasst. :D

Code: Alles auswählen

#! /usr/bin/python
from Tkinter import *
hp=Tk()
button= [
	Button(hp, text='X_crusor', cursor='X_cursor'),
	Button(hp, text='based_arrow_down', cursor='based_arrow_down'),
	Button(hp, text='based_arrow_up', cursor='based_arrow_up'),
	Button(hp, text='boat', cursor='boat'),
	Button(hp, text='bogosity', cursor='bogosity'),
	Button(hp, text='bottom_left_corner', cursor='bottom_left_corner'),
	Button(hp, text='bottom_right_corner', cursor='bottom_right_corner'),
	Button(hp, text='bottom_side', cursor='bottom_side'),
	Button(hp, text='bottom_tee', cursor='bottom_tee'),
	Button(hp, text='box_spiral', cursor='box_spiral'),
	Button(hp, text='center_ptr', cursor='center_ptr'),	
	Button(hp, text='circle', cursor='circle'),
	Button(hp, text='clock', cursor='clock'), 	
	Button(hp, text='coffee_mug', cursor='coffee_mug'),
	Button(hp, text='cross', cursor='cross'),	
	Button(hp, text='dot', cursor='dot'),	
	Button(hp, text='dotbox', cursor='dotbox'),	
	Button(hp, text='double_arrow', cursor='double_arrow'),
	Button(hp, text='draft_larg', cursor='draft_large'),	
	Button(hp, text='draft_small', cursor='draft_small'),
	Button(hp, text='draped_box', cursor='draped_box'),	
	Button(hp, text='exchange', cursor='exchange'),
	Button(hp, text='fleur', cursor='fleur'),
	Button(hp, text='gobbler', cursor='gobbler'),
	Button(hp, text='gumby', cursor='gumby'),
	Button(hp, text='hand1', cursor='hand1'),
	Button(hp, text='hand2', cursor='hand2'),	
	Button(hp, text='heart', cursor='heart'),
	Button(hp, text='icon', cursor='icon'),	
	Button(hp, text='iron_corss', cursor='iron_cross'),
	Button(hp, text='left_ptr', cursor='left_ptr'),
	Button(hp, text='left_side', cursor='left_side'),
	Button(hp, text='left_tee', cursor='left_tee'),
	Button(hp, text='leftbutton', cursor='leftbutton'),
	Button(hp, text='ll_angle', cursor='ll_angle'),
	Button(hp, text='lr_angle', cursor='lr_angle'),
	Button(hp, text='man', cursor='man'),
	Button(hp, text='middlebutton', cursor='middlebutton'),
	Button(hp, text='mouse', cursor='mouse'),
	Button(hp, text='pencil', cursor='pencil'),
	Button(hp, text='pirate', cursor='pirate'),
	Button(hp, text='plus', cursor='plus'),
	Button(hp, text='question_arrow', cursor='question_arrow'),
	Button(hp, text='right_prt', cursor='right_ptr'),	
	Button(hp, text='right_side', cursor='right_side'),
	Button(hp, text='right_tee', cursor='right_tee'),
	Button(hp, text='rightbutton', cursor='rightbutton'),
	Button(hp, text='rtl_logo', cursor='rtl_logo'),
	Button(hp, text='sailboat', cursor='sailboat'),
	Button(hp, text='sb_down_arrow', cursor='sb_down_arrow'),
	Button(hp, text='sb_v_double_arrow', cursor='sb_v_double_arrow'),
	Button(hp, text='sb_h_double_arrow', cursor='sb_h_double_arrow'),
	Button(hp, text='sb_left_arrow', cursor='sb_left_arrow'),
	Button(hp, text='sb_right_arrow', cursor='sb_right_arrow'),
	Button(hp, text='shuttle', cursor='shuttle'),
	Button(hp, text='sizing', cursor='sizing'),
	Button(hp, text='sb_up_arrow', cursor='sb_up_arrow'),
	Button(hp, text='spider', cursor='spider'),
	Button(hp, text='spraycan', cursor='spraycan'),
	Button(hp, text='star', cursor='star'),
	Button(hp, text='target', cursor='target'),
	Button(hp, text='tcross', cursor='tcross'),
	Button(hp, text='top_left_arrow', cursor='top_left_arrow'),
	Button(hp, text='top_left_corner', cursor='top_left_corner'),
	Button(hp, text='top_right_corner', cursor='top_right_corner'),
	Button(hp, text='top_side', cursor='top_side'),
	Button(hp, text='top_tee', cursor='top_tee'),
	Button(hp, text='trek', cursor='trek'),
	Button(hp, text='ul_angle', cursor='ul_angle'),
	Button(hp, text='watch', cursor='watch'),
	Button(hp, text='xterm', cursor='xterm'),
	]
	
ro =1
co =0
for x in button:
	x.grid(row=ro, column=co,
	padx=2, pady=2,
	ipady=10, ipadx=10,sticky=EW)
	co +=1
	if co % 5==0:
		co =0
		ro +=1
			
hp.mainloop()
Wie man die Mauszeiger in seinem Programm einbauen kann, kann man leicht dem Codestück oben entnehmen.


Gruss
pyStyler :)
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Dienstag 12. September 2006, 18:54

hi pyStyler!
Das is ja mal cool! Sind das echt alle? -Ich hab auch so ne liste, die is aber wesentlich kürzer. naja...ich find's toll!
Ach, nur so: Wie lang hast du dafür gebraucht?
Gruß jj :lol:
pyStyler
User
Beiträge: 311
Registriert: Montag 12. Juni 2006, 14:24

Dienstag 12. September 2006, 19:29

hi,
schlangenbeschwörer hat geschrieben: hi pyStyler!
Das is ja mal cool!
danke
schlangenbeschwörer hat geschrieben: Sind das echt alle?
das ist alles was ich hab abschreiben können. 8)
schlangenbeschwörer hat geschrieben: Ich hab auch so ne liste, die is aber wesentlich kürzer.
sind denn die in deiner Liste aufgeführten Cursors auch in den obigen Script dabei?
schlangenbeschwörer hat geschrieben: Ach, nur so: Wie lang hast du dafür gebraucht?
haha sehr witzig. :D
So gute 20 min sinds bestimmt gewesen

Gruss
pyStyler
:)
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Dienstag 12. September 2006, 19:50

Wie wäre es mit einem Eintrag ins [wiki=Tipps und Tricks]Wiki[/wiki]?
TUFKAB – the user formerly known as blackbird
pyStyler
User
Beiträge: 311
Registriert: Montag 12. Juni 2006, 14:24

Dienstag 12. September 2006, 20:04

hi,
blackbird hat geschrieben:Wie wäre es mit einem Eintrag ins [wiki=Tipps und Tricks]Wiki[/wiki]?
sorry für mein Unwissen was wiki angeht, aber unter welcher Unterrubrik
soll ich das Script eintragen ?

Ansonsten kannst du gerne den Eintrag für mich machen bitte. :D

Gruss
pyStyler
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 12. September 2006, 20:59

Man könnte das Skript sicher mit einer for-Schleife und einer Liste kürzer lösen, daher würde ich es erst kürzen und dann Wikifizieren. Ich könnte es schon kürzen, nur testen müsste es jemand anders, da ich kein Tkinter habe und es auch nciht installieren werde/kann.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
pyStyler
User
Beiträge: 311
Registriert: Montag 12. Juni 2006, 14:24

Dienstag 12. September 2006, 21:06

Hi,
Leonidas hat geschrieben:Man könnte das Skript sicher mit einer for-Schleife und einer Liste kürzer lösen, daher würde ich es erst kürzen und dann Wikifizieren. Ich könnte es schon kürzen, nur testen müsste es jemand anders, da ich kein Tkinter habe und es auch nciht installieren werde/kann.
kein Tkinter Installiert? :shock:
Nagut dann sorge du dafür das es gekuerzt wird und ich werde es dann testen.
Und den Eintrag machst du dann ?
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 12. September 2006, 21:15

pyStyler hat geschrieben:kein Tkinter Installiert? :shock:
Nein. So bleibe ich von der mittelalterlichen Tk-Bibliothek verschont.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 12. September 2006, 21:34

Gut, ich habe meinen Codedegenerator laufen lassen und raus kam dann das:

Code: Alles auswählen

#!/usr/bin/env python
# -*- encoding: latin-1 -*-
import Tkinter as tk

cursors = [
    'X_cursor', 'based_arrow_down', 'based_arrow_up', 'boat',
    'bogosity', 'bottom_left_corner', 'bottom_right_corner',
    'bottom_side', 'bottom_tee', 'box_spiral', 'center_ptr',
    'circle', 'clock','coffee_mug', 'cross', 'dot','dotbox'
    'double_arrow', 'draft_large','draft_small', 'draped_box',
    'exchange', 'fleur', 'gobbler', 'gumby', 'hand1', 'hand2',
    'heart', 'icon', 'iron_cross', 'left_ptr', 'left_side',
    'left_tee', 'leftbutton', 'll_angle', 'lr_angle',
    'man', 'middlebutton', 'mouse', 'pencil', 'pirate',
    'plus', 'question_arrow', 'right_ptr', 'right_side',
    'right_tee', 'rightbutton', 'rtl_logo', 'sailboat',
    'sb_down_arrow', 'sb_v_double_arrow',
    'sb_h_double_arrow', 'sb_left_arrow',
    'sb_right_arrow', 'shuttle', 'sizing',
    'sb_up_arrow', 'spider', 'spraycan', 'star', 'target',
    'tcross', 'top_left_arrow',
    'top_left_corner', 'top_right_corner',
    'top_side', 'top_tee', 'trek', 'ul_angle', 'watch',
    'xterm'
]

def main():
    root = Tk()
    buttons = []
    for cursor in cursors:
        btn = tk.Button(root, text=cursor, cursor=cursor)
        buttons.append(btn)
    
    row = 1
    column = 0
    for widget in buttons:
        widget.grid(row=row, column=column, padx=2, pady=2, 
            ipady=10, ipadx=10,sticky=tk.EW)
        column += 1
        if column % 5 == 0:
            column = 0
            row += 1
    
    root.mainloop()

if __name__ == '__main__':
    main()
Nebenbei hat dies jetzt auch eine universelle Shebang, eine Encoding-Angabe, eine separate Anzeige-Funktion, einen Import-Hook und verständlichere Variablennamen. Sollte auch PEP8 konform sein.

Den Code testen darf jemand, der Tkinter installiert hat, testen. Der Wikieintrag sollte zumindest den Tag Codesnippets tragen, damit er auch wieder aufgefunden werden kann.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Dienstag 12. September 2006, 21:55

Hi!

Ich hab mal ein paar kleinere Fehler in Leonida's Code ausgebessert, main gekürzt und die Buttons durch Labels ersetzt (platzsparender ;)).

Code: Alles auswählen

#!/usr/bin/env python
# -*- encoding: latin-1 -*-
import Tkinter as tk

cursors = [
    'X_cursor', 'based_arrow_down', 'based_arrow_up', 'boat',
    'bogosity', 'bottom_left_corner', 'bottom_right_corner',
    'bottom_side', 'bottom_tee', 'box_spiral', 'center_ptr',
    'circle', 'clock','coffee_mug', 'cross', 'dot','dotbox',
    'double_arrow', 'draft_large','draft_small', 'draped_box',
    'exchange', 'fleur', 'gobbler', 'gumby', 'hand1', 'hand2',
    'heart', 'icon', 'iron_cross', 'left_ptr', 'left_side',
    'left_tee', 'leftbutton', 'll_angle', 'lr_angle',
    'man', 'middlebutton', 'mouse', 'pencil', 'pirate',
    'plus', 'question_arrow', 'right_ptr', 'right_side',
    'right_tee', 'rightbutton', 'rtl_logo', 'sailboat',
    'sb_down_arrow', 'sb_v_double_arrow',
    'sb_h_double_arrow', 'sb_left_arrow',
    'sb_right_arrow', 'shuttle', 'sizing',
    'sb_up_arrow', 'spider', 'spraycan', 'star', 'target',
    'tcross', 'top_left_arrow',
    'top_left_corner', 'top_right_corner',
    'top_side', 'top_tee', 'trek', 'ul_angle', 'watch',
    'xterm'
]

def main():
    root = tk.Tk()
    root.title("Tk cursors")
    row = 1
    column = 0
    for cursor in cursors:
        tk.Label(
            root, text=cursor, cursor=cursor, relief="groove"
            ).grid(row=row, column=column, ipadx=5, ipady=5, sticky=tk.EW)
        column += 1
        if column % 5 == 0:
            column = 0
            row += 1

    root.mainloop()

if __name__ == '__main__':
    main()
Gruß, mawe
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Mittwoch 13. September 2006, 12:33

Hoi, o.T.:
Leonidas hat geschrieben:Gut, ich habe meinen Codedegenerator laufen lassen und raus kam dann das:
Du hast einen Codegenerator für Python? Ist der irgendwo öffentlich und dokumentiert? (Würde nämlich gerne mal ein paar ausprobieren.)
Gruß,
Christian
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mittwoch 13. September 2006, 13:34

CM hat geschrieben:
Leonidas hat geschrieben:Gut, ich habe meinen Codedegenerator laufen lassen und raus kam dann das:
Du hast einen Codegenerator für Python?
Nein, einen Codedegenerator: es degeneriert aus viel Code wenig Code. Aber es war eingentlich ein Witz, der Codedegenerator war ich selbst ;)
My god, it's full of CARs! | Leonidasvoice vs Modvoice
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Mittwoch 13. September 2006, 15:02

Hmpf :oops: wer lesen kann ...
BlackJack

Mittwoch 13. September 2006, 16:26

Leonidas hat geschrieben:Nein, einen Codedegenerator: es degeneriert aus viel Code wenig Code. Aber es war eingentlich ein Witz, der Codedegenerator war ich selbst ;)
Das beantwortet noch nicht die zweite Frage. Also: Bist Du irgendwo öffentlich und dokumentiert? ;-)
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Mittwoch 13. September 2006, 17:18

pyStyler hat geschrieben: sind denn die in deiner Liste aufgeführten Cursors auch in den obigen Script dabei?
Hi!
Ich hab noch ne andere liste gefunden, an die ich zunächst nicht gedacht hatte, und die is ähnlich lang, aber ein paar waren nicht drin, dafür 4 andere, die oben noch nicht erwähnt sind (glaub ich jedenfalls):

Code: Alles auswählen

['cross_reverse','crosshair','diamond_cross','umbrella']
Gruß jj
Antworten