python程序的窗口化

python程序的窗口化,第1张

如果我没有理解错的话,看样子你应该不需要.net,就是自己的一个程序想要个图形界面而已。

我自己曾经也想给自己的程序添加图形界面,但是后来放弃了!因为尝试后发现太麻烦!比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)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12174573.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存