python程序的窗口化
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python程序的窗口化相关的知识,希望对你有一定的参考价值。
有一个已经写好的.py文件,希望使用Tkinter将其窗口化....求解
如果我没有理解错的话,看样子你应该不需要.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限定…… 参考技术A 需要写一份 python 文件(利用 tk 库或其他GUI库,如wxPython)做界面,功能部分调用你原来的 python 文件。追问
求解如何调用?
能不能举个例子?
比如 界面文件是 gui.py ,原来的文件是foo.py,
foo.py:
def f1():
pass
def f2():
pass
def main():
pass
gui.py:
import tk
import foo
def gf1():
foo.f1()
def gf2():
foo.f2()
以上只是个简化的说明,gui中还要涉及tk的部分。
谢谢你的答案,再过一天如果没有更好的,最佳答案就是你的了
参考技术B 有简单的“确定”、“是否”窗口的,其它需要其它的支持,比如wxpython,
窗体的命令完全不同于python,因为太臃肿了。
以上是关于python程序的窗口化的主要内容,如果未能解决你的问题,请参考以下文章