
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、pyqt5與html數據交互原理部分核心代碼解析分享類我們先來看看分享類。class myshared(qwidget):finish = pyqtsignal(list)def _init_(self):super()._init_()def pyqt52webvalue(self):return "666"def web2pyqt5value(self, str):info = str.split()fullinfo = "用戶名:,密碼:".format(info0, info1)qmessagebrm
2、ation(self, "從web頁面傳值到pyqt5", fullinfo)self.finish.emit(info)value = pyqtproperty(str, fget=pyqt52webvalue, fset=web2pyqt5value)在這個分享類里面我們比以前多了一個新的學問點:pyqtproperty。用法pyqtproperty()函數定義新的pyqt屬性。 它的用法方式與標準的python property()函數相同。 實際上,以這種方式定義的pyqt屬性也表現為python屬性。那么問題又來了,什么是python proper
3、ty()函數?按照python的協助文檔上的介紹,它的徹低形式是這樣的:class property(fget=none, fset=none, fdel=none, doc=none)作用是返回python的某一個屬性。fget是獵取屬性值的函數。 fset是用于設置屬性值的函數。 fdel是用于刪除屬性值的函數。 doc為該屬性創建了一個docstring。典型使用是定義可被管理的屬性x:class c:def _init_(self):self._x = nonedef getx(self):return self._xdef setx(self, value):self._x = va
4、luedef delx(self):del self._xx = property(getx, setx, delx, "i&39;m the &39;x&39; property.")假如c是c的實例,c.x將調用getter,c.x = value將調用setter和del c.x將調用delx。假如給定,doc將是property屬性的docstring。 否則,該屬性將復制fget的docstring(假如存在)。這使得用法property()作為裝點器可以輕松創建只讀屬性:class parrot:def _init_(se
5、lf):self._voltage = 100000email?protecteddef voltage(self):"""得到當前voltage的值"""return self._voltageproperty裝點器將voltage()辦法轉換為具有相同名稱的只讀屬性。屬性對象具有可用作裝點器的getter,setter和deleter辦法,這些辦法創建屬性的副本,并將相應的拜訪函數設置為裝點函數。舉例如下:class c:def _init_(self):self._x = none
6、email?protecteddef x(self):"""我是&39;x&39;屬性"""return self._xemail?protecteddef x(self, value):self._x = valueemail?protecteddef x(self):del self._x此代碼與第一個示例徹低等效:x = property(getx, setx, delx, "i&39;m the &39;x&39; pro
7、perty.")請務必為其他函數指定與原始屬性相同的名稱(在本例中為x)。返回的屬性對象還具有與構造函數參數對應的屬性fget,fset和fdel。在pyqt5中,它是這么用的:pyqt5.qtcore.pyqtproperty(type, fget=none, fset=none, freset=none, fdel=none, doc=none, designable=true, scriptable=true, stored=true, user=false, constant=false, final=false, notify=none, revision=0)感覺
8、很復雜!創建一個既作為python屬性又作為pyqt屬性的屬性。參數:type - 屬性的類型。 它是python類型對象或字符串。fget - 用于獵取屬性值的,可選。fset - 用于設置屬性值的,可選。freset - 用于將屬性值重置為其默認值的,可選。fdel - 用于刪除屬性的,可選。doc - 屬性的docstring,可選。designable - 設置qt designable標記,可選。scriptable - 設置qt scriptable標記,可選。stored - 設置qt stored標記,可選。user - 設置qt user標記,可選。constant - 設置
9、qt constant標記,可選。final - 設置qt final標記,可選。notify - 未綁定通知信號,可選。revision - 導出到qml的修訂版。返回類型:屬性對象。也可以用法pyqtproperty()作為裝點器,辦法與標準python property()函數相同。 以下示例顯示如何用法getter和setter定義int屬性:from pyqt5.qtcore import qobject, pyqtpropertyclass foo(qobject):def _init_(self):qobject._init_(self)self._total = 0email?
10、protected(int)def total(self):return self._totalemail?protecteddef total(self, value):self._total = value好了,現在我們回過頭來再看下我們自己定義的分享類。def pyqt52webvalue(self):return "666"寫上,但是后面我們沒用。def web2pyqt5value(self, str):info = str.split()fullinfo = "用戶名:,密碼:".format(info0, info1)qmessagebrmation(self, "從web頁面傳值到pyqt5", fullinfo)self.finish.emit(info)當我們得到從web頁面傳來值
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 綜合接入協議書
- 綠化修復協議書
- 配套公建協議書
- 競拍保證協議書
- 浴足店合作合同協議書
- 英國數據協議書
- 老李離婚協議書
- 干砌石擋墻外包協議書
- 道閘安裝協議書
- 外立面改造安全協議書
- 初中英語人教新目標 (Go for it) 版七年級下冊Unit 7 Its raining!Section A教學設計
- 民法典物權編詳細解讀課件
- 列車緊制不緩解故障處理湖南鐵道賀婷課件
- 2025年地理會考簡答題思路模板
- 2025年矯形器裝配工競賽考試題(附答案)
- 2025年行政執法證資格考試必刷經典題庫及答案(共150題)
- 2025代謝相關脂肪性肝病基層診療與管理指南解讀課件
- 2024年山東棗莊事業單位招聘考試真題
- 19電學專題實驗-《練習使用歐姆表》專項提升(含答案)
- 中建鋼筋工程優化技術策劃指導手冊 (一)
- 收集土木APS例題及資料
評論
0/150
提交評論