Seite 1 von 1

Rand um angeklickten Button entfernen

Verfasst: Mittwoch 10. Oktober 2012, 23:24
von Kapf
Hallo,

ich habe es mittels 'borderwidth="0"' schon geschafft den normalen Rahmen zu entfernen. Jedoch möchte ich auch folgendes vermeiden:
A button's relief is changed to sunken whenever mouse button 1 is pressed over the button, and the relief is restored to its original value when button 1 is later released.
Der Button sollte also dauerhaft "raised" sein. Gibt es da eine Möglichkeit?

Danke im Voraus!
Kapf

Re: Rand um angeklickten Button entfernen

Verfasst: Donnerstag 11. Oktober 2012, 08:51
von wuf
Hi Kapf
Kapf hat geschrieben:Der Button sollte also dauerhaft "raised" sein. Gibt es da eine Möglichkeit?
Ja gibt es. Hierfür würde ich ein Label-Widget einsetzen:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys
import Tkinter as tk
from functools import partial

script_name = sys.argv[0]

MAIN_WIN_XPOS   = 10
MAIN_WIN_YPOS   = 10
MAIN_WIN_WIDTH  = 200
MAIN_WIN_HEIGHT = 100

def button_callback(state, event):
    
    if state:
        event.widget.config(fg='red')
    else:
        event.widget.config(fg='black')

def main():    
    app_win = tk.Tk()

    app_win.geometry("%dx%d+%d+%d" % (MAIN_WIN_WIDTH, MAIN_WIN_HEIGHT,
        MAIN_WIN_XPOS, MAIN_WIN_YPOS))
      
    app_win.title(script_name)

    label_button = tk.Label(app_win, text='Label-Button', relief='raised',
        cursor='hand1', font=('Helveticat', 20))
    label_button.pack(expand='yes')
    label_button.bind('<Button-1>', partial(button_callback, True))
    label_button.bind('<ButtonRelease-1>', partial(button_callback, False))

    app_win.mainloop()
    
if __name__ == '__main__':
    main()
Gruß wuf :wink:

Re: Rand um angeklickten Button entfernen

Verfasst: Donnerstag 11. Oktober 2012, 23:19
von Kapf
Vielen Dank! Hast mir sehr weiter geholfen!