當前位置:首頁 » 編程語言 » python做gui

python做gui

發布時間: 2023-04-03 21:50:08

㈠ 郁悶於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()

  • 關鍵字label設置標簽:
    btn=wx.Button(win,label='open')

    綁定事件:
    btn.Bind(wx.EVT_BUTTON,load)

  • 文本控制項:wx.TextCtrl()

  • 關鍵字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.BoxSizer()

  • 有一個決定它是垂直還是水平的參數(wx.HORIZONTAL水平,wx.VERTICAL垂直),默認為水平。
    box=wx.BoxSizer(wx.VERTICAL)

  • Add方法

  • proportion參數決定這個組件在剩餘空間中的分配比例,flag參數有wx.EXPAND(會確保組件會擴展到分配的空間里),wx.LEFT,wx.RIGHT,wx.TOP,wx.BOTTOM,wx.ALL(這五個決定邊框參數會應用到那個邊),border參數會確定邊框的大小。

    完整版的源代碼如下:

  • #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()`


㈣ 可以用易語言設計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的好看

熱點內容
python極客項目編程 發布:2024-11-02 16:38:49 瀏覽:245
mysql資料庫名查看 發布:2024-11-02 16:37:38 瀏覽:702
怎麼存儲液氮 發布:2024-11-02 16:29:20 瀏覽:381
順序存儲文件 發布:2024-11-02 16:26:16 瀏覽:795
python266 發布:2024-11-02 16:22:06 瀏覽:364
計算機如何設置雙密碼 發布:2024-11-02 15:38:18 瀏覽:929
超高速存儲 發布:2024-11-02 15:23:30 瀏覽:898
javades加密文件 發布:2024-11-02 15:14:15 瀏覽:534
讀卡器怎麼看配置 發布:2024-11-02 15:14:10 瀏覽:459
安卓手機如何更改屏幕常亮 發布:2024-11-02 15:14:02 瀏覽:605