從現(xiàn)在開始,我會把一些學習Python的筆記記錄下來,方便自己,也方便別人。到時候看一下如果篇章足夠,我單獨把它們整理成專欄。
最近在學習Python GUI開發(fā),之前一直都是做的C++ GUI開發(fā),用到的大部分是框架,主要有MFC、DuiLib和Qt。哦,如果想省時省力,可以使用Qt WebEngine+H5開發(fā)界面哦,只有你Web前端基礎不錯的話。
使用PyQt 5開發(fā)界面,真的很方便,不用寫太多代碼,20行左右就可以出現(xiàn)簡單的帶圖標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圖片是這樣的:
運行結(jié)果:
這是我按照教程上面寫的代碼,可是圖標處并沒有被修改為自己想要的效果,還是默認的圖標。
后來我想了想,應該是圖片格式的問題,一般我們使用做圖標的圖片格式為icon,所以我就對png格式進行轉(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'))
再次運行:
現(xiàn)在就是自己想要的結(jié)果。
有時你按照教程敲代碼時,可能沒有出現(xiàn)預期的效果,那么可能是自己的一些資源出現(xiàn)了問題,比如我這次出現(xiàn)的格式問題,那么你應該多做一些項目,到時候就觸類旁通了。
補充: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()中的四個參數(shù),前三個是控制顏色,第四個控制透明度
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)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- 解決PyQt5 無邊框后窗口的移動問題
- PyQt5 實現(xiàn)給無邊框widget窗口添加背景圖片
- PyQt5通過信號實現(xiàn)MVC的示例
- PyQt5中QSpinBox計數(shù)器的實現(xiàn)
- 詳解Python GUI編程之PyQt5入門到實戰(zhàn)