日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

pyqt5讲解13:图形与特效,设置窗口大小

發布時間:2024/9/30 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pyqt5讲解13:图形与特效,设置窗口大小 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一.窗口的風格

可以為每個QWidget都設置風格

setStyle(QStyle style)

獲取當前平臺支持的原有的QStyle樣式

QstyleFactory.keys()

對QApplication設置QStyle樣式

QApplication.setStyle(QStyleFactory.create(‘WindowsXP’))
風格大全
Windows
WindowsXP
WindowsVista
Fusion

如果其他Widget沒有設置QStyle,默認使用QApplication設置的style

算例1

import sys from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5 import QtCore from PyQt5.QtGui import *class AppWidget( QWidget):def __init__(self, parent=None):super(AppWidget, self).__init__(parent)self.setWindowTitle("界面風格例子")horizontalLayout = QHBoxLayout()self.styleLabel = QLabel("Set Style:")self.styleComboBox = QComboBox()# 增加 styles 從 QStyleFactoryself.styleComboBox.addItems( QStyleFactory.keys())# 選擇當前界面風格index = self.styleComboBox.findText(QApplication.style().objectName(),QtCore.Qt.MatchFixedString)# 設置當前界面風格self.styleComboBox.setCurrentIndex(index)# 通過comboBox選擇界面分割self.styleComboBox.activated[str].connect(self.handleStyleChanged)horizontalLayout.addWidget(self.styleLabel)horizontalLayout.addWidget(self.styleComboBox)self.setLayout(horizontalLayout)# 改變界面風格def handleStyleChanged(self, style):QApplication.setStyle(style)if __name__ == "__main__":app = QApplication(sys.argv)widgetApp = AppWidget()widgetApp.show()sys.exit(app.exec_())

算例2

import sys from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayout, QPushButton from PyQt5.QtWidgets import * class Winform(QWidget):def __init__(self, parent=None):super(Winform, self).__init__(parent)self.setWindowTitle("水平布局管理例子")# 水平布局按照從左到右的順序進行添加按鈕部件。hlayout = QHBoxLayout()hlayout.addWidget(QPushButton(str(1)))hlayout.addWidget(QPushButton(str(2)))hlayout.addWidget(QPushButton(str(3)))hlayout.addWidget(QPushButton(str(4)))hlayout.addWidget(QPushButton(str(5)))self.setLayout(hlayout)if __name__ == "__main__":app = QApplication(sys.argv)QApplication.setStyle(QStyleFactory.create('Windows'))form = Winform()form.show()sys.exit(app.exec_())

WindowsXP

二.設置窗口的樣式

基本窗口類型

窗口類型描述
Qt.Widget默認窗口,有最小化,最大化,關閉按鈕
Qt.Window普通窗口,有最小化,最大化,關閉按鈕
Qt.Dialog會話框窗口,有問號和關閉按鈕
Qt.Popup彈出窗口,窗口無邊框
Qt.ToolTip提示窗口,窗口無邊框,無任務欄
Qt.SplashScreen閃屏,窗口無邊框,無任務欄
Qt.SubWindow子窗口,窗口無按鈕,但有標題

自定義頂層窗口外觀標志

屬性描述
Qt.MSWindowsFixedSizeDialogHint固定窗口,無法調整大小
Qt.FramelessWindowHint窗口無邊框
Qt.CustomizeWindowHint有邊框,無標題欄與按鈕,不能移動和拖動
Qt.WindowTitleHint添加標題欄與關閉按鈕
Qt.WindowSystemMenuHint添加系統目錄和關閉按鈕
Qt.WindowMaximizeButtonHint激活最大化按鈕與關閉按鈕,禁止最小化按鈕
Qt.WindowMinimizeButtonHint激活最小化按鈕與關閉按鈕,禁止最大化按鈕
Qt.WindowMinMaxButtonsHint激活最大化與最小化按鈕和關閉按鈕
Qt.WindowCloseButtonHint添加一個關閉按鈕
Qt.WindowStaysOnTopHint窗口始終處于頂部位置
Qt.windowStaysOnButtonHint窗口始終處于底部位置

算例

# -*- coding: utf-8 -*- """【簡介】設置窗口樣式""" from PyQt5.QtCore import Qt import sys from PyQt5.QtWidgets import QMainWindow, QApplicationclass MainWindow(QMainWindow):def __init__(self, parent=None):super(MainWindow, self).__init__(parent)self.resize(477, 258)self.setWindowTitle("設置窗口樣式例子")# 設置窗口樣式為窗口無邊框化self.setWindowFlags(Qt.SubWindow)self.setObjectName("MainWindow")self.setStyleSheet("#MainWindow{border-image:url(duoren.jpg);}")if __name__ == "__main__":app = QApplication(sys.argv)win = MainWindow()win.show()sys.exit(app.exec_())

三.QSS 的 UI 美化

QSS(Qt Style Sheets)即 Qt 樣式表,用于自定義控件外觀,QSS 類似于 CSS 但沒有 CSS 的功能強大,選擇器較少。
1、QSS 的語法規則
QSS 的語法規則與 CSS 類似,都由兩部分:選擇器和聲明構成;選擇器指定哪些控件會受影響,聲明指定哪些屬性應該在控件上進行設置。
聲明由屬性和屬性值構成,其形式:屬性:值。

QPushButton {color:red}

算例1

from PyQt5.QtWidgets import * import sys class WindowDemo(QWidget): def __init__(self ): super().__init__()btn1 = QPushButton(self ) btn1.setText('按鈕1')btn2 = QPushButton(self ) btn2.setText('按鈕2') vbox=QVBoxLayout()vbox.addWidget(btn1)vbox.addWidget(btn2) self.setLayout(vbox)self.setWindowTitle("QSS樣式")if __name__ == "__main__": app = QApplication(sys.argv) win = WindowDemo() qssStyle = ''' QPushButton{ background-color: green; }'''win.setStyleSheet( qssStyle ) win.show() sys.exit(app.exec_())

QSS 選擇器有以下幾種類型:這些都是前端css里的內容

通配選擇器:*, 匹配所有的控件。
類型選擇器:類名,匹配所有的該類及其子類的控件,如,QPushButton。
屬性選擇器:類名[屬性=屬性值],如,QPushButton[name=“myBtn”],匹配所有 name 屬性為 myBtn 的 QPushButton 實例;屬性可以是自定義的,不一定非得類本身具有的屬性。
類選擇器:.類名(注意:前面有一個點號),匹配該類的所有實例,不包括子類。
ID 選擇器:#ID標識符,匹配所有 ID標識符 符合的控件,ID 即為 objectName 指定的值。
后代選擇器:例如 QDialog QPushButton,匹配所有的 QDialog 容器中包含的 QPushButton,不管是間接還是直接。
子選擇器:例如:QDialog > QPushButton,匹配所有 QDialog 容器中包含的 QPushButton,其中要求 QPushButton 的直接父容器為 QDialog。
3、QSS 子控件

算例2

from PyQt5.QtWidgets import * import sys class WindowDemo(QWidget): def __init__(self ): super().__init__()btn1 = QPushButton(self ) btn1.setText('按鈕1')btn2 = QPushButton(self ) btn2.setProperty( 'name' , 'myBtn' )btn2.setText('按鈕2') vbox=QVBoxLayout()vbox.addWidget(btn1)vbox.addWidget(btn2) self.setLayout(vbox)self.setWindowTitle("QSS樣式")if __name__ == "__main__": app = QApplication(sys.argv) win = WindowDemo() qssStyle = ''' QPushButton[name="myBtn"] { background-color: red }'''win.setStyleSheet( qssStyle ) win.show() sys.exit(app.exec_())

還可以通過setStyleSheet 來設置樣式

import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import *class Form(QDialog):def __init__(self, parent=None):super(Form, self).__init__(parent)layout = QVBoxLayout()self.btn1 = QPushButton("Button1")self.btn1.setStyleSheet("background-color:#ffffff; color:red;")layout.addWidget(self.btn1)self.btn2 = QPushButton('image')layout.addWidget(self.btn2)self.setLayout(layout)self.setWindowTitle("Button demo")if __name__ == '__main__':app = QApplication(sys.argv)btnDemo = Form()btnDemo.show()sys.exit(app.exec_())

常見樣式:

在樣式表中,每個部件都被看作是一個由四個同心相似的矩形組成的箱體:
空白(margin)、邊框(border)、填充(padding)和內容(content)。
對于一個平面部件——例如一個空白、邊框和填充都是0像素的部件——而言,這四個矩形是完全重合的。
空白區域位于邊框外,并且總是透明的。
邊框為部件提供了四周的框架,其border-style屬性可以設置為一些內置的框架風格,如inset、outset、solid和ridge。
填充在邊框和內容區域之間提供了空白間隔。

部件的前景色用于繪制上面的文本,可以通過color屬性指定。
背景色用于繪制部件的填充矩形,可以通過background-color屬性指定。
背景圖片使用background-image屬性定義,它用于繪制由background-origin指定的矩形區域(空白、邊框、填充或內容)。
背景 圖片在矩形區域內的對齊和平鋪方式可以通過background-position和background-repeat屬性指定。
如果指定的背景圖片具有alpha通道(即有半透明效果),通過background-color指定的顏色將會透過透明區域。這一功能可以使背景圖片在多種環境下重復利用。
該例子中使用的樣式表如下所示:

QFrame {
margin: 10px;
border: 2px solid green;
padding: 20px;
background-color: gray;
background-image: url(qt.png);
background-position: top right;
background-origin: content;
background-repeat: none;
}

實際上margin屬性可以在上下左右四個方向分別指定我們需要的不同值,例如:QFrame {
margin: 14px 18px 20px 18px;
}

都是前端css里的內容,忘記啦。

設置窗口大小

self.setWindowIcon(QIcon('2345_image_file_copy_1.jpg')) self.setFixedSize(1200, 700) self.setMinimumSize(1200, 700) self.setMaximumSize(1200, 700)

電氣工程的計算機萌新,寫博文不容易,如果你覺得本文對你有用,請點個贊支持下,謝謝。

總結

以上是生活随笔為你收集整理的pyqt5讲解13:图形与特效,设置窗口大小的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。