请点击右上角“关注”按钮关注我们哟:随着木辛老师学习Python编程知识,变身快乐的编程达人吧~

大家好,木辛老师又来了!

PHP中showinfo方法若何给用户更多能干的提醒快来看这里。木辛先生给你讲几种 Docker

起因

有时候,我们的程序希望给用户一些提示,特殊是那些主要的,很能干的提醒。
能够让用户第一韶光就能体会到。

如果只是纯挚的利用Label控件,纵然你通过多种办法(比如,加粗、标红、加下划线)着重强调,用户也很有可能选择性的忽略掉。

那怎么办呢?

思路

实在,在软件开拓过程中,有很多种办法可以给到用户更加“蛮横”的提醒,比如本日讲到的这些内容。

本日要讲到的内容是:软件开拓过程中的弹出框的实现。

你可以试想一下,如果在软件的时候过程中,有很主要的信息须要用户关注。

这个时候,一个溘然涌现的提示框,而且用户除了点击这个提示框的“确定”或者“取消”按钮之外,无法连续其他的事情,那么你传达给用户的这条信息,是不是有更大的几率可以被用户“接管”?

虽然这种办法很“野蛮”和“蛮横”,但是当用户面临“危险”的时候,应时的阻挡,用户会很感激你的(但是滥用这种技能,用户担保打不去世你!
)。

Tkinter为我们供应了很多种类的弹出提示框,须要哪种调用哪种就可以,非常的方便。
特殊是,如果这些系统预置的提示框不能知足,那么也可以通过自定义办法,实现更多个性化的提示框。
这都是非常大略的操作!

考试测验

先来个小例子看看Tkinter中的提示框到底长得什么样子。

import tkinter.messagebox as messageboximport tkinter as tkclass Window(tk.Tk):def __init__(self):super().__init__()self.title("Hello")self.label_text = tk.StringVar()self.label_text.set('choose')self.label = tk.Label(self, textvariable=self.label_text)self.label.pack(fill=tk.BOTH, expand=1, padx=100, pady=30)hello_button = tk.Button(self, text="Say Hello", command=self.say_hello)hello_button.pack(side=tk.LEFT, padx=(20, 0), pady=(0, 20))goodbye_button = tk.Button(self, text="Say GoodBye", command=self.say_goodbye)goodbye_button.pack(side=tk.RIGHT, padx=(0, 20), pady=(0, 20))def say_hello(self):self.label_text.set('你好')messagebox.showinfo("你好", "欢迎来到木辛老师的编程课程!")def say_goodbye(self):self.label_text.set('再见! \n (Closing in 2 seconds)')messagebox.showinfo("再见", "有空常回来看看,木辛老师的编程课程会常常更新哟!
")self.after(2000, self.destroy)if __name__ == "__main__":window = Window()window.mainloop()
办理

例子是根据上节课的做了一点点修正。

首先,须要引入一个新的组件

import tkinter.messagebox as message-box

这个便是Tkinter提前为我们准备好的提示框的类。

然后,只须要在对应的方法中调用它就可以了。
在这里的例子的,我们将它放到两个函数里。

def say_hello(self):self.label_text.set('你好')messagebox.showinfo("你好", "欢迎来到木辛老师的编程课程!")def say_goodbye(self):self.label_text.set('再见! \n (Closing in 2 seconds)')messagebox.showinfo("再见", "有空常回来看看,木辛老师的编程课程会常常更新哟!
")self.after(2000, self.destroy)

只须要利用如下方法,就可以看到提示框了。

messagebox.showinfo("你好", "欢迎来到木辛老师的编程课程!")

这里阐明一下方法的参数。

showinfo()方法可以供应多个参数,但是一样平常情形下,只须要供应title和 message这两个就可以了。

为了更明显的看出来参数的含义,我们可以轻微修正一下调用办法。

messagebox.showinfo(title="你好", message="欢迎来到木辛老师的编程课程!")

是不是可以看到了。

通过程序实行效果,

可以看到,title代表的是弹出的提示框的标题,而message则对应着提示框的正文。

点击右下方的“OK”按钮,就可以关闭这个提示框了。

后续还会创造什么?

不会了,提示任务到此圆满完成!

总结

大家都实行这个程序了吧?

有没有把稳到一个细节?

当弹出一个提示框之后,对付当前这个程序,你是做不了其他的事情的(可以点击一下后边的软件界面,看看它会不会相应你)。

这也便是木辛老师之前说的,这种办法很“蛮横”的情由。

“用户大大,你不点击确认(OK),我就不让你连续玩了!

好吧,在某些情形下,确实是须要这样“阻拦”一下用户的。

都学会了吗?

那么接下来,还有一个细节,你们有没有创造?

在say_googbye()方法中,有一句代码

self.after(2000, self.destroy)

通过上一节课的学习,我们可以知道,这个语句会实行关闭动作,不过呢,是在延迟2秒后实行。

但是,这节课里的征象却颠覆了之前的认知。

当我们点击“Say GoodBye”按钮之后,如果不将他关闭,咱们的程序不管实行多永劫光都不会自动关闭!

哇!
是不是很神奇?

弹出的提示框,它阻断了程序的实行。
也便是说,如果不关闭提示框,程序是不会向下实行,直到after()方法的。

以是的以是!

在今后利用提示框的时候,一定要把稳:如果有一些须要持续实行的逻辑,千万不要在中途利用提示框,否则,程序就会被停息了!

当然了,以上讲解的提示框的实现仅限于普通提示用户!

但是,有时候提示有可能是缺点提示,警告,或者哀求用户交互什么的。
以是,就须要其他的办法。

messagebox.showerror("你好", "欢迎来到木辛老师的编程课程!")messagebox.askquestion("你好", "欢迎来到木辛老师的编程课程!")messagebox.showwarning("你好", "欢迎来到木辛老师的编程课程!")

然后根据实际情形,自行选择吧!

好了,本日的知识点,大家节制了吗?

咱们下节课再连续学习Tkinter的知识吧。

快乐编程,快乐发展!