python没有tkinter gitbash_GitHub - wynnforthework/python_gui: python tkinter gui demo

python tkinter gui demo

e6d48778e7a07a7b73c83945964e2aeb.png

c7d99f98711c0a481fd2ab7a5a36ebc2.png

242df1dd18ecd7d87cad9fd6ee9ceea6.png

使用方式

python python_gui.py

文档

本程序用的是python 3.7,用anaconda管理。

1.启动python环境。

1.1 启动Anaconda,点击Environments,默认有个base(root),可以自己创建一个,也可以使用默认的,点击▶。

afb2a51a5c4410c99bfefea76122c4f8.png

1.2 会出现一个下来菜单,点击第一个Open Terminal。

020af95a2748d09420ea974e6742a4b6.png

1.3 出现一个终端,注意该路径,默认前面会有个(base),代表着目前使用的是python 虚拟环境。

3d39e115376a2ccaf0befac3a46a46ee.png

1.4 作为对比,从别的地方打开的终端不会带(base)。

bc509177c4de6ef278f7a7ea262373da.png

1.5 python虚拟环境是一个沙盒,每个环境里安装的第三方库都是独立的,不会污染其它环境,保证每个项目的环境都是干净的,减少无用的库干扰。

2.python_can.py说明。

2.1 用自己喜欢的ide打开python_can.y文件。

43bf5ae5f5cc842a9bb376224fe6f929.png

2.2 注意开头2行,这是固定格式,第1行的内容必须放第一行,表示本程序需要使用python运行,第2行表示本程序使用utf-8编码,不添加可能会导致程序显示中文的时候乱码。

2.3 import导入库,程序中使用的第三方库,都需要在使用之前导入。

b8337a27c87c9b854636f9c277653595.png

2.4 一般情况下,需要什么功能,才会考虑导入什么库,库分为系统库和第三方库,例如os,sys,threading,tkinter,是python自带的,只要安装了python,就能使用,每个库有自己的功能,导入合适的库,能减少开发工作。

2.5 需要注意的是,一个库导入进来,可以用也可以不用。

2.6 导入库的两种常见方式,一种是import os,最常用的。第二种则是from [库名] import [模块]。每个库里面的功能或多或少,比如一个库里有10个功能模块,但是这个程序只用到了1个功能模块,直接import会导入很多用不到的代码。具体要不要使用看个人习惯。

2.7 import tkinter as tk,在别的地方可以能会见到这种形式的import,同样是import,但有的人可能会用自己喜欢的变量名代替库名。

a2410fa6e7c401774ad2639b1a6b9cd6.png

2.8 不同的导入方式造成的影响,用tkinter第三方库举例,Tk()是tkinter内部的初始化方法。

导入

使用

import tkinter

top = tkinter.Tk()

import tkinter

as tktop = tk.Tk()

from tkinter

import *top = Tk()

不同的导入方式更多的是个人习惯,对程序本身没有影响。

2.9 第三方库paramiko,第三方库即系统不自带的,有某个人自己写好的功能分享出来,供其它人使用的,使用之前,需要用pip install paramiko将库下载到本地,才能在程序中导入。

3 py文件的基本结构。

3.1 一个py文件想要运行,至少包含导入库和程序入口。

3.2 假如一个py文件写好后,运行的时候,首先会检查import,是否导入库,如果有就将库导入,然后找到入口,如果没有入口,该文件将什么都不做。

3.3 找到入口后,会执行入口方法。

3.4 top = Tk(),初始化tkinter。

3.5 Application(top)将初始化完成的窗口作为参数传给用到的地方,mainloop() 启动循环,不关闭窗口的情况下,窗口将一直更新。

cf8577f73d5d6ce081f62da03d3fc566.png

4 运行步骤。

4.1 在终端输入python python_can.py文件后,首先会执行入口方法

a5b02840595d80a7d5f1e704e519ff8a.png

4.2 第311行接着会走到第120行。

055fa24c856815f35c75d9ca17438eec.png

4.3 第120行会走到第30行,第30行到第44行,设置了窗口的大小,标题,位置。

4.4 第30行会一行一行的往下执行,到第45行。

62a0361caf0dd2f6233e6edad55c8eee.png

4.5 第45行会走到第48行,从第48行走到第116行,程序执行完毕。如果不做任何操作,程序将不会做任何事。

66cff303a2687fe463d26040168d68c1.png

5.类,方法,数据类型,赋值,循环。

5.1 类的作用,什么是类,为什么需要类。比如有个班级,班级里有40个学生,现在需要记录这40个学生的姓名,性别,年龄,身高,体重。

张三,男,18,173cm,60kg

李四,女,19,160cm,50kg

...

当你幸幸苦苦收集完了40个学生,每个学生的5条数据。想存起来。方便以后使用,就需要一个变量来保存数据。

name1 = 张三,sex1 = 男,age1=18,height1=173,weight1=60

name2 = 李四,sex2 = 女,age2=19,height2=160,weight2=50

...

为什么需要变量?因为单独一个数字,比如50,50可能是年龄,可能是体重,也可能是语文成绩,并且40个人中不止一个人有50这个数据,你不知道这个50是属于谁的。所以需要一个变量来记录,一看weight2就知道这个是体重,并且是李四的体重。

过了几天,语文考试了,现在又需要记录每个人的语文成绩。

于是有在每条数据后面添加一个新的变量,yuwen1 = 60,yuwen2 = 50。

过了几天,又考了数学,后面还有历史,化学,生物等等。

你开始想省点事,思考这些数据有没有办法简化,首先发现它们的相同点就是每个人的数据种类是一样的,即每个人都有行吗,性别,年龄等等。于是你就想我能不能设计一张表,包含了姓名,性别,年龄等,如果以后需要加数学成绩,历史成绩,只需要改这个表就行。每个人都是用这个表。

这张表对应电脑里就是数据结构,一个居有相同类型数据的结构,简单点的是[]集合,里面只能放同一种数据,复杂点的就是类,能同时包含数字,字符串,还可以包含“方法”。

class Student():

name #字符串

sex #字符串

age #数字

stu1 = Student()

stu1.name = "张三"

stu2 = Student()

stu2.name = "李四"

姓名只能是字符串,不能是数字,年龄是数字而不是abc。字符串和数字就是基础数据类型。基础数据类型是计算机里保存的最基本的数据结构。复杂的数据结构是有基础数据类型组合而来。

当你把所有学生的数据全都保存成功后,现在有人叫你把他们的信息都列出来。

于是你用

print(stu1.name+stu1.sex+stu1.age+"")

print(stu2.name+stu2.sex+stu2.age+"")

...

写了很多遍之后,你发现这样的格式好像不够优雅,于是换成了

print("%s%s%s%s" % (stu1.name,stu1.sex,stu1.age,...))

print("%s%s%s%s" % (stu2.name,stu2.sex,stu2.age,...))

...

又写了很多遍,你就想这些几乎都是一样,都没有办法优化呢?于是你找到了一个叫集合和循环的东西

students = [stu1,stu2,stu3...]

for stu in students:

print("%s%s%s%s" % (stu.name,stu.sex,stu.age,...))

然后你又想到,既然我要把每个学生的资料拼接后才显示,能不能让他们自己拼接出来,我直接显示呢?

于是有了

class Student():

name #字符串

sex #字符串

age #数字

def say():

pprint("%s%s%s%s" % (name,sex,age,...))

for stu in students:

stu.say()

5.2 当我们需要一个类时,需要先定义一个类,class Student。当我们需要一个方法时,先定义一个方法def say()。当我们需要一个变量时,先定义一个变量name,然后给它赋值name = "张三"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值