Python PyQt5簡介
在這裡說明一下。我們使用的是PyQt5,並不是Python自帶的Tkinter。那個我沒那麼熟,可以說基本不會。這個欄目我們主要是講PyQt5的基礎,至於更多,我覺得大家自己摸索,畢竟難了,好了,現在開始說正式的。
首先因為PyQt5是第三方庫,如果你直接import,那麼就會報錯。必須下載
在命令提示符/cmd中(Windows系統,Linux和蘋果系統抱歉我沒用過,請諒解。)
pip install PyQt5
很簡單吧,如果報錯了,你會看到一大堆紅字,如果末尾是…time out,那麼就是中斷了,多試幾次。其它的自行搜尋吧,畢竟太多了。我覺得最好還是下載.whl檔案。
廢話了這麼多,我們先來看一個我最近無聊編的實用工具,介面很簡陋,畢竟我大概只編了幾個小時不到。
import sys,sip
from PyQt5.QtWidgets import QApplication, QWidget,QLabel,QPushButton,QCheckBox, QComboBox,QLineEdit
from PyQt5.QtGui import QFont
from PyQt5.QtCore import Qt
class Exchange_of_weather_degree_units(QWidget):
def __init__(self):
super().__init__()
self.setting()
def setting(self):
self.unit = None
self.choice = QComboBox(self)
self.choice.addItem('℃')
self.choice.addItem('℉')
self.choice.activated[str].connect(self.choice_)
self.choice.move(50,15)
self.number = QLineEdit(self)
self.number.setPlaceholderText('輸入轉化的數值')
self.number.move(15,50)
self.arrowhead = QLabel(self)
self.arrowhead.setText('——————>')
self.arrowhead.setFont(QFont('microsoft Yahei', 20))
self.arrowhead.move(165,20)
self.result = QLabel(self)
self.result.setText(' ')
self.result.setFont(QFont('microsoft Yahei', 15))
self.result.move(370, 27.5)
self.yes = QPushButton('確定',self)
self.yes.clicked.connect(self.yes_)
self.yes.move(220,50)
self.setGeometry(300, 100, 520, 100)
self.setWindowTitle('攝氏度與華氏度的轉換')
self.show()
def choice_(self,text):
self.unit = text
def yes_(self):
try:
if self.unit == '℃':
result_ = eval(self.number.text()) * 1.8 + 32
self.result.setText(str(result_) + '℉')
if self.unit == '℉':
result_ = round((eval(self.number.text()) - 32) / 1.8,6)
self.result.setText(str(result_) + '℃')
else:
result_ = eval(self.number.text()) * 1.8 + 32
self.result.setText(str(result_) + '℃')
except:
self.result.setText('請輸入數字')
if __name__ == '__main__':
app = QApplication(sys.argv)
Ex = Exchange_of_weather_degree_units()
sys.exit(app.exec_())
這個是華氏度與攝氏度的一個轉換小工具,對我來說挺實用。大家不用懂,就複製過去看看效果就好了。
其實這個裡面涉及的知識並不多,所以大家不用怕。因為最基礎的PyQt5框架是這樣的:
import sys
from PyQt5.QtWidgets import QApplication, QWidget
class Example(QWidget):
def __init__(self):
super().__init__()
self.settings()
def settings(self):
self.setGeometry(300, 300, 450, 350)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
當然,這只是我覺得的最簡模式,其實可以比這更精簡。不過長度也差不多這樣。所以大家不用害怕。
至於Qt5是什麼,大家自行搜尋,反正我可以告訴大家,這是一個極為強大與成熟的庫,Qt本身其實也是一個工具。如果要,可以加我QQ。
講了這些,我們現在來分析一下這個框架程式碼:
sys庫是一個標準庫:
sys庫的作用:檢視python直譯器資訊及傳遞資訊給python直譯器。
sys.argv:獲取命令列引數列表,第一個元素是程式本身
sys.exit(n):退出Python程式,exit(0)表示正常退出。當引數非0時,會引發一個SystemExit異常,可以在程式中捕獲該異常 鄭州哪家人流醫院好
sys.version:獲取Python解釋程器的版本資訊
sys.maxsize:最大的Int值,64位平臺是2**63 - 1
sys.path:返回模組的搜尋路徑,初始化時使用PYTHONPATH環境變數的值
sys.platform:返回作業系統平臺名稱
sys.stdin:輸入相關
sys.stdout:輸出相關
sys.stderr:錯誤相關
sys.exc_info():返回異常資訊三元元組
sys.getdefaultencoding():獲取系統當前編碼,預設為utf-8
sys.setdefaultencoding():設定系統的預設編碼
sys.getfilesystemencoding():獲取檔案系統使用編碼方式,預設是utf-8
sys.modules #以字典的形式返回所有當前Python環境中已經匯入的模組
sys.builtin_module_names:返回一個列表,包含所有已經編譯到Python直譯器裡的模組的名字
sys.copyright:當前Python的版權資訊
sys.flags:命令列標識狀態資訊列表。只讀。
sys.getrefcount(object):返回物件的引用數量
sys.getrecursionlimit():返回Python最大遞迴深度,預設1000
sys.getsizeof(object[, default]):返回物件的大小
sys.getswitchinterval():返回執行緒切換時間間隔,預設0.005秒
sys.setswitchinterval(interval):設定執行緒切換的時間間隔,單位秒
sys.getwindowsversion():返回當前windwos系統的版本資訊
sys.hash_info:返回Python預設的雜湊方法的引數
sys.implementation:當前正在執行的Python直譯器的具體實現,比如CPython
sys.thread_info:當前執行緒資訊
這些是有一些是我參考的,不過主要是檢視PyQt5庫本身程式碼,再翻譯解釋英文的成果。
然後是解包,這個沒問題吧。
然後建立Example庫,繼承了QWidget。
PyQt5有很多模組,其中QWidget就是一個模組,它包含了一系列建立桌面應用的UI元素。
下面的初始化程式碼應該沒問題吧。
然後就是這個self.setGeometry(300, 300, 450, 350),這個是設定視窗與螢幕左上角的距離與長寬。
這個大家改改資料就懂了。
然後是self.show(),這個是將介面顯示出來。
最後是執行,if那一個判斷簡單來說是這樣的:
別的文件呼叫你的這個庫時不會執行if裡的程式碼。
然後app那一行大家就是所有的PyQt5應用必須建立一個應用(Application)物件。sys.argv引數是一個來自命令列的引數列表。Python指令碼可以在shell中執行。這是我們用來控制我們應用啟動的一種方法。
ex是呼叫庫,然後首先執行__init__的程式碼,然後__init__又呼叫了settings,所以直接執行initUI裡的程式。最後退出。
我們再改好看一點。
import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QIcon
class Example(QWidget):
def __init__(self):
super().__init__()
self.settings()
def setting(self):
self.setWindowTitle(sys.argv[0])
#self.setWindowIcon(QIcon('圖片名.ico')) 自己加圖片
self.setGeometry(300, 300, 450, 350)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
我們加了兩行,在settings中的第一行,就是設定標題。第二行大家自行加ico圖片,這樣就會更豐富了。這個方法我就不列出來了,大家自己記住就好。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69945560/viewspace-2684156/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python簡介Python
- Python Selenium簡介Python
- python教程(一)·簡介Python
- Python簡單介紹Python
- 圖解python | 簡介圖解Python
- 繪圖: Python matplotlib簡介繪圖Python
- python技術簡介(三)Python
- 【Python進階-PyQt5】00搭建PyQt5環境PythonQT
- 實戰PyQt5: 082-圖形檢視(Graphics-View)框架簡介QTView框架
- python 離線按照PyQt5PythonQT
- python元組與字典簡介Python
- Python中的psutil使用簡介Python
- phyon快速入門(python簡介)Python
- python函式作用域簡介Python函式
- Python Plumbum 簡介:用 Python 來寫指令碼Python指令碼
- Python 入門【預備知識】---- Python 簡介Python
- python簡介怎麼寫-python爬蟲簡歷怎麼寫Python爬蟲
- Python PyQT5的入門使用PythonQT
- python之程式語言(簡介)01Python
- python基礎學習-socket簡介Python
- 簡單介紹python process模組Python
- Python 入門系列 —— 1. 簡介Python
- Python Flask Web教程001:Flask簡介PythonFlaskWeb
- Python 精靈模組簡介_python sprites module introducePython
- pyqt5之簡單視窗的建立QT
- Python 中 PyQt5 庫語法(一)PythonQT
- Python爬蟲教程-21-xpath 簡介Python爬蟲
- Python爬蟲教程-20-xml 簡介Python爬蟲XML
- Python爬蟲教程-04-response簡介Python爬蟲
- Python中名稱空間包簡介Python
- Python中的高階函式簡介Python函式
- 【Python基礎知識】Django框架簡介PythonDjango框架
- Python Web 應用程式 Tornado 框架簡介PythonWeb框架
- [譯] Python 的時間序列分析:簡介Python
- 《Python機器學習實踐》簡介Python機器學習
- 深圳Python培訓學習:Python3 簡介–[千鋒]Python
- PyQt5案例彙總(簡潔版)QT
- 簡單介紹python的垃圾回收機制Python