python做gui
㈠ 郁闷于python GUI开发,有没有好的框架
1、Kivy
Kivy是一个开源工具包能够让使用相同源代码创建的程序能跨平台运行。它主要关注创新型用户界面开发,如:多点触应用程序。Kivy还提供了一个多点触摸鼠标模拟器。当前支持的平台包括:Linux、windows、Mac OS X和Android。
Kviy拥有能够处理动画、缓存、手势、绘图等功能。它还内置许多用户界面控件如:按钮、摄影机、表格、Slider和树形控件等。
2、Flexx
Flexx是一个纯Python工具包,用来创建图形化界面应用程序。其使用web技术进行界面的渲染。衫闷盯你可以用Flexx来创建桌面应用,同时也可以导出一个应用到独立的HTML文档。因为使用纯Python开发,所以Flexx是跨平台的。
3、PyQt
PyQt是Qt库的Python版本。PyQt3支持Qt1到Qt3.PyQt4支持Qt4.它的首次发布也是在1998年,但是当时它叫PyKDE,因为开始的时候SIP和PyQt没有公开。PyQt是用SIP写的,PyQt提供GPL版和商业版。
4、wxPython
wxPython是Python语言的一套优秀的GUI图形库,允许Python程序员很方便的创建完整的、功能健全的GUI用户界面。wxPython是作为优秀的跨罩拍平台GUI库wxWidgets的Python封装和Python模块的方式提供给用户的。
就如同Python和wxWidgets一样,wxPython也是一款开源软件,并且具有非常优秀的跨平台能力,能够运行在32位windows、绝大多数的Unix或类Unix系统、Macintosh OS X上。
5、Tkinter
Tkinter是TK图形用户界面工具包标准的Python接口。TK是一个轻量级的跨平台图形用户界面开发工具。Tk和Tkinter可以运行在大多数的Unix平台、windows和Macintosh系统。
6、PyGTK
PyGTK让你用Python轻松创建具有图形或和用户界面的程序,底层的GTK+提供了各式的可视元素和功能,如果需要,你能开发在GNOME桌面系统运行的功能完整的软件。PyGTK真正具有跨平台性,它能不加修改地,稳定运行各种操作系统之上。除了简单易用和快速的原型开发能力外,PyGTK还有一流的处理本地化语言的独特功能。
了解更多python知识,推荐选择【老男孩教育】。
㈡ 如何用 Python 写一个带 GUI 的科学计算程序
这个代码实现的挺简单,并不是很复杂的科学计算器界面,你可以以此为基础,添加自己想要的东西:给你个截图:
#!/usr/bin/envpython3.4
fromTkinterimport*
importparser
root=Tk()
root.title('Calculator')
i=0
deffactorial():
"""."""
whole_string=display.get()
number=int(whole_string)
fact=1
counter=number
try:
whilecounter>0:
fact=fact*counter
counter-=1
clear_all()
display.insert(0,fact)
exceptException:
clear_all()
display.insert(0,"Error")
defclear_all():
""""""
display.delete(0,END)
defget_variables(num):
""""""
globali
display.insert(i,num)
i+=1
defget_operation(operator):
""""""
globali
length=len(operator)
display.insert(i,operator)
i+=length
defundo():
"""removesthelastenteredoperator/variablefromentrywidget"""
whole_string=display.get()
iflen(whole_string):##repeatsuntil
##
new_string=whole_string[:-1]
print(new_string)
clear_all()
display.insert(0,new_string)
else:
clear_all()
display.insert(0,"Error,pressAC")
defcalculate():
"""
Evaluatestheexpression
ref:http://stackoverflow.com/questions/594266/equation-parsing-in-python
"""
whole_string=display.get()
try:
formulae=parser.expr(whole_string).compile()
result=eval(formulae)
clear_all()
display.insert(0,result)
exceptException:
clear_all()
display.insert(0,"Error!")
root.columnconfigure(0,pad=3)
root.columnconfigure(1,pad=3)
root.columnconfigure(2,pad=3)
root.columnconfigure(3,pad=3)
root.columnconfigure(4,pad=3)
root.rowconfigure(0,pad=3)
root.rowconfigure(1,pad=3)
root.rowconfigure(2,pad=3)
root.rowconfigure(3,pad=3)
display=Entry(root,font=("Calibri",13))
display.grid(row=1,columnspan=6,sticky=W+E)
one=Button(root,text="1",command=lambda:get_variables(1),font=("Calibri",12))
one.grid(row=2,column=0)
two=Button(root,text="2",command=lambda:get_variables(2),font=("Calibri",12))
two.grid(row=2,column=1)
three=Button(root,text="3",command=lambda:get_variables(3),font=("Calibri",12))
three.grid(row=2,column=2)
four=Button(root,text="4",command=lambda:get_variables(4),font=("Calibri",12))
four.grid(row=3,column=0)
five=Button(root,text="5",command=lambda:get_variables(5),font=("Calibri",12))
five.grid(row=3,column=1)
six=Button(root,text="6",command=lambda:get_variables(6),font=("Calibri",12))
six.grid(row=3,column=2)
seven=Button(root,text="7",command=lambda:get_variables(7),font=("Calibri",12))
seven.grid(row=4,column=0)
eight=Button(root,text="8",command=lambda:get_variables(8),font=("Calibri",12))
eight.grid(row=4,column=1)
nine=Button(root,text="9",command=lambda:get_variables(9),font=("Calibri",12))
nine.grid(row=4,column=2)
cls=Button(root,text="AC",command=clear_all,font=("Calibri",12),foreground="red")
cls.grid(row=5,column=0)
zero=Button(root,text="0",command=lambda:get_variables(0),font=("Calibri",12))
zero.grid(row=5,column=1)
result=Button(root,text="=",command=calculate,font=("Calibri",12),foreground="red")
result.grid(row=5,column=2)
plus=Button(root,text="+",command=lambda:get_operation("+"),font=("Calibri",12))
plus.grid(row=2,column=3)
minus=Button(root,text="-",command=lambda:get_operation("-"),font=("Calibri",12))
minus.grid(row=3,column=3)
multiply=Button(root,text="*",command=lambda:get_operation("*"),font=("Calibri",12))
multiply.grid(row=4,column=3)
divide=Button(root,text="/",command=lambda:get_operation("/"),font=("Calibri",12))
divide.grid(row=5,column=3)
#addingnewoperations
pi=Button(root,text="pi",command=lambda:get_operation("*3.14"),font=("Calibri",12))
pi.grid(row=2,column=4)
molo=Button(root,text="%",command=lambda:get_operation("%"),font=("Calibri",12))
molo.grid(row=3,column=4)
left_bracket=Button(root,text="(",command=lambda:get_operation("("),font=("Calibri",12))
left_bracket.grid(row=4,column=4)
exp=Button(root,text="exp",command=lambda:get_operation("**"),font=("Calibri",10))
exp.grid(row=5,column=4)
##Tobeadded:
#sin,cos,log,ln
undo_button=Button(root,text="<-",command=undo,font=("Calibri",12),foreground="red")
undo_button.grid(row=2,column=5)
fact=Button(root,text="x!",command=factorial,font=("Calibri",12))
fact.grid(row=3,column=5)
right_bracket=Button(root,text=")",command=lambda:get_operation(")"),font=("Calibri",12))
right_bracket.grid(row=4,column=5)
square=Button(root,text="^2",command=lambda:get_operation("**2"),font=("Calibri",10))
square.grid(row=5,column=5)
root.mainloop()
㈢ python 编写gui界面有哪些
安装wxPython
下面是wxPython特别基础的使用方法,将以一个小程序为例来说明,它的功能是在一个文本框中输入文件名,点击open按钮,会在另一个文本框中显示其内容,可以进行修改,点击save可以保存修改。
wxPython的使用简介
创建应用程序对象:wx.App()
app=wx.App()
app.MainLoop()
窗口/框架:wx.Frame()
win=wx.Frame(None,title='example')
win.Show()
组件
按钮:wx.Button()
文本控件:wx.TextCtrl()
尺寸器的构建函数:wx.BoxSizer()
Add方法
- #coding=utf-8
- import wx
- #设置函数
- def load(event):
- f=open(filename.GetValue(),'r')
- content.SetValue(f.read())
- f.close()
- def save(event):
- f=open(filename.GetValue(),'w')
- f.write(content.GetValue())
- f.close()
- app=wx.App()
- win=wx.Frame(None,title='simple editor',size=(410,330))
- bkg=wx.Panel(win)
- loadbutton=wx.Button(bkg,label='Open')
- loadbutton.Bind(wx.EVT_BUTTON,load)
- savebutton=wx.Button(bkg,label='Save')
- savebutton.Bind(wx.EVT_BUTTON,save)
- filename=wx.TextCtrl(bkg)
- content=wx.TextCtrl(bkg,style=wx.TE_MULTILINE|wx.HSCROLL)
- hbox=wx.BoxSizer()
- hbox.Add(filename,proportion=1,flag=wx.EXPAND)
- hbox.Add(loadbutton,proportion=0,flag=wx.LEFT,border=5)
- hbox.Add(savebutton,proportion=0,flag=wx.LEFT,border=5)
- vbox=wx.BoxSizer(wx.VERTICAL)
- vbox.Add(hbox,proportion=0,flag=wx.ALL,border=5)
- vbox.Add(content,proportion=1,flag=wx.EXPAND|wx.ALL,border=5)
- bkg.SetSizer(vbox)
- win.Show()
- app.MainLoop()`
关键字label设置标签:
btn=wx.Button(win,label='open')
绑定事件:
btn.Bind(wx.EVT_BUTTON,load)
关键字style有wx.TE_MULTILINE(垂直滚动条),wx.HSXROLL(水平滚动条):
filename=wx.TextCtrl(win,style=wx.TE_MULTILINE|wx.HSXROLL)
同时我们可以在读取或者写入其内容:
filename.GetValue() filename.SetValue('string')
布局:使用尺寸器(sizer)
wx.BoxSizer的原理是创建一个箱子一样的东西,只能横着或者竖着放组件,一个一个的加进去,除了基本大小外其余空间按比例分配。加完一行行的箱子后,创建一个竖着的箱子,将这些横着的箱子(也可以是其他组件)加进去。
*背景组件:wx.Panel()
以窗口为参数构建,所有的组件依附其上,在设置完尺寸器后,使用bkg.SetSizer(box)
有一个决定它是垂直还是水平的参数(wx.HORIZONTAL水平,wx.VERTICAL垂直),默认为水平。
box=wx.BoxSizer(wx.VERTICAL)
proportion参数决定这个组件在剩余空间中的分配比例,flag参数有wx.EXPAND(会确保组件会扩展到分配的空间里),wx.LEFT,wx.RIGHT,wx.TOP,wx.BOTTOM,wx.ALL(这五个决定边框参数会应用到那个边),border参数会确定边框的大小。
完整版的源代码如下:
㈣ 可以用易语言设计gui,python写代码吗
理论上是可以的,可以嵌入一个python的解释器来被调用运行python的代码。
但是直接用python 设计GUI现写代码不是更好么。
python有多个GUI库的。
通常python自带一个简易的TKinter库,做个简单的窗口应用就够了。
wxPython是Python语言的另一套优秀的GUI图形库
PyQt是一个创建GUI应用程序的工具包。它是Python编程语言和Qt库的成功融合。Qt库是目前最强大的库之一。
㈤ 如何用python做一个显示文件目录的GUI
我以前写过一个替换exe文件的工具,右侧使用treeCtrl结构显示的目录树(显示py文件所在的目录的文件结构),拖拽文件到左侧,然后会自动替换py文件所在的目录下面的同名文件。你不会用到替换这个功能,但是目录显示已经很完善了。源码如下,由于会使用个别ICON文件(一般ICON使用系统自带的,看下面预览,exe和folder还有未知文件我自定义了一下),运行时请使用压缩包里面的py文件运行。我使用wx2.9写的,2.8估计也可以。欢迎PM。(代码太长了,不让贴 - -)
㈥ 如何使用pyQT做pythonGUI界面
首先,如果没有安装python和PyQt软件的请先直接搜索下载并安装。python是一个开源软件,因此都是可以在网上免费下载的,最新版本即可。下载完成后,我们先打开PyQt designer。
2
打开后,首先是一个默认的新建窗口界面,在这里我们就选择默认的窗口即可。
3
现在是一个完全空白的窗口。第一步我们要先把所有的设计元素都拖进这个窗口。我们先拖入一个“Label”,就是一个不可编辑的标签。
4
随后我们再拖入一个可以编辑的“Line Edit”
5
最后我们拖入最后一个元素:“PushButton”按钮,也就是平时我们所点的确定。
6
目前我们已经把所有所需要的元素都拖入了新建的窗口。对于每一个元素,我们都可以双击进行属性值的修改,此时我们仅需要双击改个名字即可
7
此时我们已经完成了一半,接下来需要对动作信号进行操作。我们需要先切入编辑信号的模式
8
此时把鼠标移动到任意元素,都会发现其变成红色,代表其被选中。
9
当我们选中pushbutton后,继续拖动鼠标指向上面的line edit,会发现由pushbutton出现一个箭头指向了line edit,代表pushbutton的动作会对line edit进行操作。
10
随即会弹出一个配置连接窗口。左边的是pushbutton的操作,我们选择clicked(),即点击pushbutton。
右边是对line edit的操作,我们选择clear(),即清楚line edit中的内容。
最后我们点击确定。
保存完成后,我们在PyQt中的操作就已经完成了。保存的文件名我们命名为test,PyQt生成的设计文件后缀是.ui。
然后我们需要把.ui文件转换成可编译的.py文件,我们需要用到PyQt提供的pyuic4命令来完成转换。这是一个DOS命令,因此我们需要调出DOS操作界面。打开开始菜单,找到附件中的运行。
在运行中输入cmd,确定后即可打开DOS界面。
在DOS界面下,我们需要定位到刚才保存的.ui文件的位置,如果是默认的话,会保存在C:\Python27\Lib\site-packages\PyQt4,定位的过程如图所示。转换成.py文件的命令是:pyuic4 test.ui -o test.py
转换命令执行后,会生成一个test.py的文件,如图所示
最后我们需要对生成的python文件加入头文件和主函数,就可以生成一个完整的GUI程序了!首先是在整个程序的最开头加入import sys,如图所示。
另外,在程序的末尾,加入如图所示的主函数代码。主函数会调用我们再PyQt里已经完成的生成元素的函数以及配置连接函数,因此我们只需要加上主函数来调用他们即可。
保存后,双击我们编辑完成的python文件,就会弹出我们刚才设计的GUI界面啦!这就是我们所完成的第一个用python语言写的GUI程序啦!
㈦ python gui 哪个简单
较为常用的GUI工具
Tkinter
可以在大多数的Unix平台下使用,
同样可以应用在Windows和Mac系统里。Tk8.0的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。
优点:是Python的内置库,无需额外下载,不存在兼容问题,且又非常详细的说明文档。
缺点:实现效果较为普通。
wxPython
是一个创建桌面GUI应用的跨平台工具包,它的主要开发者是Robin
Dunn。使用wxPython,开发者可以在Windows、Mac和多种Unix系统上开发应用程序。
优点:是一个免费的,可移植的GUI类库,用C++编写,可在Windows,Mac OS
X,GTK,X11等许多平台上使用。可用于多种语言,包括Python,Perl,Ruby等。
缺点:设计的界面美观程度和灵活性较为普通。
PyQT
是Qt框架的Python语言实现,也是最强大的GUI库之一。
PyQt提供了一个设计良好的窗口控件集合,每一个PyQt控件都对应一个Qt控件,因此PyQt的API接口与Qt的API接口很接近,但PyQt不再使用QMake系统和Q_OBJECT宏。
优点:功能非常强大,可以用PyQt5开很漂亮的界面;另外它支持可视化界面设计,对新手非常友好,可以通过拖动一些模块就可以完成一些代码才能完成的工作,就跟C++的QT是一样的。
缺点:学习起来有一定难度。
PyGtk
优点:跟PyQt一样,可以实现很不错的效果,但是稍逊于PyQt,并且同样有UI设计工具Glade。
缺点:更适合GNOME平台。
Kivy
优点:是一个开源的Python框架,用于快速开发应用,实现各种当前流行的用户界面,比如多点触摸等等,可以运行于Windows,Linux, MacOS,
Android,
iOS等当前绝大部分主流桌面/移动端操作系统。Kivy基于Python,界面文件和程序文件相互分离的设计思路,设计简洁优雅,语法易学,适合新人入门。
缺点:只有一个中文文档还是特别全面,大多数教程还是英文版本。
㈧ Python制作简单的GUI界面,实现批量修改excel文件特定行列单元格
PySimpleGUI 实例
㈨ python开发的gui漂亮吗
简单一点的,玩tkinter
你要做产品,pyQT(pySide)
其他的虽然也有一些,但靠谱的并不多.
如果说好看 当然是pyQT的好看