为了账号安全,请及时绑定邮箱和手机立即绑定

Python自带的Tkinter写GUI小程序

标签:
Java Python

学了一点点python基础语法,就斗胆用它加上一些文件读写的module,写了几个文件处理的程序;
但是需求又说:写个简单的GUI吧,用起来方便。

目标:GUI实现

  • 点击选择文件按钮弹出windows的文件管理器,选取所需要的文件/文件夹

  • 将上述的路径显示出来

  • 点击运行按钮,运行文件处理程序

https://img1.sycdn.imooc.com//5d31d0f900017bbc03570208.jpg

效果图

工具:选择了python自带的tkinter

参考资料:
http://www.tutorialspoint.com/python/python_gui_programming.htm
简直是最全面的资料!

简单介绍一下最关键的部分:
首先要有一个基本的框架,我们在这个框架里面添加其他的框架:
root = Tk() #base window
这个root就是主框架名

https://img1.sycdn.imooc.com//5d31d0fc0001ba3c06270287.jpg

框架布局

然后我们计划一下,程序有哪几个部分,因为要设计布局,而tkinter非常简单,只能定义上下左右4个方向;我们定义两个主要的部分,左边和右边:

buttonfrm = Frame(root)         #'button frame' is in Root windowbuttonfrm.pack()

textframe = Frame(root)       #text frame in Root windowtextframe.pack(side=LEFT)

textframe 和 buttonframe 是两个副框架名

然后我们在里面去定义组件。

语法:#

因为上面那个连接是最全面的,我就不多说了,尽量参考原文档。

按钮:

B = Tkinter.Button(top, text ="Hello", command = function)

字符框:

可实时更新哦(用下面的set函数)

var = StringVar()
label = Label( root, textvariable=var, relief=RAISED )var.set("Hey!? How are you doing?")
label.pack()

示例:

import Tkinterimport tkMessageBox
top = Tkinter.Tk()def helloCallBack():
  tkMessageBox.showinfo( "Hello Python", "Hello World")
  B = Tkinter.Button(top, text ="Hello", command = helloCallBack)
  B.pack()
top.mainloop()

https://img1.sycdn.imooc.com//5d31d0ff0001978f03120203.jpg

示例效果

python 代码:

import tkinterfrom tkinter import *global s

s='sssss'def func1():
    s='fucked!'
    outputtext.set(s)

root = Tk()                     #base windowbuttonfrm = Frame(root)         #'button frame' is in Root windowbuttonfrm.pack()

textframe = Frame(root)       #text frame in Root windowtextframe.pack(side=LEFT)

btnfrm=Frame(root)
btnfrm.pack(side=BOTTOM)

inputbutton = Button(buttonfrm, text="Input",command=func1)       #command = helloCallBackinputbutton.pack()

outputbutton = Button(buttonfrm, text="Output")
outputbutton.pack()




inputtext=StringVar()
inputmsg=Label(textframe,textvariable=inputtext, relief=RAISED)
inputtext.set(s)
inputmsg.pack()

s='changed!'outputtext=StringVar()
outputmsg=Label(textframe,textvariable=outputtext, relief=RAISED)
outputtext.set(s)
outputmsg.pack()#run & exit buttonrunbutton = Button(btnfrm, text="RUN!",fg='red')
runbutton.pack()

exitbutton = Button(btnfrm, text="EXIT!",command=root.quit)
exitbutton.pack()

root.mainloop()


作者:AwesomeAshe
链接:https://www.jianshu.com/p/67696cc14734


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消