PyQt中實現(xiàn)自定義工具提示ToolTip的方法詳解_第1頁
PyQt中實現(xiàn)自定義工具提示ToolTip的方法詳解_第2頁
PyQt中實現(xiàn)自定義工具提示ToolTip的方法詳解_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

第PyQt中實現(xiàn)自定義工具提示ToolTip的方法詳解self.label=QLabel(text,self)

self.ani=QPropertyAnimation(self,b'windowOpacity',self)

#setlayout

self.hBox.addWidget(self.label)

self.hBox.setContentsMargins(10,7,10,7)

#addshadow

self.shadowEffect=QGraphicsDropShadowEffect(self)

self.shadowEffect.setBlurRadius(32)

self.shadowEffect.setColor(QColor(0,0,0,60))

self.shadowEffect.setOffset(0,5)

self.setGraphicsEffect(self.shadowEffect)

self.timer.setSingleShot(True)

self.timer.timeout.connect(self.hide)

#setstyle

self.setAttribute(Qt.WA_StyledBackground)

self.setDarkTheme(False)

self.__setQss()

deftext(self):

returnself.__text

defsetText(self,text:str):

"""settextontooltip"""

self.__text=text

self.label.setText(text)

self.label.adjustSize()

self.adjustSize()

defduration(self):

returnself.__duration

defsetDuration(self,duration:int):

"""settooltipdurationinmilliseconds"""

self.__duration=abs(duration)

def__setQss(self):

"""setstylesheet"""

f=QFile("resource/tooltip.qss")

f.open(QFile.ReadOnly)

self.setStyleSheet(str(f.readAll(),encoding='utf-8'))

f.close()

self.label.adjustSize()

self.adjustSize()

defsetDarkTheme(self,dark=False):

"""setdarktheme"""

dark='true'ifdarkelse'false'

self.setProperty('dark',dark)

self.label.setProperty('dark',dark)

self.setStyle(QApplication.style())

defshowEvent(self,e):

self.timer.stop()

self.timer.start(self.__duration)

super().showEvent(e)

defhideEvent(self,e):

self.timer.stop()

super().hideEvent(e)

工具提示繼承自QFrame的原因是我們需要設(shè)置邊框樣式,樣式表如下所示,支持亮暗兩種主題:

ToolTip[dark="false"]{

border:1pxsolidrgba(0,0,0,0.06);

border-radius:5px;

background-color:rgb(243,243,243);

ToolTip[dark="true"]{

border:1pxsolidrgb(28,28,28);

border-radius:5px;

background-color:rgb(43,43,43);

QLabel{

background-color:transparent;

font:15px'SegoeUI','MicrosoftYaHei';

QLabel[dark="false"]{

color:black;

QLabel[dark="true"]{

color:white;

測試

下述代碼的運行效果就是動圖中所示的樣子,只要給想要設(shè)置工具提示的部件安裝上事件過濾器,就能將QToolTip替換成自定義的工具提示:

#coding:utf-8

importsys

fromPyQt5.QtCoreimportQ

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論