摘要:將程序包裝在界面里,可以將輸入通過多種途徑如文本框彈出路徑選擇等輸入到程序里。將輸出通過文本框顯示出來將執(zhí)行信息如如報錯信息運(yùn)行進(jìn)度通過文本框或進(jìn)度條顯示出來文章安排先介紹安裝和配合的使用。
作為一個程序的開發(fā)者,我們僅僅需要在相應(yīng)路徑通過命令行就可執(zhí)行那個程序。但是,不懂行的人不理解這個黑框框的東西,陌生領(lǐng)域任何人都沒有安全感,所以他們是拒絕接受一個項目僅僅只是通過一個黑框框來執(zhí)行的。所以GUI窗口呼之而出。
“Life is short (You need Python)”
-- Bruce Eckel
python作為一門快速開發(fā)語言,其GUI模塊自然也不例外。用python來做GUI的模塊、包有:
Tk、wxWidgets、Qt、GTK,本篇文章是學(xué)習(xí)的是用Qt的PyQt4.(PyQt5只適合Python3.0以上)
本篇文章這樣安排:
1:簡介
2:PyQt4的安裝,配合Pycharm的安裝
3:PyQt4一定要知道的基礎(chǔ)
4:找到你需要的界面配圖和代碼
5:深入一個復(fù)雜的例子
6:總結(jié)
PyQt是用來創(chuàng)建GUI應(yīng)用程序的工具包,它把Python和成功的Qt綁定在一起,Qt庫是這個星球上最強(qiáng)大的庫之一,如果不是最強(qiáng)大的話。PyQt的官方網(wǎng)站是 www.riverbankcomputing.co.uk , 它由 Phil Thompson 開發(fā)。
將程序包裝在GUI界面里,可以:
將輸入通過多種途徑如文本框、彈出路徑選擇等輸入到程序里。
將輸出通過文本框顯示出來
將執(zhí)行信息如如報錯信息、運(yùn)行進(jìn)度通過文本框或進(jìn)度條顯示出來
1.2.文章安排先介紹PyQt4安裝和配合Pycharm的使用。
或簡要或詳細(xì)敘述PyQt的必須知道的知識,只有了解、理解、掌握這些才能看懂任何一個PyQt程序代碼。
配合大量現(xiàn)成的GUI圖形界面的圖片,你可以與自己腦子里的效果圖對應(yīng),迅速找到你需要使用眾多PyQt類中的哪一個,并且有實現(xiàn)代碼(引用的)。向下面這樣,通過鏈接,快速找到想要的代碼。
代碼地址
我認(rèn)為這非常重要,因為作為一個初學(xué)者,我們常常遇到這樣的困境:
我大概知道我要完成哪些功能,但我不知道怎么畫出來。
我能畫出來,但我不知道調(diào)用什么類去實現(xiàn),甚至在GOOGLE上找這個類的時候,都不知道用什>么詞匯去描述你的界面,略尷尬。
深入一個例子,調(diào)用自己的腳本配合GUI界面,寫出一個可以展示的程序。
總結(jié)一下遇到的坑
1.3.一些好的資源官網(wǎng)文檔:http://pyqt.sourceforge.net/Docs/PyQt4/
也是官方文檔PyQt4 APIs http://pyqt.sourceforge.net/Docs/PyQt4/modules.html
zetcode:良心文檔每行代碼都給解釋。http://zetcode.com/gui/pyqt4/
zetcode中文版:http://www.qaulau.com/books/PyQt4_Tutorial/index.html
PyQt4 精彩實例分析:受益很多,本文第4節(jié)基本靠它了。http://www.linuxidc.com/Linux/2012-06/63652.htm
一個不錯的博客文章:http://blog.csdn.net/a359680405/article/details/45096185
QT參考文檔:玩到最后不得不看QT了:http://www.kuqin.com/qtdocument/
QT designer文檔:http://doc.qt.io/qt-4.8/designer-manual.html
基本引用了以上資源里面的文章,特別是來源:Linux社區(qū) 作者:chumpklutz和來源:CSDN 作者:翻滾吧挨踢男
2.PyQt4的安裝,配合Pycharm的安裝基本參考了PyQt5+python3+pycharm開發(fā)環(huán)境配置
首先安裝分為兩個部分:PyQt包和Pycharm設(shè)置
PyQt4包:
下載地址
注意:32位的還是64位的,Python2還是python3
然后將安裝路徑放入系統(tǒng)路徑中去:
變量名:QT_QPA_PLATFORM_PLUGIN_PATH
變量值:C:Python34Libsite-packagesPyQt4plugins
Pycharm配置:
步驟如下文:
http://cristalspring.blog.163.com/blog/static/14432742520156510264082/
3.1.1 先在Qt designer里面設(shè)計個大概,在Pycharm里面通過通過PyUIC將Qt designer里面的example.ui文件轉(zhuǎn)為example.py文件, 之后就可以直接使用example.py文件了。 3.1.2 注意example.py只是圖形界面靜態(tài)布局的程序,你還要把你的腳本程序script.py結(jié)合進(jìn)入,所以還需要一個myWindow.py程序 用來連接example.py和script.py.也就是說在myWindow.py中import exampy;import script.py. 3.1.3 myWindow.py中通常包括對圖形布局的一些改動和結(jié)合、添加按鈕動作、等等使圖形界面"活"起來的方法。3.2.步驟及相關(guān)知識
對于這樣一個界面:
第一步:設(shè)計好界面的草圖
這里推薦使用Balsamiq Mockups 3
設(shè)計如下:
第二步:實現(xiàn)這個草圖
界面有三種可以選擇Dialog、Widget、QMainWindow至于選哪種詳細(xì)可以見這里:
http://www.qtcentre.org/threads/3465-Difference-between-Dialog-and-widget-and-QMainWindow
http://stackoverflow.com/questions/3298792/whats-the-difference-between-qmainwindow-qwidget-and-qdialog
這里我們使用Widget,其它兩種都是由之而來
在上圖的草圖中,主要有標(biāo)簽、輸入框和按鈕三種元素,怎樣去用代碼實現(xiàn)呢?
打開Qt designer,它位于PyQt4的安裝包中,具體位置在D:Program FilesPythonLibsite-packagesPyQt4
打開后如下圖
可以在左側(cè)選擇相應(yīng)的按鈕,僅僅通過拖拽完成草圖界面。
然后通過Pycharm轉(zhuǎn)為.py文件,在Pycharm中單擊該.ui文件,然后點擊圖中選項
主要類介紹:QtGui Module
主要有兩個包:
QtCore
QtCore 模塊包括了核心的非GUI功能,該模塊用來對時間、文件、目錄、各種數(shù)據(jù)類型、流、網(wǎng)址、媒體類型、線程或進(jìn)程進(jìn)行處理。
QtGui
QtGui 模塊包括圖形化窗口組件和及相關(guān)類。包括如按鈕、窗體、狀態(tài)欄、滑塊、位圖、顏色、字體等等。
總的來說:QtGui負(fù)責(zé)長得好看,QtCore負(fù)責(zé)有用。
QtGui舉例:
# simple.py import sys from PyQt4 import QtGui app = QtGui.QApplication(sys.argv) widget = QtGui.QWidget() widget.resize(250, 150) widget.setWindowTitle("simple") widget.show() sys.exit(app.exec_()) 上面的代碼顯示在屏幕上顯示一個小窗體。 import sys from PyQt4 import QtGui 我們在這里進(jìn)行一些必要的import操作?;镜腉UI組件在 QtGui 模塊中。 app = QtGui.QApplication(sys.argv) 每個PyQt4程序必須創(chuàng)建一個application對象,application在 QtGui 模塊中, sys.argv 參數(shù)是命令行中的一組參數(shù)。Python腳本可以在shell中運(yùn)行,這樣,我們可以控制腳本的啟動。 widget = QtGui.QWidget() QWidget 窗口組件是PyQt4中所有用戶界面對象的基類,我們使用 QWidget 默認(rèn)的構(gòu)造,沒有父親。沒有父親的窗口組件稱為窗體。 widget.resize(250, 150) resize() 方法調(diào)整了 widget 的大小,寬250像素,高150像素。 widget.setWindowTitle("simple") 這里我們?yōu)榇翱谠O(shè)置了標(biāo)題,標(biāo)題顯示在標(biāo)題欄上。 widget.show() show() 方法將窗口呈現(xiàn)在屏幕上。 sys.exit(app.exec_()) 最后,我們輸入應(yīng)用程序的主事件循環(huán),事件處理從這里開始。主事件循環(huán)從窗口系統(tǒng)接收事件并分發(fā)到應(yīng)用程序的窗口組件上。當(dāng)主事件循環(huán)結(jié)束,如果我們調(diào)用 exit() 方法或者主窗口組件被銷毀。 sys.exit() 方法確保干凈的退出。將通知環(huán)境應(yīng)用程序是如何結(jié)束的。
QtCore舉例:
import PyQt4.QtGui import * from PyQt4.QtCore import * import sys app=QtGui.QApplication(sys.argv) b=QPushButton("Hello Kitty!") b.show() app.connect(b,SIGNAL("clicked()"),app,SLOT("quit()")) app.exec_() 第1行導(dǎo)入PyQt4.QtGui的所有類及模塊,包括QApplication,所有Qt圖形化應(yīng)用程序都必須包含此文件,它包含了Qt圖形化應(yīng)用程序的各種資源,基本設(shè)置,控制流以及事件處理等。 第5行新創(chuàng)建了一個QApplication對象,每個Qt應(yīng)用程序都必須有且只有一個QApplication對象,采用sys.argv作為參數(shù),便于程序處理命令行參數(shù)。 第6行創(chuàng)建了一個QPushButton對象,并設(shè)置它的顯示文本為“Hello Kitty!”,由于此處并沒有指定按鈕的父窗體,因此以自己作為主窗口。 第7行調(diào)用show()方法,顯示此按鈕??丶粍?chuàng)建時,默認(rèn)是不顯示的,必須調(diào)用show()函數(shù)來顯示它。 第8行的connect方法是Qt最重要的特征,即信號與槽的機(jī)制。當(dāng)按鈕被按下則觸發(fā)clicked信號,與之相連的QApplication對象的槽quit()響應(yīng)按鈕單擊信號,執(zhí)行退出應(yīng)用程序的操作。關(guān)于信號與槽機(jī)制在本實例最后將進(jìn)行詳細(xì)的分析。 最后調(diào)用QApplication的exec_()方法,程序進(jìn)入消息循環(huán),等待可能輸入進(jìn)行響應(yīng)。Qt完成事件處理及顯示的工作,并在應(yīng)用程序退出時返回exec_()的值。3.4.信號和事件 3.5.一些經(jīng)驗 4.找到你需要的界面配圖和代碼 實例1 Hello Kitty!
代碼鏈接
實例2 標(biāo)準(zhǔn)對話框的使用代碼鏈接
代碼鏈接
各種消息框的使用代碼鏈接
代碼鏈接
表格的使用代碼鏈接
使用進(jìn)度條代碼鏈接
利用Qt Designer設(shè)計一個對話框代碼鏈接
代碼鏈接
基本布局管理代碼鏈接
多文檔代碼鏈接
!圖片描述
分割窗口代碼鏈接
??看翱?/b>代碼鏈接
堆棧窗口代碼鏈接
綜合布局實例代碼鏈接
可擴(kuò)展對話框代碼鏈接
利用QPalette改變控件顏色代碼鏈接
窗體的淡入淡出效果代碼鏈接
不規(guī)則窗體代碼鏈接
電子鐘代碼鏈接
程序啟動畫面代碼鏈接
基本QMainWindow主窗口程序代碼鏈接
打印文本代碼鏈接
打印圖像代碼鏈接
5.深入一個復(fù)雜的例子 6.總結(jié)文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/37952.html
摘要:隨著移動端的用戶增大,正式的時代來臨,經(jīng)云度的調(diào)查統(tǒng)計近幾年數(shù)量一致持續(xù)上升。而這些不同的組合與變化,正是創(chuàng)業(yè)家與開發(fā)者得以由其中獲利的方式。盈利方式還是有很多的,最主要的是要依據(jù)自身產(chǎn)品的優(yōu)勢選擇盈利方式 隨著移動端的用戶增大,正式APP的時代來臨,經(jīng)云度的調(diào)查統(tǒng)計近幾年APP數(shù)量一致持續(xù)上升。那APP有哪些盈利方式呢?這或許是很多APP開發(fā)者所困惑的問題不過,如果你以為APP經(jīng)濟(jì)...
摘要:相關(guān)推薦,豆瓣評分,人評價本書介紹了在編程中條極具實用價值的經(jīng)驗規(guī)則,這些經(jīng)驗規(guī)則涵蓋了大多數(shù)開發(fā)人員每天所面臨的問題的解決方案。實戰(zhàn)高并發(fā)程序設(shè)計推薦豆瓣評分,書的質(zhì)量沒的說,推薦大家好好看一下。 該文已加入開源文檔:JavaGuide(一份涵蓋大部分Java程序員所需要掌握的核心知識)。地址:https://github.com/Snailclimb... 【強(qiáng)烈推薦!非廣告!】...
摘要:實戰(zhàn)高并發(fā)程序設(shè)計推薦豆瓣評分書的質(zhì)量沒的說,推薦大家好好看一下。推薦,豆瓣評分,人評價本書介紹了在編程中條極具實用價值的經(jīng)驗規(guī)則,這些經(jīng)驗規(guī)則涵蓋了大多數(shù)開發(fā)人員每天所面臨的問題的解決方案。 很早就想把JavaGuide的書單更新一下了,昨晚加今天早上花了幾個時間對之前的書單進(jìn)行了分類和補(bǔ)充完善。雖是終極版,但一定還有很多不錯的 Java 書籍我沒有添加進(jìn)去,會繼續(xù)完善下去。希望這篇...
摘要:讓你收獲滿滿碼個蛋從年月日推送第篇文章一年過去了已累積推文近篇文章,本文為年度精選,共計篇,按照類別整理便于讀者主題閱讀。本篇文章是今年的最后一篇技術(shù)文章,為了讓大家在家也能好好學(xué)習(xí),特此花了幾個小時整理了這些文章。 showImg(https://segmentfault.com/img/remote/1460000013241596); 讓你收獲滿滿! 碼個蛋從2017年02月20...
閱讀 1390·2021-09-22 10:02
閱讀 1914·2021-09-08 09:35
閱讀 4062·2021-08-12 13:29
閱讀 2610·2019-08-30 15:55
閱讀 2265·2019-08-30 15:53
閱讀 2302·2019-08-29 17:13
閱讀 2763·2019-08-29 16:31
閱讀 2957·2019-08-29 12:24