如何创建tkinter切换按钮?

2024-05-19 11:04:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在使用Python2.7中的Tkinter开发一个文本编辑器。 我正在尝试实现的一个特性是夜间模式,用户可以在黑色背景和浅色背景之间切换,只需单击切换按钮即可从浅色切换到深色。

from Tkinter import *

from tkSimpleDialog import askstring

from tkFileDialog   import asksaveasfilename
from tkFileDialog import askopenfilename

from tkMessageBox import askokcancel

Window = Tk() 
Window.title("TekstEDIT")
index = 0

class Editor(ScrolledText):

    Button(frm, text='Night-Mode',  command=self.onNightMode).pack(side=LEFT)

    def onNightMode(self):
    if index:
        self.text.config(font=('courier', 12, 'normal'), background='black', fg='green')

    else:
        self.text.config(font=('courier', 12, 'normal'))

    index = not index   

但是,在运行代码时,它始终处于夜间模式,并且切换不起作用。救命啊。 源代码:http://ideone.com/IVJuxX


Tags: textfromimportselfconfigindextkinter模式
2条回答

背景和fg只在if子句中设置。您还需要在else子句中设置它们:

def onNightMode(self):
    if index:
        self.text.config(font=('courier', 12, 'normal'), background='black', fg='green')

    else:
        self.text.config(font=('courier', 12, 'normal'))

    index = not index

也就是说

else:
    self.text.config(font=('courier', 12, 'normal'), background='green', fg='black')

您可以导入tkinter库(对Python2.7使用大写字母):

import Tkinter 

创建tkinter对象。。。

root = tk.Tk()

…和tkinter按钮

toggle_btn = tk.Button(text="Toggle", width=12, relief="raised")
toggle_btn.pack(pady=5)
root.mainloop()

现在创建一个名为“toggle”的新命令按钮,以便在按relief属性(凹陷或凸起)上的play时创建“toggle”效果:

def toggle():

    if toggle_btn.config('relief')[-1] == 'sunken':
        toggle_btn.config(relief="raised")
    else:
        toggle_btn.config(relief="sunken")

最后,在按钮上应用此行为:

toggle_btn = tk.Button(text="Toggle", width=12, relief="raised", command=toggle)

相关问题 更多 >

    热门问题