pyqt5與html數(shù)據(jù)交互原理_第1頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、pyqt5與html數(shù)據(jù)交互原理部分核心代碼解析分享類我們先來看看分享類。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頁面?zhèn)髦档絧yqt5", fullinfo)self.finish.emit(info)value = pyqtproperty(str, fget=pyqt52webvalue, fset=web2pyqt5value)在這個分享類里面我們比以前多了一個新的學問點:pyqtproperty。用法pyqtproperty()函數(shù)定義新的pyqt屬性。 它的用法方式與標準的python property()函數(shù)相同。 實際上,以這種方式定義的pyqt屬性也表現(xiàn)為python屬性。那么問題又來了,什么是python proper

3、ty()函數(shù)?按照python的協(xié)助文檔上的介紹,它的徹低形式是這樣的:class property(fget=none, fset=none, fdel=none, doc=none)作用是返回python的某一個屬性。fget是獵取屬性值的函數(shù)。 fset是用于設(shè)置屬性值的函數(shù)。 fdel是用于刪除屬性值的函數(shù)。 doc為該屬性創(chuàng)建了一個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將調(diào)用getter,c.x = value將調(diào)用setter和del c.x將調(diào)用delx。假如給定,doc將是property屬性的docstring。 否則,該屬性將復(fù)制fget的docstring(假如存在)。這使得用法property()作為裝點器可以輕松創(chuàng)建只讀屬性:class parrot:def _init_(se

5、lf):self._voltage = 100000email?protecteddef voltage(self):"""得到當前voltage的值"""return self._voltageproperty裝點器將voltage()辦法轉(zhuǎn)換為具有相同名稱的只讀屬性。屬性對象具有可用作裝點器的getter,setter和deleter辦法,這些辦法創(chuàng)建屬性的副本,并將相應(yīng)的拜訪函數(shù)設(shè)置為裝點函數(shù)。舉例如下: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.")請務(wù)必為其他函數(shù)指定與原始屬性相同的名稱(在本例中為x)。返回的屬性對象還具有與構(gòu)造函數(shù)參數(shù)對應(yīng)的屬性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、很復(fù)雜!創(chuàng)建一個既作為python屬性又作為pyqt屬性的屬性。參數(shù):type - 屬性的類型。 它是python類型對象或字符串。fget - 用于獵取屬性值的,可選。fset - 用于設(shè)置屬性值的,可選。freset - 用于將屬性值重置為其默認值的,可選。fdel - 用于刪除屬性的,可選。doc - 屬性的docstring,可選。designable - 設(shè)置qt designable標記,可選。scriptable - 設(shè)置qt scriptable標記,可選。stored - 設(shè)置qt stored標記,可選。user - 設(shè)置qt user標記,可選。constant - 設(shè)置

9、qt constant標記,可選。final - 設(shè)置qt final標記,可選。notify - 未綁定通知信號,可選。revision - 導(dǎo)出到qml的修訂版。返回類型:屬性對象。也可以用法pyqtproperty()作為裝點器,辦法與標準python property()函數(shù)相同。 以下示例顯示如何用法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好了,現(xiàn)在我們回過頭來再看下我們自己定義的分享類。def pyqt52webvalue(self):return "666"寫上,但是后面我們沒用。def web2pyqt5value(self, str):info = str.split()fullinfo = "用戶名:,密碼:".format(info0, info1)qmessagebrmation(self, "從web頁面?zhèn)髦档絧yqt5", fullinfo)self.finish.emit(info)當我們得到從web頁面?zhèn)鱽碇?/p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論