python绘制界面,起初想的很简单,可是在编写的过程却遇到了不少麻烦。就让我从头提及吧~python
准备工做:linux
选择了python2.7.5版本,Tkinter绘制界面模块vim
遇到问题:windows
运行python Tkinter (python2版本tkinter模块首字母须要大写) 时,出现报错:没有Tkinter模块,上网查询,知道在windows里自带Tkinter版本,可是在linux(centos7)里面没有Tkinter模块,所以就须要 yum install -y tkinter 和 yum install -y tk-devel 可是当我安装好centos7后,执行上述两个命令时,报错,因而上网查找缘由。centos
解决方法:架构
解决安装CentOS7后发现yum没法使用python2.7
首先以root用户登陆
输入命令: vim /etc/sysconfig/network-scripts/ifcfg-ens33
按 i 进入编辑模式,
将ONBOOT改成yes, 而后必定要重启,就能够了yum了。ide紧接着:函数
[root@localhost ~]# yum install -y tkinteroop
已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.tuna.tsinghua.edu.cn * updates: mirrors.tuna.tsinghua.edu.cn 正在解决依赖关系 --> 正在检查事务 ---> 软件包 tkinter.x86_64.0.2.7.5-80.el7_6 将被 安装 --> 正在处理依赖关系 python = 2.7.5-80.el7_6,它被软件包 tkinter-2.7.5-80.el7_6.x86_64 须要 --> 正在处理依赖关系 libtk8.5.so()(64bit),它被软件包 tkinter-2.7.5-80.el7_6.x86_64 须要 --> 正在处理依赖关系 libtcl8.5.so()(64bit),它被软件包 tkinter-2.7.5-80.el7_6.x86_64 须要 --> 正在处理依赖关系 libTix.so()(64bit),它被软件包 tkinter-2.7.5-80.el7_6.x86_64 须要 --> 正在检查事务 ---> 软件包 python.x86_64.0.2.7.5-76.el7 将被 升级 ---> 软件包 python.x86_64.0.2.7.5-80.el7_6 将被 更新 --> 正在处理依赖关系 python-libs(x86-64) = 2.7.5-80.el7_6,它被软件包 python-2.7.5-80.el7_6.x86_64 须要 ---> 软件包 tcl.x86_64.1.8.5.13-8.el7 将被 安装 ---> 软件包 tix.x86_64.1.8.4.3-12.el7 将被 安装 ---> 软件包 tk.x86_64.1.8.5.13-6.el7 将被 安装 --> 正在检查事务 ---> 软件包 python-libs.x86_64.0.2.7.5-76.el7 将被 升级 ---> 软件包 python-libs.x86_64.0.2.7.5-80.el7_6 将被 更新 --> 解决依赖关系完成 依赖关系解决 ======================================================================================================================================================================================= Package 架构 版本 源 大小 ======================================================================================================================================================================================= 正在安装: tkinter x86_64 2.7.5-80.el7_6 updates 326 k 为依赖而安装: tcl x86_64 1:8.5.13-8.el7 base 1.9 M tix x86_64 1:8.4.3-12.el7 base 254 k tk x86_64 1:8.5.13-6.el7 base 1.4 M 为依赖而更新: python x86_64 2.7.5-80.el7_6 updates 95 k python-libs x86_64 2.7.5-80.el7_6 updates 5.6 M 事务概要 ======================================================================================================================================================================================= 安装 1 软件包 (+3 依赖软件包) 升级 ( 2 依赖软件包) 总下载量:9.6 M Downloading packages: updates/7/x86_64/prestodelta | 829 kB 00:00:01 Delta RPMs reduced 5.7 M of updates to 469 k (92% saved) (1/6): python-2.7.5-76.el7_2.7.5-80.el7_6.x86_64.drpm | 67 kB 00:00:00 警告:/var/cache/yum/x86_64/7/base/packages/tix-8.4.3-12.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY tix-8.4.3-12.el7.x86_64.rpm 的公钥还没有安装 (2/6): tix-8.4.3-12.el7.x86_64.rpm | 254 kB 00:00:00 (3/6): python-libs-2.7.5-76.el7_2.7.5-80.el7_6.x86_64.drpm | 403 kB 00:00:00 tkinter-2.7.5-80.el7_6.x86_64.rpm 的公钥还没有安装 (4/6): tkinter-2.7.5-80.el7_6.x86_64.rpm | 326 kB 00:00:00 (5/6): tk-8.5.13-6.el7.x86_64.rpm | 1.4 MB 00:00:01 (6/6): tcl-8.5.13-8.el7.x86_64.rpm | 1.9 MB 00:00:01 Finishing delta rebuilds of 2 package(s) (5.7 M) --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 总计 536 kB/s | 4.3 MB 00:00:08 从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 检索密钥 导入 GPG key 0xF4A80EB5: 用户ID : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>" 指纹 : 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5 软件包 : centos-release-7-6.1810.2.el7.centos.x86_64 (@anaconda) 来自 : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安装 : 1:tcl-8.5.13-8.el7.x86_64 1/8 正在安装 : 1:tk-8.5.13-6.el7.x86_64 2/8 正在安装 : 1:tix-8.4.3-12.el7.x86_64 3/8 正在更新 : python-libs-2.7.5-80.el7_6.x86_64 4/8 正在更新 : python-2.7.5-80.el7_6.x86_64 5/8 正在安装 : tkinter-2.7.5-80.el7_6.x86_64 6/8 清理 : python-2.7.5-76.el7.x86_64 7/8 清理 : python-libs-2.7.5-76.el7.x86_64 8/8 验证中 : 1:tcl-8.5.13-8.el7.x86_64 1/8 验证中 : python-libs-2.7.5-80.el7_6.x86_64 2/8 验证中 : python-2.7.5-80.el7_6.x86_64 3/8 验证中 : tkinter-2.7.5-80.el7_6.x86_64 4/8 验证中 : 1:tix-8.4.3-12.el7.x86_64 5/8 验证中 : 1:tk-8.5.13-6.el7.x86_64 6/8 验证中 : python-2.7.5-76.el7.x86_64 7/8 验证中 : python-libs-2.7.5-76.el7.x86_64 8/8 已安装: tkinter.x86_64 0:2.7.5-80.el7_6 做为依赖被安装: tcl.x86_64 1:8.5.13-8.el7 tix.x86_64 1:8.4.3-12.el7 tk.x86_64 1:8.5.13-6.el7 做为依赖被升级: python.x86_64 0:2.7.5-80.el7_6 python-libs.x86_64 0:2.7.5-80.el7_6 完毕!
[root@localhost ~]# yum install -y tk-devel
已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.cqu.edu.cn * extras: mirrors.cqu.edu.cn * updates: mirror.lzu.edu.cn 正在解决依赖关系 --> 正在检查事务 ---> 软件包 tk-devel.x86_64.1.8.5.13-6.el7 将被 安装 --> 正在处理依赖关系 tcl-devel = 1:8.5.13,它被软件包 1:tk-devel-8.5.13-6.el7.x86_64 须要 --> 正在处理依赖关系 libXft-devel,它被软件包 1:tk-devel-8.5.13-6.el7.x86_64 须要 --> 正在检查事务 ---> 软件包 libXft-devel.x86_64.0.2.3.2-2.el7 将被 安装 --> 正在处理依赖关系 pkgconfig(xrender),它被软件包 libXft-devel-2.3.2-2.el7.x86_64 须要 --> 正在处理依赖关系 pkgconfig(freetype2),它被软件包 libXft-devel-2.3.2-2.el7.x86_64 须要 --> 正在处理依赖关系 pkgconfig(fontconfig),它被软件包 libXft-devel-2.3.2-2.el7.x86_64 须要 ---> 软件包 tcl-devel.x86_64.1.8.5.13-8.el7 将被 安装 --> 正在检查事务 ---> 软件包 fontconfig-devel.x86_64.0.2.13.0-4.3.el7 将被 安装 --> 正在处理依赖关系 pkgconfig(uuid),它被软件包 fontconfig-devel-2.13.0-4.3.el7.x86_64 须要 --> 正在处理依赖关系 pkgconfig(expat),它被软件包 fontconfig-devel-2.13.0-4.3.el7.x86_64 须要 ---> 软件包 freetype-devel.x86_64.0.2.8-12.el7_6.1 将被 安装 --> 正在处理依赖关系 freetype = 2.8-12.el7_6.1,它被软件包 freetype-devel-2.8-12.el7_6.1.x86_64 须要 --> 正在处理依赖关系 pkgconfig(zlib),它被软件包 freetype-devel-2.8-12.el7_6.1.x86_64 须要 --> 正在处理依赖关系 pkgconfig(libpng),它被软件包 freetype-devel-2.8-12.el7_6.1.x86_64 须要 ---> 软件包 libXrender-devel.x86_64.0.0.9.10-1.el7 将被 安装 --> 正在检查事务 ---> 软件包 expat-devel.x86_64.0.2.1.0-10.el7_3 将被 安装 ---> 软件包 freetype.x86_64.0.2.8-12.el7 将被 升级 ---> 软件包 freetype.x86_64.0.2.8-12.el7_6.1 将被 更新 ---> 软件包 libpng-devel.x86_64.2.1.5.13-7.el7_2 将被 安装 ---> 软件包 libuuid-devel.x86_64.0.2.23.2-59.el7_6.1 将被 安装 --> 正在处理依赖关系 libuuid = 2.23.2-59.el7_6.1,它被软件包 libuuid-devel-2.23.2-59.el7_6.1.x86_64 须要 ---> 软件包 zlib-devel.x86_64.0.1.2.7-18.el7 将被 安装 --> 正在检查事务 ---> 软件包 libuuid.x86_64.0.2.23.2-59.el7 将被 升级 --> 正在处理依赖关系 libuuid = 2.23.2-59.el7,它被软件包 libmount-2.23.2-59.el7.x86_64 须要 --> 正在处理依赖关系 libuuid = 2.23.2-59.el7,它被软件包 libblkid-2.23.2-59.el7.x86_64 须要 --> 正在处理依赖关系 libuuid = 2.23.2-59.el7,它被软件包 util-linux-2.23.2-59.el7.x86_64 须要 ---> 软件包 libuuid.x86_64.0.2.23.2-59.el7_6.1 将被 更新 --> 正在检查事务 ---> 软件包 libblkid.x86_64.0.2.23.2-59.el7 将被 升级 ---> 软件包 libblkid.x86_64.0.2.23.2-59.el7_6.1 将被 更新 ---> 软件包 libmount.x86_64.0.2.23.2-59.el7 将被 升级 ---> 软件包 libmount.x86_64.0.2.23.2-59.el7_6.1 将被 更新 ---> 软件包 util-linux.x86_64.0.2.23.2-59.el7 将被 升级 ---> 软件包 util-linux.x86_64.0.2.23.2-59.el7_6.1 将被 更新 --> 正在处理依赖关系 libsmartcols = 2.23.2-59.el7_6.1,它被软件包 util-linux-2.23.2-59.el7_6.1.x86_64 须要 --> 正在检查事务 ---> 软件包 libsmartcols.x86_64.0.2.23.2-59.el7 将被 升级 ---> 软件包 libsmartcols.x86_64.0.2.23.2-59.el7_6.1 将被 更新 --> 解决依赖关系完成 依赖关系解决 ======================================================================================================================================================================================= Package 架构 版本 源 大小 ======================================================================================================================================================================================= 正在安装: tk-devel x86_64 1:8.5.13-6.el7 base 488 k 为依赖而安装: expat-devel x86_64 2.1.0-10.el7_3 base 57 k fontconfig-devel x86_64 2.13.0-4.3.el7 base 138 k freetype-devel x86_64 2.8-12.el7_6.1 updates 447 k libXft-devel x86_64 2.3.2-2.el7 base 19 k libXrender-devel x86_64 0.9.10-1.el7 base 17 k libpng-devel x86_64 2:1.5.13-7.el7_2 base 122 k libuuid-devel x86_64 2.23.2-59.el7_6.1 updates 91 k tcl-devel x86_64 1:8.5.13-8.el7 base 165 k zlib-devel x86_64 1.2.7-18.el7 base 50 k 为依赖而更新: freetype x86_64 2.8-12.el7_6.1 updates 380 k libblkid x86_64 2.23.2-59.el7_6.1 updates 181 k libmount x86_64 2.23.2-59.el7_6.1 updates 182 k libsmartcols x86_64 2.23.2-59.el7_6.1 updates 140 k libuuid x86_64 2.23.2-59.el7_6.1 updates 82 k util-linux x86_64 2.23.2-59.el7_6.1 updates 2.0 M 事务概要 ======================================================================================================================================================================================= 安装 1 软件包 (+9 依赖软件包) 升级 ( 6 依赖软件包) 总下载量:4.5 M Downloading packages: Delta RPMs reduced 2.8 M of updates to 1.1 M (60% saved) (1/16): freetype-2.8-12.el7_2.8-12.el7_6.1.x86_64.drpm | 27 kB 00:00:01 (2/16): libblkid-2.23.2-59.el7_2.23.2-59.el7_6.1.x86_64.drpm | 75 kB 00:00:01 (3/16): libsmartcols-2.23.2-59.el7_2.23.2-59.el7_6.1.x86_64.drpm | 75 kB 00:00:00 (4/16): libmount-2.23.2-59.el7_2.23.2-59.el7_6.1.x86_64.drpm | 75 kB 00:00:00 (5/16): util-linux-2.23.2-59.el7_2.23.2-59.el7_6.1.x86_64.drpm | 898 kB 00:00:00 (6/16): freetype-devel-2.8-12.el7_6.1.x86_64.rpm | 447 kB 00:00:00 (7/16): fontconfig-devel-2.13.0-4.3.el7.x86_64.rpm | 138 kB 00:00:00 (8/16): libuuid-2.23.2-59.el7_6.1.x86_64.rpm | 82 kB 00:00:00 (9/16): libXft-devel-2.3.2-2.el7.x86_64.rpm | 19 kB 00:00:00 (10/16): libuuid-devel-2.23.2-59.el7_6.1.x86_64.rpm | 91 kB 00:00:00 (11/16): expat-devel-2.1.0-10.el7_3.x86_64.rpm | 57 kB 00:00:01 (12/16): tcl-devel-8.5.13-8.el7.x86_64.rpm | 165 kB 00:00:00 (13/16): zlib-devel-1.2.7-18.el7.x86_64.rpm | 50 kB 00:00:00 (14/16): tk-devel-8.5.13-6.el7.x86_64.rpm | 488 kB 00:00:00 (15/16): libXrender-devel-0.9.10-1.el7.x86_64.rpm | 17 kB 00:00:01 (16/16): libpng-devel-1.5.13-7.el7_2.x86_64.rpm | 122 kB 00:00:00 Finishing delta rebuilds of 3 package(s) (2.3 M) --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 总计 414 kB/s | 2.8 MB 00:00:06 Running transaction check Running transaction test Transaction test succeeded Running transaction 正在更新 : libuuid-2.23.2-59.el7_6.1.x86_64 1/22 正在更新 : libblkid-2.23.2-59.el7_6.1.x86_64 2/22 正在安装 : zlib-devel-1.2.7-18.el7.x86_64 3/22 正在安装 : 2:libpng-devel-1.5.13-7.el7_2.x86_64 4/22 正在更新 : libmount-2.23.2-59.el7_6.1.x86_64 5/22 正在安装 : libuuid-devel-2.23.2-59.el7_6.1.x86_64 6/22 正在安装 : 1:tcl-devel-8.5.13-8.el7.x86_64 7/22 正在更新 : freetype-2.8-12.el7_6.1.x86_64 8/22 正在安装 : freetype-devel-2.8-12.el7_6.1.x86_64 9/22 正在更新 : libsmartcols-2.23.2-59.el7_6.1.x86_64 10/22 正在安装 : libXrender-devel-0.9.10-1.el7.x86_64 11/22 正在安装 : expat-devel-2.1.0-10.el7_3.x86_64 12/22 正在安装 : fontconfig-devel-2.13.0-4.3.el7.x86_64 13/22 正在安装 : libXft-devel-2.3.2-2.el7.x86_64 14/22 正在安装 : 1:tk-devel-8.5.13-6.el7.x86_64 15/22 正在更新 : util-linux-2.23.2-59.el7_6.1.x86_64 16/22 清理 : util-linux-2.23.2-59.el7.x86_64 17/22 清理 : libmount-2.23.2-59.el7.x86_64 18/22 清理 : libblkid-2.23.2-59.el7.x86_64 19/22 清理 : libuuid-2.23.2-59.el7.x86_64 20/22 清理 : libsmartcols-2.23.2-59.el7.x86_64 21/22 清理 : freetype-2.8-12.el7.x86_64 22/22 验证中 : libXft-devel-2.3.2-2.el7.x86_64 1/22 验证中 : freetype-devel-2.8-12.el7_6.1.x86_64 2/22 验证中 : 2:libpng-devel-1.5.13-7.el7_2.x86_64 3/22 验证中 : libblkid-2.23.2-59.el7_6.1.x86_64 4/22 验证中 : util-linux-2.23.2-59.el7_6.1.x86_64 5/22 验证中 : libmount-2.23.2-59.el7_6.1.x86_64 6/22 验证中 : expat-devel-2.1.0-10.el7_3.x86_64 7/22 验证中 : fontconfig-devel-2.13.0-4.3.el7.x86_64 8/22 验证中 : zlib-devel-1.2.7-18.el7.x86_64 9/22 验证中 : 1:tk-devel-8.5.13-6.el7.x86_64 10/22 验证中 : libXrender-devel-0.9.10-1.el7.x86_64 11/22 验证中 : libuuid-devel-2.23.2-59.el7_6.1.x86_64 12/22 验证中 : libsmartcols-2.23.2-59.el7_6.1.x86_64 13/22 验证中 : libuuid-2.23.2-59.el7_6.1.x86_64 14/22 验证中 : freetype-2.8-12.el7_6.1.x86_64 15/22 验证中 : 1:tcl-devel-8.5.13-8.el7.x86_64 16/22 验证中 : freetype-2.8-12.el7.x86_64 17/22 验证中 : libblkid-2.23.2-59.el7.x86_64 18/22 验证中 : libmount-2.23.2-59.el7.x86_64 19/22 验证中 : util-linux-2.23.2-59.el7.x86_64 20/22 验证中 : libsmartcols-2.23.2-59.el7.x86_64 21/22 验证中 : libuuid-2.23.2-59.el7.x86_64 22/22 已安装: tk-devel.x86_64 1:8.5.13-6.el7 做为依赖被安装: expat-devel.x86_64 0:2.1.0-10.el7_3 fontconfig-devel.x86_64 0:2.13.0-4.3.el7 freetype-devel.x86_64 0:2.8-12.el7_6.1 libXft-devel.x86_64 0:2.3.2-2.el7 libXrender-devel.x86_64 0:0.9.10-1.el7 libpng-devel.x86_64 2:1.5.13-7.el7_2 libuuid-devel.x86_64 0:2.23.2-59.el7_6.1 tcl-devel.x86_64 1:8.5.13-8.el7 zlib-devel.x86_64 0:1.2.7-18.el7 做为依赖被升级: freetype.x86_64 0:2.8-12.el7_6.1 libblkid.x86_64 0:2.23.2-59.el7_6.1 libmount.x86_64 0:2.23.2-59.el7_6.1 libsmartcols.x86_64 0:2.23.2-59.el7_6.1 libuuid.x86_64 0:2.23.2-59.el7_6.1 util-linux.x86_64 0:2.23.2-59.el7_6.1 完毕!
进行任务:
开发界面完成以下功能:1 点击下一步,跳转到新的界面,2 能够展现进度条,能够输入IP地址
#!/usr/bin/python # -*- coding: UTF-8 -*- from __future__ import print_function #python2为适应python3的语法实现进度条加的一句代码 from Tkinter import * #引用Tk模块 root = Tk() #初始化Tk() root.title("主界面") #设置窗口标题 root.geometry('800x500') #设置窗口大小 root.resizable(width=True, height=True) #窗口是否能够变长\宽 def create(): #定义函数 create() top = Toplevel() #建立顶层窗口 top.title('登录界面') top.geometry('800x500') v1 = StringVar() #绑定变量: var=StringVar() lb=Entry(根对象, textvariable = var) t1 = Entry(top, textvariable=v1, width=50) #建立单行文本框 t1.grid(row=10, column=10, padx=50, pady=50) #控件数量较多时使用grid()进行布局(不要在同一个窗口中同时使用grid()和pack()!!) #将控件放在row行,column列的位置, #padx:设置控件周围水平方向空白区域保留大小; pady:设置控件周围垂直方向空白区域保留大小; Button(top, text='查找').grid(row=10,column=11,padx=10,pady=10) def progress(percent,width=50): #定义progress进度条函数 有两个参数 if percent >= 100: percent=100 show_str = ('[%%-%ds]'%width) % (int(width*percent/100)*'#') #字符串拼接的嵌套使用 %-50s []中有50个字符的长度 print('\r%s %d%%' %(show_str,percent), end='') #python3中新增长的规则,print默认结尾\n,可是此处不想换行,用end=''处理便可 total = 100000 count = 0 for i in range(total): #把0-99999依次赋值给i a = i*2 count += 1 progress(100*count/total) #调用函数progress() print ('\nfinished!') Button(root, text='下一步', command=create).pack(side=BOTTOM) #点击按钮跳入下一界面 pack()参数较少,使用方便,是最简单的布局 root.mainloop() #进入消息循环