從現(xiàn)在開始,我會把一些學(xué)習(xí)Python的筆記記錄下來,方便自己,也方便別人。到時(shí)候看一下如果篇章足夠,我單獨(dú)把它們整理成專欄。
最近在學(xué)習(xí)Python GUI開發(fā),之前一直都是做的C++ GUI開發(fā),用到的大部分是框架,主要有MFC、DuiLib和Qt。哦,如果想省時(shí)省力,可以使用Qt WebEngine+H5開發(fā)界面哦,只有你Web前端基礎(chǔ)不錯(cuò)的話。
使用PyQt 5開發(fā)界面,真的很方便,不用寫太多代碼,20行左右就可以出現(xiàn)簡單的帶圖標(biāo)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圖片是這樣的:

運(yùn)行結(jié)果:

這是我按照教程上面寫的代碼,可是圖標(biāo)處并沒有被修改為自己想要的效果,還是默認(rèn)的圖標(biāo)。
后來我想了想,應(yīng)該是圖片格式的問題,一般我們使用做圖標(biāo)的圖片格式為icon,所以我就對png格式進(jìn)行轉(zhuǎn)換,在線轉(zhuǎn)換的網(wǎng)站有:
https://www.easyicon.net/covert/
http://www.bitbug.net/
轉(zhuǎn)換完畢之后,就變成icon格式了,把名字修改為Logo.ico,然后扔到代碼目錄下面,代碼修改:
self.setWindowIcon(QIcon('Logo.ico'))
再次運(yùn)行:

現(xiàn)在就是自己想要的結(jié)果。
有時(shí)你按照教程敲代碼時(shí),可能沒有出現(xiàn)預(yù)期的效果,那么可能是自己的一些資源出現(xiàn)了問題,比如我這次出現(xiàn)的格式問題,那么你應(yīng)該多做一些項(xiàng)目,到時(shí)候就觸類旁通了。
補(bǔ)充:PyQt5 QLabel改變字體和設(shè)置背景圖片
使用setStyleSheet方法修改得到自己想要的字體,大小,顏色
self.lab = QLabel("標(biāo)簽字體大小顏色", 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()中的四個(gè)參數(shù),前三個(gè)是控制顏色,第四個(gè)控制透明度
font-size:設(shè)置字體大小
font-weight:bold可設(shè)置字體加粗
font-family:選擇自己想要的顏色
setStyleSheet同時(shí)可以設(shè)置標(biāo)簽背景圖片,但無法使圖片與標(biāo)簽大小匹配
我使用QPixmap來設(shè)置標(biāo)簽背景圖片
self.lab = QLabel('標(biāo)簽背景圖片', self)
self.lab.setGeometry(50,50,300,200)
pixmap = QPixmap('F:\A_code\PyQT_Demo\\1.png')
self.lab.setPixmap(pixmap)

但是這個(gè)時(shí)候我們添加的背景圖片依然無法和標(biāo)簽大小相匹配
這需要修改一下我們的實(shí)例化QPixmap部分
pixmap=QPixmap('F:\A_code\PyQT_Demo\\1.png').scaled
(self.lab.width(), self.lab.height())
或者修改lab的屬性: self.lab.setScaledContents(True)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- 解決PyQt5 無邊框后窗口的移動(dòng)問題
- PyQt5 實(shí)現(xiàn)給無邊框widget窗口添加背景圖片
- PyQt5通過信號實(shí)現(xiàn)MVC的示例
- PyQt5中QSpinBox計(jì)數(shù)器的實(shí)現(xiàn)
- 詳解Python GUI編程之PyQt5入門到實(shí)戰(zhàn)