⑴ python如何進行GUI桌面開發有哪些不錯的庫可以推薦
Python進行GUI開發的庫其實很多,下面我簡單介紹幾個不錯橋和的庫,感興趣的朋友可以自己嘗試一下,實驗環境win10+python3.6+pycharm5.0,主要內容如下:
tkinter
這個就不用多說了,python自帶的GUI開發標准庫,對於開發小型簡單的應用來說,完全可以了,開源、跨平台,使用起來非常方便,下面我簡單測試一下,主要代碼如下:
點擊運行程序,效果如下,一個窗口一個Label標簽:
easygui
這個是基於tkinter的一個窗口GUI庫,可以快速創建窗口對話框,包括常見的登陸對話框、注冊對話框等,下面我簡單介紹一下這個庫的安裝和使用:
1.首先,安裝easygui,這個直接在cmd窗口輸入安裝命令「pipinstalleasygui」就行,如下:
2.安裝完成後,我們就可以直接編寫代碼進行測試了,主要代碼如下,非常簡單:
點擊運行這個程序,效果如下:
kivy
這是一個跨平台的GUI應用程序開發庫,可以用來開發安卓、蘋果應用,一套程序,可以處處運行,下面我簡單介紹一下這個庫的安裝和使用:
1.首先,安裝kivy,這個直接按官方教程安裝就行,如下:
2.安裝完成後,就可以直接編寫代碼進行測試了,主要代碼如下,非常簡單:
點擊運行程序,效果如下,這里你可以將其打包為手機應用,安裝到手機上:
wxpython
這也是一個免費、跨平台的PythonGUI開發庫,相比較前面的tkinter來說,功能更為強大,控制項也更多,下面我簡單介紹一下這個庫的安裝和使用:
1.首先,安裝wxpython,這個也直接在cmd窗口輸入命令「pipinstallwxpython」就行,如下:
2.安裝完成後,我們就可以直接編寫相關代碼進行測試了,主要代讓枯碼如下,非常簡單,一個簡單的文本編輯器:
點擊運行這個程序,效果如下:
pyqt
這個Qt的一個Python介面庫,藉助於Qt強大的用戶界面,Python也可以快速開發出GUI程序,組件更多,也更方便,只要你有一定的Qt基礎,很快就能掌握這個庫的使用,下面我簡單介紹一下這個庫的安裝和使用:
1.首先,安裝pyqt,這個直接在cmd窗口輸入安裝命令「pipinstallpyqt5」就行,如下,安裝需要稍微等待一會兒:
2.安裝完成後,我們就可以直接編寫代碼進行測試了,如下,一個簡坦消洞單的計算器:
點擊運行這個程序,效果如下:
至此,我們就介紹完了這5個PythonGUI庫。總的來說,這5個庫使用起來都非常不錯,如果你的應用界面比較簡單,功能要求不高,可以選擇tkinter和easygui,如果界面比較復雜,功能要求比較復雜,可以考慮使用wxpython或pyqt,當然,你也可以使用其他GUI庫,像pygame等,根據實際項目需求而定,網上也有相關資料和教程,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言。
⑵ python圖形化界面設計tkinter
python提供了多個圖形開發界面的庫,幾個常用Python GUI庫如下:
Tkinter:Tkinter模塊("Tk 介面")是Python的標准Tk GUI工具包的介面.Tk和Tkinter可以在大多數的Unix平台下使用,同樣可以應用在Windows和Macintosh系統里.,Tk8.0的後續版本可以實現本地窗口風格,並良好地運行在絕大多數平台中。
wxPython:wxPython 是一款開源軟體,是 Python 語言的一套優秀的 GUI 圖形庫,允許 Python 程序員很方便的創建完整的、功能鍵全的 GUI 用戶界面。
Jython:Jython程序可以和Java無縫集成。除了一些標准模塊,Jython使用Java的模塊。Jython幾乎擁有標準的Python中不依賴於C語言的全部模塊。比如,Jython的用戶界面將使用Swing,AWT或者SWT。Jython可以被動態或靜態地編譯成Java位元組碼。
Tkinter 編程
Tkinter 是Python的標准GUI庫。Python使用Tkinter可以快速的創建GUI應用程序。
由於Tkinter是內置到python的安裝包中、只要安裝好Python之後就能import Tkinter庫、而且IDLE也是用Tkinter編寫而成、對於簡單的圖形界面Tkinter還是能應付自如。
創建一個GUI程序
1、導入Tkinter模塊
2、創建控制項
3、指定這個控制項的master, 即這個控制項屬於哪一個
4、告訴GM(geometry manager)有一個控制項產生了。
實例:
Tkinter 組件
Tkinter的提供各種控制項,如按鈕,標簽和文本框,一個GUI應用程序中使用。這些控制項通常被稱為控制項或者部件。
目前有15種Tkinter的部件。我們提出這些部件以及一個簡短的介紹,在下面的表:
控制項
描述
Button 按鈕控制項;在程序中顯示按鈕。
Canvas 畫布控制項;顯示圖形元素如線條或文本
Checkbutton 多選框控制項;用於在程序中提供多項選擇框
Entry 輸入控制項;用於顯示簡單的文本內容
Frame 框架控制項;在屏幕上顯示一個矩形區域,多用來作為容器
Label 標簽控制項;可以顯示文本和點陣圖
Listbox 列表框控制項;在Listbox窗口小部件是用來顯示一個字元串列表給用戶
Menubutton 菜單按鈕控制項,由於顯示菜單項。
Menu 菜單控制項;顯示菜單欄,下拉菜單和彈出菜單
Message 消息控制項;用來顯示多行文本,與label比較類似
Radiobutton 單選按鈕控制項;顯示一個單選的按鈕狀態
Scale 范圍控制項;顯示一個數值刻度,為輸出限定范圍的數字區間
Scrollbar 滾動條控制項,當內容超過可視化區域時使用,如列表框。.
Text 文本控制項;用於顯示多行文本
Toplevel 容器控制項;用來提供一個單獨的對話框,和Frame比較類似
Spinbox 輸入控制項;與Entry類似,但是可以指定輸入范圍值
PanedWindow PanedWindow是一個窗口布局管理的插件,可以包含一個或者多個子控制項。
LabelFrame labelframe 是一個簡單的容器控制項。常用與復雜的窗口布局。
tkMessageBox 用於顯示你應用程序的消息框。
標准屬性
標准屬性也就是所有控制項的共同屬性,如大小,字體和顏色等等。
屬性 描述
Dimension 控制項大小;
Color 控制項顏色;
Font 控制項字體;
Anchor 錨點;
Relief 控制項樣式;
Bitmap 點陣圖;
Cursor 游標;
幾何管理
Tkinter控制項有特定的幾何狀態管理方法,管理整個控制項區域組織,一下是Tkinter公開的幾何管理類:包、網格、位置
幾何方法 描述
pack() 包裝;
grid() 網格
place() 位置
⑶ python做界面的一個新思路(初始篇)
python做界面我首先想到的是pyqt5,但是筆者之前基本是用wpf做界面,再用其他的做界面都有點不暢快的感覺。直接用到了HTML + CSS + js。隨著前端技術的快速發展,如VUE,AUI這類框架的興起,做個炫酷的頁面,遠比後端做個界面要快捷方便的多。
但是HTML + CSS + js是運行在瀏覽器里的,這個系列文章就是要打破python和前端的壁壘,讓它們攜手打造桌面程序。
那麼這個心思路就是,利用pyqt5的QtWebEngineWidgets和QtWebChannel來做媒介,
python完成後台功能,HTML + CSS + js完成全部的界面功能。
界面需要python功能時,js方便的調用python函數並獲取返回值。這樣各自完成擅長部分,想想都有點小激動呢。
那這樣是否靠譜呢?
根據筆者的目前嘗試,感覺還是很靠譜的:
1 運行不卡頓,相對於純的pyqt我感覺這種界面運行起來更流暢。
2 QtWebEngineWidgets移植V8引擎,基本和谷歌的效果是一樣的。Vue這樣的框架也可以直接引用。
講QtWebEngineWidgets的文章有很多,我學習這個時候看到網上的很多文章也和受益,但是,基本都是講的一樣的,沒有深挖。
首先,QtWebEngineWidgets和QtWebChannel是可以實現雙向交互的,但是,在應用的過程中我發現,python調用js會比較簡單,有現成的語法可用,而且傳輸過程中有的數據的類型都不用轉換。而且能獲取到js的返回值。
而js調用python就復雜一點,傳遞類型也只能字元串和int(目前我測試的結果是這樣),目前網上大多的例子就是基於共享屬性這個概念,js是可以調用python函數,但是沒法獲取到返回值。
但是應用中你就會發現,基本都是js調用python,比如界面中的按鈕點擊後需要執行數據分析,然後將結果渲染在界面上。那麼過程就是js調用py並獲取返回值。
今天的內容就是這些,喜歡的可以點贊支持,如果點贊較多,關於這個知識點我將繼續做一期有趣的內容。謝謝!
⑷ Python GUI項目實戰(二)主窗體的界面設計與實現
上一節我們介紹了登錄窗體的GUI設計與功能實現,用戶的賬號和密碼校驗完成後應當跳轉到主窗體內容,這一節我們將具體介紹主窗體界面的設計與功能實現!
我們新建一個900x640的窗口,頂部加入圖片,下面主體部分創建兩個Panedwindow容器,左邊添加按鈕,右邊作為TreeView顯示界面;
顯示效果:(注意:tkinter在Mac上Panedwindow不支持修改前景色背景色)
在右邊的Pannedwindow容器中,添加一個LabelFrame容器作為查詢區域,在LabelFrame容器中添加一系列的Label、Entry、Button控制項,可以輸入學號、姓名、電話、身份證、查詢、和顯示全部信息:
顯示效果:
創建控制項、設置對齊方式和每個列的標題
顯示效果:
登錄成功後,在頂部顯示用戶姓名和登錄時間,用戶姓名是怎麼來的?是我們在登錄窗口輸入的,所以這就涉及到了跨窗體數據的傳遞。這一點非常重要!
登錄窗體(登錄信息)==>主窗體
傳遞的基本方式:構造函數
在主窗體的構造函數中添加一個接收參數 current_user ,在登錄窗體載入新窗體時將參數傳遞進去;
但是我們登錄窗體的登錄函數 login() 中用戶名的變數 user 是局部變數,函數調用完了之後就變數就沒有了,那怎麼調用呢?
我們需要在登錄窗體的構造函數中定義全局變數:
為了獲取用戶登錄的時間,我們定義一個獲取當前時間的方法:
然後在載入主窗體時將參數 self.user 和 self.get_now_time() 作為參數傳遞進去
另一邊,我們在主窗體中,在構造函數中添加全局變數
之後,我們在Top_banner中通過標簽將user信息展示出來:
這樣主窗口就會顯示通過登錄窗口登錄的用戶名(首字母自動轉大寫)和登錄時間:
效果演示:
然後我們在構造方法中把這個函數寫入,以實現自動把學生信息寫入到all_student_list中
文件中讀取到的學生信息存儲到all_student_list列表,以此作為參數傳入載入TreeView的方法中;
在構造方法中調用該方法,自動把所有學生信息載入到TreeView中
運行效果:
這一節我們實現了主窗體的搭建,從界面的布局到TreeView載入全部學生信息。學生數據如此之多,如果我們想精確查看具體某個學生的信息該怎麼做呢?下一講,我們將實現學生信息的查詢功能,敬請期待吧~
⑸ python可視化界面怎麼做
這個非常簡單,PyQt就可以輕松實現,一個基於Qt的介麵包,可以直接拖拽控制項設計UI界面,下面我簡單介紹一下這個包的安裝和使用,感興趣的朋友可以自己嘗試一下:
1.首先,安早坦裝PyQt模塊,這個直接在cmd窗口輸入命令「pipinstallpyqt5」就行,如下,整個模塊比較大,下載過程需要等待一會兒,保持聯網:
2.安裝完成後,我們就可以直接打開Qt自帶的QtDesigner設計師設計界面了,這里默認會安裝到site-packages->PyQt5->Qt->bin目錄,打開後的界面如下,可以直接新建對話框等窗口,所有的控制項都可以直接拖拽,編輯屬性,非常方便:
3.這里我簡單的設計了一個登錄窗口,2個輸入框和2個按鈕,如下,這里可以直接使用QSS對界面進行美化(設置styleSheet屬性即可),類似網頁的CSS,如果你有一定的前端基礎,那麼美化起來會非常容易:
設計完成後,還只是一個ui文件,不是現成的Python代碼,還需要藉助pyuic5工具(也在bin目錄下)才能將ui文件轉化為Python代碼,切換到ui文件所在目錄,輸入命令「pyuic5-ologin.pylogin.ui」即可(這里替換成你的ui文件),轉化成功後的Python代碼如下(部分截圖):
還需要在最下面添加一個main函數,創建上面Ui_Form類對象顯示窗口即可,如下:
最後點擊運行程序,效果如下,和剛才設計的界面效果一模一樣:
至此,我們就完成了利用Python的PyQt模塊直接拖拽控制項來設計UI界面。總的來說,整個過程非常簡單,只要你有一定的Python基礎,熟悉一下操作過桐薯程,很快就能掌握的,當然,還有許多其他UI開發模塊,像tkinter,wxPython,Eric6等,也都非常不錯,網上也有相關教程和資料,介紹的非常詳細,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留局睜者言進行補充。
⑹ python如何製作一個簡單界面
使用Tkinter庫
fromtkinterimport*
win=Tk()
#win.title('googlesearchengineoptimal')
win.title('一個測試程序')
#thetoplevelofthewindow
defreport(text):
#print(v.get())
entry2=Label(root,text=v.get())
entry2.grid(row=1,column=1)
root=Frame(win)
root.pack()
label1=Label(root,text='d取值手動滑動條',width=25)
label1.pack(side=LEFT)
label1.grid(row=0,column=0)
v=StringVar()
scl=Scale(root,from_=0,to=1,tickinterval=0.5,resolution=0.01,orient='horizontal',variable=v,sliderlength=10,width=40,length=200,command=report)
scl.grid(row=0,column=1)
print(scl.get())
label2=Label(root,text='d當前取值:',height=10)
label2.grid(row=1,column=0)
label3=Label(root,text='PR=d*GPR+10*(1-d)*FPR:d越大則排序考慮人氣越多。',height=10)
label3.grid(row=2)
root.mainloop()
⑺ python如何做界面
PyQt,一個基於Qt的Python介麵包,可以直接使用Qt的控制項,還可以使用QSS進行界面美化,下面我簡單介紹一下這個包的安裝和使用,實驗環境Win7+Python3.6+PyCharm5.0,主要內容如下:
1.首先,安裝PyQt,這個直接在cmd窗口輸入命令「pip install pyqt5」就行,如下,由於安裝包比較大,所以需要等待一會兒: