电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python PyQt5整理介紹

瀏覽:4日期:2022-07-31 13:37:41

PyQt5 是Digia的一套Qt5應用框架與python的結合,同時支持2.x和3.x,官方網站:www.riverbankcomputing.co.uk/news。

PyQt5是由一系列Python模塊組成。超過620個類,6000函數和方法。能在諸如Unix、Windows和Mac OS等主流操作系統上運行。PyQt5有兩種證書,GPL和商業證書。

PyQt5類分為很多模塊,主要模塊有:

QtCore 包含了核心的非GUI的功能。主要和時間、文件與文件夾、各種數據、流、URLs、mime類文件、進程與線程一起使用。 QtGui 包含了窗口系統、事件處理、2D圖像、基本繪畫、字體和文字類。 QtWidgets QtMultimedia QtBluetooth QtNetwork QtPositioning Enginio QtWebSockets QtWebKit QtWebKitWidgets QtXml QtSvg QtSql QtTest

正文開始

好了,我們開一個新章節,因為我對Gui設計比其它的熟一點,所以我先來開個Gui設計的新坑。在這里說明一下。我們使用的是PyQt5,并不是Python自帶的Tkinter。那個我沒那么熟,可以說基本不會。這個欄目我們主要是講PyQt5的基礎,至于更多,我覺得大家自己摸索,畢竟難了,我也累,寫多了看不懂。好了,欄目介紹完,現在開始說正式的。

首先因為PyQt5是第三方庫,如果你直接import,那么就會報錯。必須下載,至于怎么下載Python的第三方庫,我在基礎欄目中的Python庫已經說過。大家自行翻閱。(還是說一個簡單一點的吧。。。)

在命令提示符/cmd中(Windows系統,Linux和蘋果系統抱歉我沒用過,請諒解。)

pip install PyQt5

很簡單吧,如果報錯了,你會看到一大堆紅字,如果末尾是…time out,那么就是中斷了,多試幾次。其它的自行搜索吧,畢竟太多了。我覺得最好還是下載.whl文件。

廢話了這么多,我們先來看一個我最近無聊編的實用工具,界面很簡陋,畢竟我大概只編了幾個小時不到。

import sys,sipfrom PyQt5.QtWidgets import QApplication, QWidget,QLabel,QPushButton,QCheckBox, QComboBox,QLineEditfrom PyQt5.QtGui import QFontfrom PyQt5.QtCore import Qtclass 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 sysfrom PyQt5.QtWidgets import QApplication, QWidgetclass 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 - 1sys.path:返回模塊的搜索路徑,初始化時使用PYTHONPATH環境變量的值sys.platform:返回操作系統平臺名稱sys.stdin:輸入相關sys.stdout:輸出相關sys.stderr:錯誤相關sys.exc_info():返回異常信息三元元組sys.getdefaultencoding():獲取系統當前編碼,默認為utf-8sys.setdefaultencoding():設置系統的默認編碼sys.getfilesystemencoding():獲取文件系統使用編碼方式,默認是utf-8sys.modules #以字典的形式返回所有當前Python環境中已經導入的模塊sys.builtin_module_names:返回一個列表,包含所有已經編譯到Python解釋器里的模塊的名字sys.copyright:當前Python的版權信息sys.flags:命令行標識狀態信息列表。只讀。sys.getrefcount(object):返回對象的引用數量sys.getrecursionlimit():返回Python最大遞歸深度,默認1000sys.getsizeof(object[, default]):返回對象的大小sys.getswitchinterval():返回線程切換時間間隔,默認0.005秒sys.setswitchinterval(interval):設置線程切換的時間間隔,單位秒sys.getwindowsversion():返回當前windwos系統的版本信息sys.hash_info:返回Python默認的哈希方法的參數sys.implementation:當前正在運行的Python解釋器的具體實現,比如CPythonsys.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 sysfrom PyQt5.QtWidgets import QApplication, QWidgetfrom PyQt5.QtGui import QIconclass 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圖片,這樣就會更豐富了。這個方法我就不列出來了,大家自己記住就好。

總結

到此這篇關于Python PyQt5整理介紹的文章就介紹到這了,更多相關Python PyQt5介紹內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 亚洲工业智能制造领域专业门户网站 - 亚洲自动化与机器人网 | 二手电脑回收_二手打印机回收_二手复印机回_硒鼓墨盒回收-广州益美二手电脑回收公司 | 吉祥新世纪铝塑板_生产铝塑板厂家_铝塑板生产厂家_临沂市兴达铝塑装饰材料有限公司 | 海外仓系统|国际货代系统|退货换标系统|WMS仓储系统|海豚云 | 洛阳永磁工业大吊扇研发生产-工厂通风降温解决方案提供商-中实洛阳环境科技有限公司 | 广州食堂承包_广州团餐配送_广州堂食餐饮服务公司 - 旺记餐饮 | 全自动包装秤_全自动上袋机_全自动套袋机_高位码垛机_全自动包装码垛系统生产线-三维汉界机器(山东)股份有限公司 | 电梯装饰-北京万达中意电梯装饰有限公司 | CCE素质教育博览会 | CCE素博会 | 教育展 | 美育展 | 科教展 | 素质教育展 | 振动传感器,检波器-威海广达勘探仪器有限公司 | 低粘度纤维素|混凝土灌浆料|有机硅憎水粉|聚羧酸减水剂-南京斯泰宝 | 铝镁锰板厂家_进口钛锌板_铝镁锰波浪板_铝镁锰墙面板_铝镁锰屋面-杭州军晟金属建筑材料 | 全自动过滤器_反冲洗过滤器_自清洗过滤器_量子除垢环_量子环除垢_量子除垢 - 安士睿(北京)过滤设备有限公司 | 超声骨密度仪-骨密度检测仪-经颅多普勒-tcd仪_南京科进实业有限公司 | 沉降天平_沉降粒度仪_液体比重仪-上海方瑞仪器有限公司 | 上海皓越真空设备有限公司官网-真空炉-真空热压烧结炉-sps放电等离子烧结炉 | 超声波成孔成槽质量检测仪-压浆机-桥梁预应力智能张拉设备-上海硕冠检测设备有限公司 | 日本SMC气缸接头-速度控制阀-日本三菱伺服电机-苏州禾力自动化科技有限公司 | 注塑模具_塑料模具_塑胶模具_范仕达【官网】_东莞模具设计与制造加工厂家 | 贵州科比特-防雷公司厂家提供贵州防雷工程,防雷检测,防雷接地,防雷设备价格,防雷产品报价服务-贵州防雷检测公司 | 河南中整光饰机械有限公司-抛光机,去毛刺抛光机,精密镜面抛光机,全自动抛光机械设备 | 沥青灌缝机_路面灌缝机_道路灌缝机_沥青灌缝机厂家_济宁萨奥机械有限公司 | 专业的新乡振动筛厂家-振动筛品质保障-环保振动筛价格—新乡市德科筛分机械有限公司 | PCB接线端子_栅板式端子_线路板连接器_端子排生产厂家-置恒电气 喷码机,激光喷码打码机,鸡蛋打码机,手持打码机,自动喷码机,一物一码防伪溯源-恒欣瑞达有限公司 假肢-假肢价格-假肢厂家-河南假肢-郑州市力康假肢矫形器有限公司 | 传递窗_超净|洁净工作台_高效过滤器-传递窗厂家广州梓净公司 | 彩超机-黑白B超机-便携兽用B超机-多普勒彩超机价格「大为彩超」厂家 | 岸电电源-60HZ变频电源-大功率变频电源-济南诚雅电子科技有限公司 | 深圳市万色印象美业有限公司 | 卓能JOINTLEAN端子连接器厂家-专业提供PCB接线端子|轨道式端子|重载连接器|欧式连接器等电气连接产品和服务 | 储气罐,真空罐,缓冲罐,隔膜气压罐厂家批发价格,空压机储气罐规格型号-上海申容压力容器集团有限公司 | 雨燕360体育免费直播_雨燕360免费NBA直播_NBA篮球高清直播无插件-雨燕360体育直播 | 蔡司三坐标-影像测量机-3D扫描仪-蔡司显微镜-扫描电镜-工业CT-ZEISS授权代理商三本工业测量 | 插针变压器-家用电器变压器-工业空调变压器-CD型电抗器-余姚市中驰电器有限公司 | 氢氧化钾厂家直销批发-济南金昊化工有限公司| 杭州中央空调维修_冷却塔/新风机柜/热水器/锅炉除垢清洗_除垢剂_风机盘管_冷凝器清洗-杭州亿诺能源有限公司 | 岩棉板|岩棉复合板|聚氨酯夹芯板|岩棉夹芯板|彩钢夹芯板-江苏恒海钢结构 | 骨龄仪_骨龄检测仪_儿童骨龄测试仪_品牌生产厂家【品源医疗】 | 蒸汽热收缩机_蒸汽发生器_塑封机_包膜机_封切收缩机_热收缩包装机_真空机_全自动打包机_捆扎机_封箱机-东莞市中堡智能科技有限公司 | 金现代信息产业股份有限公司--数字化解决方案供应商 | 权威废金属|废塑料|废纸|废铜|废钢价格|再生资源回收行情报价中心-中废网 | 罐体电伴热工程-消防管道电伴热带厂家-山东沃安电气 |