仍然说在前面
变成了大学狗的ATP想要干出一点不一样的事情出来
于是它开始漫无目的地到处找好玩的事情干
突然它想到以前programming的时候都是用控制台的,那那些带按钮的小窗口是咋弄出来的呢?
于是它知道了有“GUI编程”这样的一个东西
似乎用python会很方便?
于是ATP就开始倒腾这个东西了!
(话说,前面那篇python入门是不是被弃坑了?——ATP:是的。。。吧)
前置:使用Tkinter
GUI编程需要使用Tkinter模块
现在最新的python3.几版本自带Tkinter这个模块,所以不用另外安装。
那为啥ATP要突然说起来这个事情呢。。。是因为ATP在倒腾这个东西时候的悲惨经历
上面这个图片是验证你是不是正确安装了Tkinter模块做的测试
当ATP输入Tkinter(强调:首字母大写)的时候它下面显示了traceback,说明它没有找到Tkinter这个模块
那该怎么办呢?应该把首字母改成小写!(感觉ATP的博客写到现在都有一种蠢炸了的感觉)
但是还有一个问题,一开始的时候ATP不管大写还是小写它都显示traceback
ATP就感觉很方:难道它的python没有给它自带Tkinter吗?然后ATP就上网搜索:Tkinter安装
然后ATP找到了这样一个网站:
ATP:??????????真当我英语那么好吗????
ATP为了成功安装Tkinter尝试了三天,最后ATP终于找到了一个可行的解决方法:把Python装到C盘上
是的!!!ATP一开始为了给C盘节省空间把Python装在了D盘上,但是它好像有一些东西是默认在C盘上操作的,所以就导致了很麻烦的问题
前车之鉴,希望给和ATP一样蠢炸了的同胞们一点点帮助_(:з」∠)_
第一步
ATP一开始看到了这个网站:http://www.runoob.com/python/python-gui-tkinter.html
然后ATP就开始照葫芦画瓢
先输入这么一段:
# -*- coding: UTF-8 -*-
import tkinter
top = tkinter.Tk()
top.mainloop()
运行以后就出来了一个这个!
如果输入这么一段:
# -*- coding: UTF-8 -*-
import tkinter
top = tkinter.Tk()
a = ['ga','gaga','gagaga']
b = ['ka','kaka','kakaka']
alist = tkinter.Listbox(top)
blist = tkinter.Listbox(top)
for item in a:
alist.insert(0,item)
for item in b:
blist.insert(0,item)
alist.pack()
blist.pack()
top.mainloop()
运行以后就出来一个这个:
Tkinter里面常用的命令
通过比较上面两段代码我们大致可以得出这样的结论:
- Tk()是Tkinter模块里面的一个函数,作用是创建一个“窗口”。
- Listbox()也是Tkinter模块里的函数,作用是创建一个小组件,这个小组件本身以一个列表的形式存在,所以它可以进行python里面列表相关的操作(比如上面的insert,实际上是每次从a列表里面拿出一个元素插入到alist的第一个元素。blist同理)。
- pack()是对列表本身的操作,目的是把这个列表放到刚才创建的“窗口”中。
- mainloop()是用来显示当前编辑的窗口。
接下来介绍ATP学到的另外一些常见的命令:
- title():用来改变窗口的名称
用法:在mainloop之前加上
top.title("Hello world!")
- geometry():设置窗口大小
用法:在mainloop之前加上
top.geometry('200x100')
一个很有意思的设定是里面是小写字母【x】而不是乘号【*】
200*100的大小有多大呢。。ATP找了电脑管家的那个赖在桌面上不走的东西来做个参照物
- resizable():设置窗口的长宽能否调整
用法:加上这个
top.resizable(width = False, height = False)
False表示不可调整,True表示可调整;width是宽,height是高
其实ATP总觉得不能随意调整窗口大小是一个很GG的设定
【更新中。。。。】