PyQt 5 設置Logo圖標和Title標題的操作

從現在開始,我會把一些學習Python的筆記記錄下來,方便自己,也方便別人。到時候看一下如果篇章足夠,我單獨把它們整理成專欄。

最近在學習Python GUI開發,之前一直都是做的C++ GUI開發,用到的大部分是框架,主要有MFC、DuiLib和Qt。哦,如果想省時省力,可以使用Qt WebEngine+H5開發界面哦,隻有你Web前端基礎不錯的話。

使用PyQt 5開發界面,真的很方便,不用寫太多代碼,20行左右就可以出現簡單的帶圖標GUI,不信你可以看看下面代碼:

import sys
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QApplication, QWidget
 
class Logo(QWidget):
 def __init__(self):
  super().__init__()
  self.initUI()
 
 def initUI(self):
  # self.setGeometry(300, 300, 300, 220)
  self.setWindowTitle('MyLogo')
  # self.move(300, 300)
  self.setWindowIcon(QIcon('Logo.png'))
  self.show()
 
if __name__ == "__main__":
 app = QApplication(sys.argv)
 ex = Logo()
 sys.exit(app.exec_())

Logo.png圖片是這樣的:

運行結果:

這是我按照教程上面寫的代碼,可是圖標處並沒有被修改為自己想要的效果,還是默認的圖標。

後來我想瞭想,應該是圖片格式的問題,一般我們使用做圖標的圖片格式為icon,所以我就對png格式進行轉換,在線轉換的網站有:

https://www.easyicon.net/covert/

http://www.bitbug.net/

轉換完畢之後,就變成icon格式瞭,把名字修改為Logo.ico,然後扔到代碼目錄下面,代碼修改:

self.setWindowIcon(QIcon('Logo.ico'))

再次運行:

現在就是自己想要的結果。

有時你按照教程敲代碼時,可能沒有出現預期的效果,那麼可能是自己的一些資源出現瞭問題,比如我這次出現的格式問題,那麼你應該多做一些項目,到時候就觸類旁通瞭。

補充:PyQt5 QLabel改變字體和設置背景圖片

使用setStyleSheet方法修改得到自己想要的字體,大小,顏色

self.lab = QLabel("標簽字體大小顏色", self)
self.lab.setGeometry(50,50,300,200)    
self.setStyleSheet("QLabel{color:rgb(225,22,173,255);font-size:50px;font-weight:normal;font-family:Arial;}")

color:rgb()中的四個參數,前三個是控制顏色,第四個控制透明度

font-size:設置字體大小

font-weight:bold可設置字體加粗

font-family:選擇自己想要的顏色

setStyleSheet同時可以設置標簽背景圖片,但無法使圖片與標簽大小匹配

我使用QPixmap來設置標簽背景圖片

self.lab = QLabel('標簽背景圖片', self)
self.lab.setGeometry(50,50,300,200)
pixmap = QPixmap('F:\A_code\PyQT_Demo\\1.png')
self.lab.setPixmap(pixmap)

但是這個時候我們添加的背景圖片依然無法和標簽大小相匹配

這需要修改一下我們的實例化QPixmap部分

pixmap=QPixmap('F:\A_code\PyQT_Demo\\1.png').scaled
    (self.lab.width(), self.lab.height())

或者修改lab的屬性: self.lab.setScaledContents(True)

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。

推薦閱讀: