
本期案例是超全程字带着大家制作一个属于自己的GUI图形化界面—>用于设计签名的哦(效果如下图),是用教不是感觉很好玩,是超全程字不是很想学习呢?限于篇幅。

Tkinter是Python的标准GUI库。Python使用Tkinter可以快速地创建GUI应用程序。超全程字当然常用的用教GUI库还有PyQt5,我们只需要知道这两个常用的超全程字即可,如果你真的用教想学习的话。由于Tkinter属于Python标准库,超全程字就不需要使用pip安装,用教直接导入使用即可。超全程字
① 显示窗口 root.mainloop()显示窗口; 窗口默认会显示在电脑屏幕的用教左上角,非常小(后面需要改进)。超全程字from tkinter import
*from tkinter import messagebox
# 创建窗口:实例化一个窗口对象。用教
root = Tk()
# 显示窗口
root.mainloop()
"""
注意到:该窗口默认的超全程字显示位置在哪里,观察我下面的截图。
窗口默认显示在整个电脑屏幕的亿华云左上角,并且窗口大小特别小。
"""
结果如下:

注意:上面2行代码,首先实例化一个窗口对象,然后我们展示了这个窗口,让其真正显示出来。接下来我们的操作,就是针对这个窗口的一系列优化操作,请注意:这个优化操作使用的代码,都是放在这2句代码中间。
② 设置窗口大小 root.geometry("600x400")调整窗口的大小。 该方法中传入的是"宽x高",但是需要注意这个乘号是小写的英文字母x,而不是这个*表示的乘号。 from tkinter import
*from tkinter import messagebox
# 创建窗口:实例化一个窗口对象。
root = Tk()
# 窗口大小
root.geometry("600x450")
# 显示窗口
root.mainloop()
结果如下:


操作代码如下:
from tkinter import
*from tkinter import messagebox
# 创建窗口:实例化一个窗口对象。
root = Tk()
# 窗口大小
root.geometry("600x450+374+182")
# 显示窗口
root.mainloop()
结果如下:

④ 设置窗口的标题 root.title()设置窗口的标题 默认的窗口标题是tk from tkinter import
*from tkinter import messagebox
# 创建窗口:实例化一个窗口对象。
root = Tk()
# 窗口大小
root.geometry("600x450+374+182")
# 窗口标题
root.title("我的个性签名设计")
# 显示窗口
root.mainloop()
结果如下:

⑤ 添加标签控件,并定位 Label(root,text="签名")添加标签控件 第一个参数传入的就是实例化的那个root窗口对象;第二个参数传入的要显示的那个标签文本。 仅仅添加标签控件后,还不行,必须要指定一个位置后,该标签控件才会真正展示出来,即最后需要调用grid()方法后,才会显示标签控件。from tkinter import
*from tkinter import messagebox
# 创建窗口:实例化一个窗口对象。
root = Tk()
# 窗口大小
root.geometry("600x450+374+182")
# 窗口标题
root.title("我的个性签名设计")
# 添加标签控件
label = Label(root)
# 定位
label.grid()
# 显示窗口
root.mainloop()
结果如下:

当然你也可以想到,这个方法肯定还可以修改字体样式、字体大小、字体颜色呀?具体怎么操作呢?我们接着往下面看。
from tkinter import
*from tkinter import messagebox
# 创建窗口:实例化一个窗口对象。云南idc服务商
root = Tk()
# 窗口大小
root.geometry("600x450+374+182")
# 窗口标题
root.title("我的个性签名设计")
# 添加标签控件
label = Label(root,text="签名",font=("宋体",25),fg="red")
"""
text参数用于指定显示的文本;
font参数用于指定字体大小和字体样式;
fg参数用于指定字体颜色;
"""
# 定位
label.grid()
# 显示窗口
root.mainloop()
结果如下:

⑥ 添加输入框,并定位 Entry(root,font=("宋体",25),fg="red")添加输入框 第一个参数传入的就是实例化的那个root窗口对象;第二个参数可写可不写,指的是我们输入的字体的字体样式和字体大小;第三个参数同样可写可不写,表示的是我们输入的字体的颜色。 同样,仅仅使用上述代码并不会显示输入框,只有调用grid()方法,定位后,才会真正显示这个输入框。from tkinter import
*from tkinter import messagebox
# 创建窗口:实例化一个窗口对象。
root = Tk()
# 窗口大小
root.geometry("600x450+374+182")
# 窗口标题
root.title("我的个性签名设计")
# 添加标签控件
label = Label(root,text="签名",font=("宋体",25),fg="red")
# 定位
label.grid()
# 添加输入框
entry = Entry(root,font=("宋体",25),fg="red")
entry.grid()
# 显示窗口
root.mainloop()
结果如下:

注意:很明显这样的摆放方式,并不是我们想要的。我们需要调整一下,下面我们专门花一个小节时间,去讲述怎么调整这个摆放位置。
⑦ 调整控件的摆放位置首先我们需要搞明白,显示窗口究竟采用的是什么样子的布局方式呢?其实是网格式的布局方式。那么什么又是网格式的布局方式呢?excel表格你知道吧,一个个的格子就是网格式的布局方式。

好了!知道了上述原理后,我们现在来真正的调整这个控件摆放位置啦。
from tkinter import
*from tkinter import messagebox
# 创建窗口:实例化一个窗口对象。
root = Tk()
# 窗口大小
root.geometry("600x450+374+182")
# 窗口标题
root.title("我的个性签名设计")
# 添加标签控件
label = Label(root,text="签名:",font=("宋体",25),fg="red")
# 定位
label.grid()
"""
label.grid()等价于label.grid(row=0,column=0)
"""
# 添加输入框
entry = Entry(root,font=("宋体",25),fg="red")
entry.grid(row=0,column=1)
"""
row=0,column=1表示我们将输入框控件,放在第1行第2列的位置;
python语言中,这个下标是从0开始的。
"""
# 显示窗口
root.mainloop()
结果如下:

⑧ 添加点击按钮 Button(root,text="签名设计",font=("宋体",25),fg="red")添加输入框。 第一个参数传入的就是实例化的那个root窗口对象;第二个参数展示的是我们这个点击按钮的标签;第三个参数可写可不写,指的是点击按钮字体的字体样式和字体大小;第四个参数同样可写可不写,表示的是点击按钮字体的颜色。 同样,仅仅使用上述代码并不会显示输入框,只有调用grid()方法,定位后,才会真正显示这个点击按钮。 from tkinter import
*from tkinter import messagebox
# 创建窗口:实例化一个窗口对象。
root = Tk()
# 窗口大小
root.geometry("600x450+374+182")
# 窗口标题
root.title("我的个性签名设计")
# 添加标签控件
label = Label(root,text="签名:",font=("宋体",25),fg="red")
# 定位
label.grid()
# 添加输入框
entry = Entry(root,font=("宋体",25),fg="red")
entry.grid(row=0,column=1)
# 添加点击按钮
button = Button(root,text="签名设计",font=("宋体",25),fg="blue")
button.grid(row=1,column=1)
# 显示窗口
root.mainloop()
结果如下:

至此界面已经简单搭建起来了,接下来要做的就是输入一个名字,点击签名设计后,会显示我的这个签名,此时就需要借助爬虫啦!明天我们将会发布该文的下篇哦,敬请期待。
⑨ 点击按钮自定义功能这里最后补充这个知识点,我们点击按钮后,总是希望能够给我们返回点什么,所以呢,需要我们自定义函数。
from tkinter import
*from tkinter import messagebox
def func():
print("我是黄同学")
# 创建窗口:实例化一个窗口对象。
root = Tk()
# 窗口大小
root.geometry("600x450+374+182")
# 窗口标题
root.title("我的个性签名设计")
# 添加标签控件
label = Label(root,text="签名:",font=("宋体",25),fg="red")
# 定位
label.grid()
# 添加输入框
entry = Entry(root,font=("宋体",25),fg="red")
entry.grid(row=0,column=1)
# 添加点击按钮
button = Button(root,text="签名设计",font=("宋体",25),fg="blue",command=func)
button.grid(row=1,column=1)
"""
command=func表示调用最开始定义的func函数。
func函数一定要在这句代码之前,因为这里需要调用这个func函数。
"""
# 显示窗口
root.mainloop()
结果如下:

在Ubuntu更新中,谁没有碰见个错误?在Ubuntu和其它基于Ubuntu的Linux发行版中,更新错误是一个共性的错误,也经常发生。这些错误出现的原因多种多样,修复起来也很简单。在本文中,我们将见到Ubuntu中各种类型频繁发生的更新错误以及它们的修复方法。合并列表问题当你在终端中运行更新命令时,你可能会碰到这个错误“合并列表错误”,就像下面这样:E:Encountered a section with no Package: header,E:Problem with MergeList /var/lib/apt/lists/archive.ubuntu.comubuntudistspreciseuniversebinary-i386Packages,E:The package lists or status file could not be parsed or opened.’可以使用以下命令来修复该错误:sudo rm -r /var/lib/apt/lists/*sudo apt-get clean && sudo apt-get update下载仓库信息失败 -1实际上,有两种类型的下载仓库信息失败错误。假如你的错误是这样的:W:Failed to fetch bzip2:/var/lib/apt/lists/partial/in.archive.ubuntu.comubuntudistsoneiricrestrictedbinary-i386Packages Hash Sum mismatch,W:Failed to fetch bzip2:/var/lib/apt/lists/partial/in.archive.ubuntu.comubuntudistsoneiricmultiversebinary-i386Packages Hash Sum mismatch,E:Some index files failed to download. They have been ignored, or old ones used instead那么,你可以用以下命令修复:sudo rm -rf /var/lib/apt/lists/*sudo apt-get update下载仓库信息失败 -2下载仓库信息失败的另外一种类型是由于PPA过时导致的。通常,当你运行更新管理器,并看到这样的错误时:你可以运行sudo apt-get update来查看哪个PPA更新失败,你可以把它从源列表中删除。你可以按照这个截图指南来修复下载仓库信息失败错误。下载包文件失败错误一个类似的错误是下载包文件失败错误,像这样:该错误很容易修复,只需修改软件源为主服务器即可。转到“软件和更新”,在那里你可以修改下载服务器为主服务器:部分更新错误在终端中运行更新会出现部分更新错误:Not all updates can be installedRun a partial upgrade, to install as many updates as possible在终端中运行以下命令来修复该错误:sudo apt-get install -f加载共享库时发生错误该错误更多是安装错误,而不是更新错误。假如尝试从源码安装程序,你可能会碰到这个错误:error while loading shared libraries:cannot open shared object file: No such file or directory该错误可以通过在终端中运行以下命令来修复:sudo /sbin/ldconfig -v你可以在这里查找到更多详细内容加载共享库时发生错误。无法获取锁 /var/cache/apt/archives/lock在另一个程序在使用APT时,会发生该错误。假定你正在Ubuntu软件中心安装某个东西,然后你又试着在终端中运行apt。E: Could not get lock /var/cache/apt/archives/lock – open (11: Resource temporarily unavailable)E: Unable to lock directory /var/cache/apt/archives/通常,只要你把所有其它使用apt的程序关了,这个问题就会好的。但是,假如问题持续,可以使用以下命令:sudo rm /var/lib/apt/lists/lock假如上面的命令不起作用,可以试试这个命令:sudo killall apt-get关于该错误的更多信息,可以在这里找到。GPG错误: 下列签名无法验证在添加一个PPA时,可能会导致以下错误GPG错误: 下列签名无法验证,这通常发生在终端中运行更新时:W: GPG error: http://repo.mate-desktop.org saucy InRelease: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 68980A0EA10B4DE8我们所要做的,就是获取系统中的这个公钥,从信息中获取密钥号。在上述信息中,密钥号为68980A0EA10B4DE8。该密钥可通过以下方式使用:sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 68980A0EA10B4DE8在添加密钥后,再次运行更新就没有问题了。BADSIG错误另外一个与签名相关的Ubuntu更新错误是BADSIG错误,它看起来像这样:W: A error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://extras.ubuntu.com precise Release: The following signatures were invalid: BADSIG 16126D3A3E5C1192 Ubuntu Extras Archive Automatic Signing KeyW: GPG error: http://ppa.launchpad.net precise Release:The following signatures were invalid: BADSIG 4C1CBC1B69B0E2F4 Launchpad PPA for Jonathan French W: Failed to fetch http://extras.ubuntu.com/ubuntu/dists/precise/Release要修复该BADSIG错误,请在终端中使用以下命令:sudo apt-get cleancd /var/lib/aptsudo mv lists oldlistsudo mkdir -p lists/partialsudo apt-get cleansudo apt-get update本文汇集了你可能会碰到的Ubuntu更新错误,我希望这会对你处理这些错误有所帮助。你在Ubuntu中是否也碰到过其它更新错误呢?请在下面的评论中告诉我,我会试着写个快速指南。