導航:首頁 > 編程語言 > pythongui項目

pythongui項目

發布時間:2022-08-29 11:25:26

python編寫GUI

你在構造函數中少創建了posCtrl對象,所以當事件發生時會提示沒有posCtrl對象,源代碼應該是這個吧:
1 #!/bin/env python
2 import wx
3 class MyFrame(wx.Frame):
4
5 def __init__(self):
6 wx.Frame.__init__(self, None, -1, "My Frame", size=(300, 300))
7 panel = wx.Panel(self, -1)
8 panel.Bind(wx.EVT_MOTION, self.OnMove)
9 wx.StaticText(panel, -1, "Pos:", pos=(10, 12))
10 self.posCtrl = wx.TextCtrl(panel, -1, "", pos=(40, 10))
11
12 def OnMove(self, event):
13 pos = event.GetPosition()
14 self.posCtrl.SetValue("%s, %s" % (pos.x, pos.y))
15
16 if __name__ == '__main__':
17 app = wx.PySimpleApp()
18 frame = MyFrame()
19 frame.Show(True)
20 app.MainLoop()

參考:http://czug.org/python/wxpythoninaction/ch01.rst

Ⅱ Python GUI庫大匯總

所有程序都是基於命令行的,這些程序可能只有一些「專業」的計算機人士才會使用。例如前面編寫的五子棋等程序,恐怕只有程序員自己才願意玩這么「糟糕」的游戲,很少有最終用戶願意對著黑乎乎的命令行界面敲命令。
相反,如果為程序提供直觀的圖形用戶界面(Graphics User Interface, GUI),最終用戶通過拖動滑鼠、單擊等動作就可以操作整個應用,這樣的應用程序就會很受政迎(實際上,Windows 之所以廣為人知,其最初的吸引力就是來自它所提供的圖形用戶界面)。
作為一個程序設計者,必須優先考慮用戶的感受,一定要讓用戶感到「爽」,程序才會被需要、被使用,這樣的程序才有價值。
在真正開始介紹 Python 圖形界面編程之前,首先簡單介紹一下 Python 的圖形用戶界面庫。
1) PyGObject
PyGObject 庫為基於 GObject 的 C 函數庫提供了內省綁定,這些庫可以支持 GTK+3 圖形界面工具集,因此時 GObject 提供了豐富的圖形界面組件。
2) PyGTK
PyGTK 基於老版本的 GTK+2 的庫提供綁定,藉助於底層 GTK+2 所提供的各種可視化元素和組件,同樣可以開發出在 GNOME 桌面系統上運行的軟體,因此它主要適用於 Linux/UNIX 系統。PyGTK 對 GTK+2 的 C 語言進行了簡單封裝,提供了面向對象的編程介面。其官方網址是http://www.pygtk.org/。
3) PyQt
PyQt 是 Python 編程語言和 Qt 庫的成功融合。Qt 本身是一個擴展的 C++ GUI 應用開發框架,Qt 可以在 UNIX、Windows 和 Mac OS X 上完美運行,因此 PyQt 是建立在 Qt 基礎上的 Python 包裝。所以 PyQt 也能跨平台使用。
4) PySide
PySide 是由 Nokia 提供的對 Qt 工具集的新的包裝庫,目前成熟度不如 PyQt。
5) wxPython
wxPython 是一個跨平台的 GUI 工具集,wxPython 以流行的 wxWidgets(原名 wxWindows)為基礎,提供了良好的跨平台外觀。簡單來說,wxPython 在 Windows上調用 Windows 的本地組件、在 Mac OS 上調用 Mac OS X 的本地組件、在 Linux 上調用 Linux 的本地組件,這樣可以讓 GUI 程序在不同的平台上顯示平台對應的風格。wxPython 是一個非常流行的跨平台的 GUI 庫。
如果讀者有需要,則完全可以選擇上面這些 Python GUI 庫來開發圖形用戶界面。如果考慮開發跨平台的圖形用戶界面,則推薦使用 PyQt 或 wsPython。

Ⅲ Python如何進行GUI桌面開發有哪些不錯的庫可以推薦

Python進行GUI開發的庫其實很多,下面我簡單介紹幾個不錯的庫,感興趣的朋友可以自己嘗試一下,實驗環境win10+python3.6+pycharm5.0,主要內容如下:
tkinter
這個就不用多說了,python自帶的GUI開發標准庫,對於開發小型簡單的應用來說,完全可以了,開源、跨平台,使用起來非常方便,下面我簡單測試一下,主要代碼如下:

點擊運行程序,效果如下,一個窗口一個Label標簽:

easygui
這個是基於tkinter的一個窗口GUI庫,可以快速創建窗口對話框,包括常見的登陸對話框、注冊對話框等,下面我簡單介紹一下這個庫的安裝和使用:

1.首先,安裝easygui,這個直接在cmd窗口輸入安裝命令「pip install easygui」就行,如下:

2.安裝完成後,我們就可以直接編寫代碼進行測試了,主要代碼如下,非常簡單:

點擊運行這個程序,效果如下:

kivy
這是一個跨平台的GUI應用程序開發庫,可以用來開發安卓、蘋果應用,一套程序,可以處處運行,下面我簡單介紹一下這個庫的安裝和使用:

1.首先,安裝kivy,這個直接按官方教程安裝就行,如下:

2.安裝完成後,就可以直接編寫代碼進行測試了,主要代碼如下,非常簡單:

點擊運行程序,效果如下,這里你可以將其打包為手機應用,安裝到手機上:

wxpython
這也是一個免費、跨平台的Python GUI開發庫,相比較前面的tkinter來說,功能更為強大,控制項也更多,下面我簡單介紹一下這個庫的安裝和使用:

1.首先,安裝wxpython,這個也直接在cmd窗口輸入命令「pip install wxpython」就行,如下:

2.安裝完成後,我們就可以直接編寫相關代碼進行測試了,主要代碼如下,非常簡單,一個簡單的文本編輯器:

點擊運行這個程序,效果如下:

pyqt
這個Qt的一個Python介面庫,藉助於Qt強大的用戶界面,Python也可以快速開發出GUI程序,組件更多,也更方便,只要你有一定的Qt基礎,很快就能掌握這個庫的使用,下面我簡單介紹一下這個庫的安裝和使用:

1.首先,安裝pyqt,這個直接在cmd窗口輸入安裝命令「pip install pyqt5」就行,如下,安裝需要稍微等待一會兒:

2.安裝完成後,我們就可以直接編寫代碼進行測試了,如下,一個簡單的計算器:

點擊運行這個程序,效果如下:

至此,我們就介紹完了這5個Python GUI庫。總的來說,這5個庫使用起來都非常不錯,如果你的應用界面比較簡單,功能要求不高,可以選擇tkinter和easygui,如果界面比較復雜,功能要求比較復雜,可以考慮使用wxpython或pyqt,當然,你也可以使用其他GUI庫,像pygame等,根據實際項目需求而定,網上也有相關資料和教程,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言。

python簡單的GUI界面化的有內置的模塊tkinter相對來說簡單,但是做出來的界面也簡單。目前市場上用的多的還是QT吧!python有的QT是pyqt5當前使用比較多。如果用的pycharm開發工具也可以進行配置進行開發,最好的用eric專門開發PYQT的軟體。

Ⅳ 八款常用的 Python GUI 開發框架推薦

作為Python開發者,你遲早都會用到圖形用戶界面來開發應用。本文將推薦一些 Python GUI 框架,希望對大家有所幫助。

Python 的 UI 開發工具包 Kivy

https://www.oschina.net/p/kivy

Kivy是一個開源工具包能夠讓使用相同源代碼創建的程序能跨平台運行。它主要關注創新型用戶界面開發,如:多點觸摸應用程序。Kivy還提供一個多點觸摸滑鼠模擬器。當前支持的平台包括:Linux、Windows、Mac OS X和Android。

Kivy擁有能夠處理動畫、緩存、手勢、繪圖等功能。它還內置許多用戶界面控制項如:按紐、攝影機、表格、Slider和樹形控制項等。

Python 的 GUI 開發工具 Flexx

https://www.oschina.net/p/flexx

Flexx 是一個純 Python 工具包,用來創建圖形化界面應用程序。其使用 Web 技術進行界面的渲染。你可以用 Flexx 來創建桌面應用,同時也可以導出一個應用到獨立的 HTML 文檔。因為使用純 Python 開發,所以 Flexx 是跨平台的。只需要有 Python 和瀏覽器就可以運行。如果是使用桌面模式運行,推薦使用 Firefox 。

Qt 庫的 Python 綁定 PyQt

https://www.oschina.net/p/pyqt

PyQt是Qt庫的Python版本。PyQt3支持Qt1到Qt3。 PyQt4支持Qt4。它的首次發布也是在1998年,但是當時它叫 PyKDE,因為開始的時候SIP和PyQt沒有分開。PyQt是用SIP寫的。PyQt 提供 GPL版和商業版。

Python圖形開發包 wxPython

https://www.oschina.net/p/wxpython

wxPython 是 Python 語言的一套優秀的 GUI 圖形庫,允許 Python 程序員很方便的創建完整的、功能鍵全的 GUI 用戶界面。 wxPython 是作為優秀的跨平台 GUI 庫 wxWidgets 的 Python 封裝和 Python 模塊的方式提供給用戶的。

就如同Python和wxWidgets一樣,wxPython也是一款開源軟體,並且具有非常優秀的跨平台能力,能夠運行在32位windows、絕大多數的Unix或類Unix系統、Macintosh OS X上。

Tk 圖形用戶界面 Tkinter

https://www.oschina.net/p/tkinter

Tkinter(也叫Tk介面)是Tk圖形用戶界面工具包標準的Python介面。Tk是一個輕量級的跨平台圖形用戶界面(GUI)開發工具。Tk和Tkinter可以運行在大多數的Unix平台、Windows、和Macintosh系統。

Tkinter 由一定數量的模塊組成。Tkinter位於一個名為_tkinter(較早的版本名為tkinter)的二進制模塊中 。Tkinter包含了對Tk的低 級介面模塊,低級介面並不會被應用級程序員直接使用,通常是一個共享庫(或DLL),但是在一些情況下它也被Python解釋器靜態鏈接。

Pywin32

https://www.oschina.net/p/pywin32

Windows Pywin32允許你像VC一樣的形式來使用PYTHON開發win32應用。代碼風格可以類似win32 sdk,也可以類似MFC,由你選擇。如果你仍不放棄vc一樣的代碼過程在python下,那麼這就是一個不錯的選擇。

Python 圖形界面開發包 PyGTK

https://www.oschina.net/p/pygtk

PyGTK讓你用Python輕松創建具有圖形用戶界面的程序.底層的GTK+提供了各式的可視元素和功能,如果需要,你能開發在GNOME桌面系統運行的功能完整的軟體.

PyGTK真正具有跨平台性,它能不加修改地,穩定運行各種操作系統之上,如Linux,Windows,MacOS等.除了簡單易用和快速的原型開發能力外,PyGTK還有一流的處理本地化語言的獨特功能.

用python快速開發絢麗桌面程序 pyui4win

https://www.oschina.net/p/py-ui4win

pyui4win是一個開源的採用自繪技術的界面庫。支持C++和python。用它可以很容易實現QQ和360安全衛士這樣的絢麗界面。而且,pyui4win有所見即所得界面設計器,讓C++開發人員和python開發人員直接用設計工具設計界面,而不用關心界面如何生成和運行,可以顯著縮短界面開發時間。在pyui4win中,界面甚至可以完全交給美工去處理,開發人員可以只負責處理業務邏輯,把開發人員徹底從繁雜的界面處理中解放出來。

以上就是為大家分享的八款常用的python GUI開發框架推薦,希望能對你有幫助。更多python學習資料,可以關注「武漢千鋒」微信公眾號。

Ⅳ python 編寫gui界面有哪些

安裝wxPython

下面是wxPython特別基礎的使用方法,將以一個小程序為例來說明,它的功能是在一個文本框中輸入文件名,點擊open按鈕,會在另一個文本框中顯示其內容,可以進行修改,點擊save可以保存修改。

wxPython的使用簡介

創建應用程序對象:wx.App()

app=wx.App()
app.MainLoop()

窗口/框架:wx.Frame()

win=wx.Frame(None,title='example')
win.Show()

組件

Ⅵ python開發的gui漂亮嗎

簡單一點的,玩tkinter

你要做產品,pyQT(pySide)

其他的雖然也有一些,但靠譜的並不多.

如果說好看 當然是pyQT的好看

Ⅶ 用python寫一個GUI安全生產天數顯示程序

可以
python是目前比較火的編程語言,這是無可置疑的,在未來的發展前景也是廣闊的,可以從事的工作崗位很多,所以學習python相對於來說是比較好就業的,但是也要掌握好的python技能才能獲得高薪啊
python作為人工智慧的黃金語言,選擇人工智慧作為就業方向是理所當然的,而且就業前景好,薪資普遍較高,拉勾網上,人工智慧工程師的招聘起薪普遍在20K-35K,當然,如果是初級工程師,起薪也已經超過了12500元/月。
我們目前正處於大數據時代,python這門語言在大數據上比Java更加有效率,大數據雖然難學,但是python可以更好地和大數據對接,用python做大數據的薪資也至少是20K以上了,大數據持續火爆,未來做大數據工程師,薪資還將逐漸上漲。

Ⅷ Python開發GUI應用程序,用哪個設計工具好

有很多可以用,最流行的幾個是:

  1. tkinter, python 自帶的,跨平台 GUI包, 你可以去優酷(莫煩 tkinter) 學習下怎麼用 tkinter.

  2. pyqt, 這個是可以用起來簡單一點,但是學起來可能要花點時間.

  3. Kivy, 這個還可以編安卓的哦.

Ⅸ 如何學習 Python GUI 編程

Python常用的GUI框架有PyQT、PyGTK、wxPython。
你可以選擇其中一個,找本書或者網路上的教程,
邊學邊做一個小項目。

Ⅹ 如何用 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()

閱讀全文

與pythongui項目相關的資料

熱點內容
卸載聯想app哪個好 瀏覽:719
php文字轉圖片 瀏覽:328
豆客後台怎麼加密碼 瀏覽:574
jpg轉換pdf破解版 瀏覽:978
php基礎書籍推薦 瀏覽:775
伺服器與外網不通如何驗證 瀏覽:351
電子版是不是就是文件夾 瀏覽:50
游戲屬性文件加密 瀏覽:462
如何讓安卓手機桌面圖標下移 瀏覽:528
ubuntuphp5環境搭建 瀏覽:99
賭癮解壓視頻 瀏覽:917
晉城移動dns伺服器地址 瀏覽:294
php開源文庫系統 瀏覽:134
android記事本源碼 瀏覽:407
安卓11小游戲怎麼玩法 瀏覽:190
gif有損壓縮 瀏覽:937
windows下安裝linux命令操作 瀏覽:843
米家app怎麼設置進門亮燈 瀏覽:652
任我行伺服器為什麼會影響截圖 瀏覽:296
安卓留言板怎麼刪除 瀏覽:18