日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python GUI庫圖形界面開發之PyQt5窗口背景與不規則窗口實例

瀏覽:35日期:2022-08-06 14:29:07

窗口背景主要包括,背景色與背景圖片,設置窗口背景有三種方法

使用QSS設置窗口背景 使用QPalette設置窗口背景 實現PainEvent,使用QPainter繪制背景QSS設置窗口背景

在QSS中,我們可以使用Background或者background-color的方式來設置背景色,設置窗口背景色之后,子控件默認會繼承父窗口的背景色,如果想要為控件設置背景圖片或圖標,則可以使用setPixmap或則setIcon來完成。關于這兩個函數的用法,可以參考本博客下的PyQt5的基礎控件分欄

實例:QSS設置窗口背景

import sysfrom PyQt5.QtWidgets import QMainWindow, QApplicationapp = QApplication(sys.argv)win = QMainWindow()#設置窗口標題與初始大小win.setWindowTitle('界面背景圖片設置')win.resize(350, 250)#設置對象名稱win.setObjectName('MainWindow')# #todo 1 設置窗口背景圖片win.setStyleSheet('#MainWindow{border-image:url(./images/python.jpg);}')#todo 2 設置窗口背景色#win.setStyleSheet('#MainWindow{background-color: yellow}')win.show()sys.exit(app.exec_())

運行效果圖如下

python GUI庫圖形界面開發之PyQt5窗口背景與不規則窗口實例

核心代碼如下

#設置對象名稱win.setObjectName('MainWindow')# #todo 1 設置窗口背景圖片win.setStyleSheet('#MainWindow{border-image:url(./images/python.jpg);}')

優化 使用setStyleSheet()設置窗口背景色,核心代碼和效果圖如下

#todo 2 設置窗口背景色win.setStyleSheet('#MainWindow{background-color: yellow}')

python GUI庫圖形界面開發之PyQt5窗口背景與不規則窗口實例

QPalette設置窗口背景

當使用QPalette(調試板)來設置背景圖片時,需要考慮背景圖片的尺寸

圖片尺寸可以文件管理器打開,右鍵屬性查看

當背景圖片的寬度高度大于窗口的寬度高度時,背景圖片會平鋪整個背景

當背景圖片寬度高度小于窗口的寬度高度時,則會加載多個背景圖片

實例:QPalette設置窗口背景

import sysfrom PyQt5.QtWidgets import QMainWindow, QApplicationfrom PyQt5.QtGui import QPalette, QBrush, QPixmapapp = QApplication(sys.argv)win = QMainWindow()win.setWindowTitle('界面背景圖片設置')palette = QPalette()palette.setBrush(QPalette.Background, QBrush(QPixmap('./images/python.jpg')))win.setPalette(palette)# todo 1 當背景圖片的寬度和高度大于窗口的寬度和高度時win.resize(460, 255 )## # todo 2 當背景圖片的寬度和高度小于窗口的寬度和高度時# win.resize(800, 600)win.show()sys.exit(app.exec_())

當背景圖片的寬度高度大于窗口的寬度高度時,背景圖片會平鋪整個背景

python GUI庫圖形界面開發之PyQt5窗口背景與不規則窗口實例

當背景圖片寬度高度小于窗口的寬度高度時,則會加載多個背景圖片

python GUI庫圖形界面開發之PyQt5窗口背景與不規則窗口實例

核心代碼如下

win.setWindowTitle('界面背景圖片設置')palette = QPalette()palette.setBrush(QPalette.Background, QBrush(QPixmap('./images/python.jpg')))win.setPalette(palette)# todo 1 當背景圖片的寬度和高度大于窗口的寬度和高度時win.resize(460, 255 )## # todo 2 當背景圖片的寬度和高度小于窗口的寬度和高度時# win.resize(800, 600)PaintEvent設置窗口背景

import sysfrom PyQt5.QtWidgets import QApplication, QWidgetfrom PyQt5.QtGui import QPainter,QPixmapfrom PyQt5.QtCore import Qtclass Winform(QWidget): def __init__(self, parent=None): super(Winform, self).__init__(parent) self.setWindowTitle('paintEvent設置背景顏色') def paintEvent(self, event): painter = QPainter(self) #todo 1 設置背景顏色 painter.setBrush(Qt.green) painter.drawRect(self.rect()) # #todo 2 設置背景圖片,平鋪到整個窗口,隨著窗口改變而改變 # pixmap = QPixmap('./images/screen1.jpg') # painter.drawPixmap(self.rect(), pixmap)if __name__ == '__main__': app = QApplication(sys.argv) form = Winform() form.show() sys.exit(app.exec_())

核心代碼:使用paintEvent設置窗口的背景色

class Winform(QWidget): def __init__(self, parent=None): super(Winform, self).__init__(parent) self.setWindowTitle('paintEvent設置背景顏色') def paintEvent(self, event): painter = QPainter(self) #todo 1 設置背景顏色 painter.setBrush(Qt.green) painter.drawRect(self.rect())

效果如圖

python GUI庫圖形界面開發之PyQt5窗口背景與不規則窗口實例

核心代碼:設置窗口背景圖片

# #todo 2 設置背景圖片,平鋪到整個窗口,隨著窗口改變而改變pixmap = QPixmap('./images/screen1.jpg')painter.drawPixmap(self.rect(), pixmap)

python GUI庫圖形界面開發之PyQt5窗口背景與不規則窗口實例

QWidget類中比較重要的繪圖函數如表所示 函數 描述 setMask(self,QBitmap)setMask(self,QRegion) setMask()的作用是為調用它的控件增加一個遮罩,遮住所選區域以外的部分,使之看起來是透明的,它的參數可以為QBitmap或QRegion對象,此處調用QPixmap的mask()函數獲得圖片自身的遮罩,是一個QBitmap對象,在實例中使用的是PNG格式的圖片,它的透明部分就是一個遮罩 paintEvent(self,QPaintEvent) 通過重載paintEvent()函數繪制窗口背景 不規則窗口實例 1

實現不規則窗口的最簡單方式就是圖片素材不僅當遮罩層,還當背景圖片,通過重載paintEvent()函數繪制窗口背景

import sysfrom PyQt5.QtWidgets import QApplication,QWidgetfrom PyQt5.QtGui import QPixmap,QPainter,QBitmapclass MyForm(QWidget): def __init__(self,parent=None): super(MyForm, self).__init__(parent) #設置標題與初始窗口大小 self.setWindowTitle(’不規則窗口的實現例子’) self.resize(560,390) def paintEvent(self, QPaintEvent): painter=QPainter(self) #在指定位置繪制圖片 painter.drawPixmap(0,0,280,390,QPixmap(r’./images/dog.jpg’)) painter.drawPixmap(280,0,280,390,QBitmap(r’./images/dog.jpg’))if __name__ == ’__main__’: app=QApplication(sys.argv) form=MyForm() form.show() sys.exit(app.exec_())

運行效果如下

python GUI庫圖形界面開發之PyQt5窗口背景與不規則窗口實例

不規則窗口實例 2

使用兩張圖片,一張用來做遮罩來控制窗口的大小,然后在利用paintEvent()函數重繪另一張為窗口的背景圖。

import sysfrom PyQt5.QtWidgets import QApplication,QWidgetfrom PyQt5.QtGui import QPixmap,QPainter,QBitmapclass MyForm(QWidget): def __init__(self,parent=None): super(MyForm, self).__init__(parent) #設置標題與初始窗口大小 self.setWindowTitle(’不規則窗口的實現例子’) self.pix=QBitmap(’./images/mask.png’) self.resize(self.pix.size()) self.setMask(self.pix) def paintEvent(self, QPaintEvent): painter=QPainter(self) #在指定位置繪制圖片 painter.drawPixmap(0,0,self.pix.width(),self.pix.height(),QPixmap(r’./images/screen1.jpg’))if __name__ == ’__main__’: app=QApplication(sys.argv) form=MyForm() form.show() sys.exit(app.exec_())

運行效果如下

python GUI庫圖形界面開發之PyQt5窗口背景與不規則窗口實例

可以拖動的不規則窗口實例

第二個窗口的實例是不可以拖動的,這里實現可以拖動的功能

import sysfrom PyQt5.QtWidgets import QApplication, QWidgetfrom PyQt5.QtGui import QPixmap, QPainter, QCursor, QBitmapfrom PyQt5.QtCore import Qtclass ShapeWidget(QWidget): def __init__(self, parent=None): super(ShapeWidget, self).__init__(parent) self.setWindowTitle('不規則的,可以拖動的窗體實現例子') self.mypix() # 顯示不規則 pix def mypix(self): #獲得圖片自身的遮罩 self.pix = QBitmap('./images/mask.png') #將獲得的圖片的大小作為窗口的大小 self.resize(self.pix.size()) #增加一個遮罩 self.setMask(self.pix) #print(self.pix.size()) self.dragPosition = None # 重定義鼠標按下響應函數mousePressEvent(QMouseEvent) # 鼠標移動響應函數mouseMoveEvent(QMouseEvent),使不規則窗體能響應鼠標事件,隨意拖動。 def mousePressEvent(self, event): #鼠標左鍵按下 if event.button() == Qt.LeftButton: self.m_drag = True self.m_DragPosition = event.globalPos() - self.pos() event.accept() self.setCursor(QCursor(Qt.OpenHandCursor)) if event.button() == Qt.RightButton: self.close() def mouseMoveEvent(self, QMouseEvent): if Qt.LeftButton and self.m_drag: # 當左鍵移動窗體修改偏移值 self.move(QMouseEvent.globalPos() - self.m_DragPosition) QMouseEvent.accept() def mouseReleaseEvent(self, QMouseEvent): self.m_drag = False self.setCursor(QCursor(Qt.ArrowCursor)) # 一般 paintEvent 在窗體首次繪制加載, 要重新加載paintEvent # 需要重新加載窗口使用 self.update() or self.repaint() def paintEvent(self, event): painter = QPainter(self) #在指定位置繪制圖片 painter.drawPixmap(0, 0, self.width(), self.height(), QPixmap('./images/boy.png'))if __name__ == ’__main__’: app = QApplication(sys.argv) form = ShapeWidget() form.show() app.exec_()

運行效果如下

python GUI庫圖形界面開發之PyQt5窗口背景與不規則窗口實例

本文主要介紹了python GUI庫PyQt5窗口背景與不規則窗口實例,大家可以參考下,更多關于這方面的文章大家可以點擊下面的相關鏈接

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久久噜噜噜| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 99久久久久国产精品| 日韩精品免费一区二区在线观看| 精品中文在线| 色婷婷色综合| 日韩精品2区| 久久久久国产精品一区二区| 99精品美女| 欧洲激情综合| 视频一区视频二区中文字幕| 亚洲精品美女91| 91福利精品在线观看| 日本一区二区三区中文字幕| 青青草伊人久久| 免费亚洲婷婷| 欧美日韩免费看片| 欧美特黄一区| 亚洲精品免费观看| 国产精品字幕| 成人午夜国产| 日韩精品视频网| 日韩精品不卡一区二区| 亚洲综合专区| 免费污视频在线一区| 成年男女免费视频网站不卡| 国产91一区| 亚洲视频二区| 国产精品调教| 久久久久久久久丰满| 国产亚洲精品v| 久久国产人妖系列| 女生影院久久| 蜜桃视频在线观看一区二区| 国产精品一级| 久久久久久美女精品| 在线观看视频免费一区二区三区| 国产精品色在线网站| 日韩欧美一区免费| 男女精品网站| 亚洲精品网址| 日本午夜精品视频在线观看| 亚洲高清久久| 久久精品人人| 日韩欧美高清一区二区三区| 综合国产精品| 日韩不卡一区二区三区| 国产夫妻在线| 亚洲日本三级| 中文字幕色婷婷在线视频| 亚洲一区二区免费看| 国产精品免费不| 亚洲精品一区二区妖精| 国产欧美一区二区色老头| 精精国产xxxx视频在线野外| 亚洲精品国产日韩| 天堂av在线| 日本不卡视频一二三区| 麻豆理论在线观看| 日本欧美韩国一区三区| av亚洲在线观看| 亚洲性色av| 精品国产欧美日韩| 国产精品videossex久久发布| 国产欧美日韩一区二区三区四区 | 久久亚洲国产精品一区二区| 国产欧美日韩视频在线| 精品一区在线| 久久69成人| 亚洲精品高潮| jiujiure精品视频播放| 精品国产aⅴ| 少妇精品久久久一区二区三区| sm久久捆绑调教精品一区| 日韩av午夜在线观看| 激情91久久| 日韩深夜视频| 久久电影tv| 福利一区在线| 里番精品3d一二三区| 日韩欧美精品一区二区综合视频| 亚洲精品一区二区在线看| 成人在线超碰| 综合色一区二区| 四虎影视精品| 精品视频在线你懂得| 美日韩精品视频| 久久久精品久久久久久96| 精品九九久久| 国产欧美一区二区三区国产幕精品| 99国产精品私拍| 激情亚洲影院在线观看| 蜜桃精品视频| 欧美私人啪啪vps| 视频一区二区三区入口| 91精品精品| 精品亚洲a∨| 国产日本久久| 日韩精品欧美成人高清一区二区| 在线亚洲自拍| 韩日一区二区三区| 国产精品久久久久9999高清 | 九一国产精品| 亚洲免费精品| 久热综合在线亚洲精品| 一本一道久久a久久| 亚洲免费毛片| 亚洲经典在线| 中文在线一区| 黄色亚洲大片免费在线观看| 麻豆精品蜜桃| 亚洲精品.com| 欧美成人基地| 久久久精品午夜少妇| 国产超碰精品| 久久精品国产www456c0m| 久久久一二三| 免费欧美一区| 噜噜噜躁狠狠躁狠狠精品视频| 久久成人一区| 天堂成人国产精品一区| 伊人影院久久| 国产精品极品| 日本成人在线一区| 欧美激情一区| 97在线精品| 在线视频精品| 久久激五月天综合精品| 女人天堂亚洲aⅴ在线观看| 久久久久久婷| 日韩成人亚洲| 激情婷婷久久| 亚洲欧美久久| 日韩激情综合| 久久字幕精品一区| 97在线精品| 米奇777超碰欧美日韩亚洲| 黑丝一区二区三区| 亚洲人成在线影院| 91精品国产一区二区在线观看 | 久久99蜜桃| 久久伊人久久| 成人国产综合| 午夜在线播放视频欧美| 亚洲欧洲国产精品一区| 欧美日韩一区自拍| 久久亚洲国产精品尤物| 高清不卡亚洲| 欧美午夜不卡| 欧美日韩国产在线观看网站 | 亚洲专区视频| 国产亚洲人成a在线v网站| 欧美激情日韩| 99精品视频在线| 在线精品福利| 国产精品嫩模av在线| 黄在线观看免费网站ktv| 在线一区电影| 91精品丝袜国产高跟在线| 97精品国产一区二区三区| 99国产精品久久久久久久| 国产欧美丝祙| 久久国产成人午夜av影院宅| 免费成人在线视频观看| 久久成人高清| 欧美影院三区| 日韩毛片一区| 国产精品高颜值在线观看| 美女尤物久久精品| 欧美激情麻豆| 精品在线播放| 青青伊人久久| 久久婷婷激情| 日韩av黄色在线| 亚洲一级特黄| 欧美一级二区| 91精品国产调教在线观看| 日韩精品一区二区三区中文在线| 手机在线电影一区| 在线观看亚洲精品福利片| 欧美激情国产在线| 亚洲久久在线| 国产成人免费视频网站视频社区| 欧美日韩国产综合网| 国产精品久久久久久久久免费高清| 欧美+亚洲+精品+三区| 欧美日韩视频免费看| 激情婷婷久久| 国产精品成人3p一区二区三区| 在线国产一区二区| 精品久久亚洲| 久久最新视频| 日韩中文在线电影| 人人精品久久| 国产字幕视频一区二区| 国产精品一区二区三区美女 | 国产毛片一区| 国产精品久久久久蜜臀| 日本亚洲不卡| 亚洲手机视频|