我自己曾经也想给自己的程序添加图形界面,但是后来放弃了!因为尝试后发现太麻烦!比matlab写图形界面麻烦多了……最后我是用的后面加参数的调用方法,图形界面还是用vb开发好……反正用linux的根本不在乎图形界面。
扯远了……总体来说,python的图形界面最常用的就是两个,自带的tkinter(tcl/tk)和第三方的WxPython。后者比前者强大很多倍。不过,反正我自己觉得你用第一个也够了,还可以缩小体积增加兼容性。wxpython很强大,而且熟悉后开发很快。关键就是熟悉他麻烦,太多要学的了。听咱的,看几个简单例子用tkinter搞定得了……
好吧。tkinter大致过程如下。我个人觉得太小的程序就不用分成多个py文件了(反正我习惯不好),因为tkinter里面,定义窗体是一个tkinter的实例,然后再mainloop表示界面结束后,你可以随便定义自己的方法什么的。(为什么我总是跑题啊啊啊……)
咳咳。给你几个例子吧。
==============================================
强调:详细内容必须自己看说明!我会在文末和参考文献中给出!
当然,这个回答推荐你复制到具有语法加亮的编辑器中看,比如notepad++之类。
================================================
#首先是Fredrik Lundh版本的hello world,这是最简单的版本:
# File: hello1.py
from Tkinter import *
root = Tk()
w = Label(root, text="Hello, world!")
w.pack()
root.mainloop()
# root=Tk()将创建一个窗体。然后w.pack()的时候将内容更新上去。这句是最重要的一句,无论如何都少不了的。在后面的例子中你会注意到一开始定义了很多窗体的东西,但是最后都会用这句来生成窗体。然后用mainloop()来接收 *** 作。当然,这会彻底占用这个线程。
#================================
#再来看python官方doc文档里面的hello world,这个实力包含了大多数元素。
from Tkinter import *
class Application(Frame):
def say_hi(self):
print "hi there, everyone!"
def createWidgets(self):
self.QUIT = Button(self)
self.QUIT["text"] = "QUIT"
self.QUIT["fg"] = "red"
self.QUIT["command"] = self.quit
self.QUIT.pack({"side": "left"})
self.hi_there = Button(self)
self.hi_there["text"] = "Hello",
self.hi_there["command"] = self.say_hi
self.hi_there.pack({"side": "left"})
def __init__(self, master=None):
Frame.__init__(self, master)
self.pack()
self.createWidgets()
root = Tk()
app = Application(master=root)
app.mainloop()
root.destroy()
#这个实例里面包括了按钮,如何调用自己的方法,等等。但是没有文本框和菜单等。
#我想我不应该把所有的东西都写在这里了,比较这里面的东西很多,需要你自己学一下。
#但是相信我,这个学起来不wxpython容易多了,因为有很多写的很好的教程。
#除非,你英语不好。但是这也不会影响太多,因为把第一个教程(An Introduction to Tkinter ——by Fredrik Lundh)中的例子一个一个做一次你就明白了每个语句是什么用的了。
===========================
参考资料(一定要去看哦!比去论坛和邮件组方便多了!):
【1】An Introduction to Tkinter ——by Fredrik Lundh
online:http://www.pythonware.com/library/tkinter/introduction/index.htm
PDF: http://www.pythonware.com/media/data/an-introduction-to-tkinter.pdf
这本是推荐入门教程!因为例子真的很细很简单!和那本《a bite of python》(好像叫python简明教程?)相比真的很像!不过作者当然不是一个人了。
【2】Tkinter 8.4 reference: a GUI for Python ——by New Mexico Tech Computer Center
online:http://www.nmt.edu/tcc/help/pubs/tkinter/
PDF :http://www.nmt.edu/tcc/help/pubs/tkinter/tkinter.pdf
和名字取得一样,就是一本参考书,为了方便查询的。推荐读了第一本需要的时候查这个。说起来第一本就应该是”指南“了,哈哈……
【3】24.1. Tkinter — Python interface to Tcl/Tk —— Official library
online: http://docs.python.org/library/tkinter.html
这个是官方的参考。真不愧是官方的,一般人都看不懂……很详细的列出了很多东西,然后用很小的篇幅把他们都融入了进去,几乎没有例子。等你基本熟悉了之后在看吧,反正我觉得不看也罢,官方的东西都是裹脚布,还是用了很多年的那种!看的想骂人
=======================
基本上就是这样了。
反正命令行也挺好。因为python开发出的gui是在太丑了!想要好看的gui ?微软的Expression吧……那东西开发出来超好看。不过就必须用vb或者C#了……而且windows限定……
需要指定image或者bitmap属性,然后再使用width, height来控制。
默认的button是text类型, width, heigth表示字符个数和行数,指定那些后,意义就变成像素。
例如:
import Tkinter
root = Tkinter.Tk()
b1 = Tkinter.Button(root, bitmap="gray50", width=10, height=10)
b1.pack()
root.mainloop()
扩展资料:
python参考函数
long([x[, base]]) 将一个字符转换为long类型
pow(x, y[, z]) 返回x的y次幂
range([start], stop[, step]) 产生一个序列,默认从0开始
round(x[, n]) 四舍五入
sum(iterable[, start]) 对集合求和
oct(x)将一个数字转化为8进制
hex(x)将整数x转换为16进制字符串
chr(i)返回整数i对应的ASCII字符
参考资料来源:百度百科-Python (计算机程序设计语言)
到底用哪个,取决于你的程序需求。
使用tkinter
优点:
Python自带
体积小
使用简单,如果通过高阶编程可以实现pyqt的部分功能(浏览器组件也可以)
缺点:
原生组件少,高级组件要自己写
使用的是tcl语言,速度较慢(这个其实使用者看不出来)
不支持多进程
使用pyqt
优点:
封住的功能丰富,即已经拥有的原生组件多
使用dll,启动速度快
有底层api调用,功能更丰富
缺点:
pyqt所需的文件环境巨大,动辄几百M
使用复杂
多进程和多线程必须使用pyqt自己的库
注:有人认为pyqt有可视化拖动界面而tkinter没有,这大错特错。tkinter也有可视化拖动界面,如Page,以及有人现在在开发的VCP(visual chinese python)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)