Hi Michael, On Thu, 12 Jul 2012 19:13:36 +0200 Michael Lange <klappn...@web.de> wrote: > Hi, > > Thus spoketh Mark Summerfield <l...@qtrac.plus.com> > unto us on Thu, 12 Jul 2012 11:38:37 +0100: > > > Hi, > > > > I want to create a toggle button, i.e., a button that when clicked goes > > down (if it is up) and goes up (if it is down). > > > > One easy way to achieve this is to set the button's style to > > "Toolbutton" (see self.toggle2). But unfortunately, that gets rid of > > the button's relief so it looks out of place amongst other non-toggling > > buttons. > > > > I solved if for Linux using a custom style (see self.toggle3). But this > > doesn't work on Windows and I can't figure out how to solve it. > > > > Can anyone suggest a solution? > > Maybe you could use a Checkbutton with indicatoron=False, as in: > > import tkinter > > root = tkinter.Tk() > > def toggle(button, variable): > if variable.get(): > button.config(text='On') > else: > button.config(text='Off') > > v1 = tkinter.BooleanVar() > v1.set(False) > b1 = tkinter.Checkbutton(root, text='Off', variable=v1, > indicatoron=False, selectcolor='', command=lambda : toggle(b1, v1)) > b1.pack(padx=50, pady=50) > > root.mainloop() > > The button in this example looks tiny compared to a Button(), but this > could probably easily be fixed. Unfortunately there does not seem to be a > indicatoron Option for the ttk.Checkbutton though, and I am not sure how > good or bad this will look on windows.
Unfortunately it looks bad on Windows because using tkinter.Checkbutton rather than tkinter.ttk.Checkbutton means you get a button that isn't styled so it looks completely different from the others. I'll probably use "on" and "off" images on Windows. Thanks! -- Mark Summerfield, Qtrac Ltd, www.qtrac.eu C++, Python, Qt, PyQt - training and consultancy "Advanced Qt Programming" - ISBN 0321635906 http://www.qtrac.eu/aqpbook.html _______________________________________________ Tkinter-discuss mailing list Tkinter-discuss@python.org http://mail.python.org/mailman/listinfo/tkinter-discuss