效果如下:
直接上源码:
from PyQt6.QtCore import *
from PyQt6.QtWidgets import *
from PyQt6.QtGui import *
from PyQt6.QtMultimedia import *
from PyQt6.QtMultimediaWidgets import *
class VIPSubscriptionWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("开通贵族")
self.setFixedSize(650, 550)
self.initUI()
def SwitchingPrices(self, widget, price):
for i in range(1,10):
eval(f"self.Service{i}").setStyleSheet('''
QPushButton {
border: 1px solid rgb(200, 200, 200); /* 设置按钮边框 */
}
QPushButton:hover {
border-color: rgb(50, 50, 50); /* 悬浮时边框深灰色 */
}
''')
widget.setStyleSheet('''
QPushButton {
background-color : rgba(50, 50, 50, 15);
border: 3px solid rgb(50, 50, 50); /* 设置按钮边框 */
}
QPushButton:hover {
border-color: rgb(50, 50, 50); /* 悬浮时边框深灰色 */
}
''')
self.ImmediatePayment.setText(f"立即支付 ¥{price}")
def initUI(self):
self.Head = QLabel("",self)
self.Head.setStyleSheet("""border: 1px solid black; font-size : 15px""")
self.Head.setGeometry(20,20,50,50)
self.Name = QLabel("宠",self)
self.Name.setStyleSheet("""border: 0px solid black; font-size : 15px""")
self.Name.setGeometry(80,20,550,25)
self.Dimension = QLabel("未开通贵族",self)
self.Dimension.setStyleSheet("""border: 0px solid black; font-size : 13px; color : gray""")
self.Dimension.setGeometry(80,45,550,20)
self.Dimension2 = QLabel("开通贵族畅享贵族专属特权+贵族专属商店",self)
self.Dimension2.setStyleSheet("""border: 0px solid black; font-size : 16px; font-weight: bold; color : rgb(53,51,48);""")
self.Dimension2.setGeometry(20,100,610,30)
self.ServiceArea = QScrollArea(self)
self.ServiceArea.setGeometry(0,150,650,200)
self.ServiceArea.setStyleSheet('''
QScrollArea {
border: none;
}
''')
# 创建内容部件
self.ServiceAreaInternal = QWidget(self.ServiceArea)
self.ServiceAreaInternal.setGeometry(0, 0, 880, 490) # 设置内容部件的位置和大小
self.ServiceAreaInternal.setStyleSheet('''
background: rgba(0, 0, 0, 0); /* 设置背景透明 */
border: 0px solid white;
border-radius: 15px; /* 可选:设置圆角半径 */
''')
# 创建垂直布局管理器
self.ServiceAreaLayout = QHBoxLayout(self.ServiceAreaInternal)
self.ServiceAreaLayout.setSpacing(20) # 设置控件之间的间距为20个像素
# 将内容部件设置为滚动区域的可滚动部件
self.ServiceArea.setWidget(self.ServiceAreaInternal)
self.ServiceArea.setWidgetResizable(True) # 允许内容部件调整大小以适应滚动区域
"价格1"
self.Service1 = QPushButton(self.ServiceArea)
self.Service1.setFixedWidth(150)
self.Service1.setFixedHeight(160)
self.Service1.setCursor(Qt.CursorShape.PointingHandCursor)
self.Service1.clicked.connect(lambda event : self.SwitchingPrices(self.Service1,288))
self.Service1.setStyleSheet('''
QPushButton {
background-color : rgba(50, 50, 50, 15);
border: 3px solid rgb(50, 50, 50); /* 设置按钮边框 */
}
QPushButton:hover {
border-color: rgb(50, 50, 50); /* 悬浮时边框深灰色 */
}
''')
self.Service1Label = QLabel("1小时",self.Service1)
self.Service1Label.setStyleSheet("""border: 0px solid black; font-size : 18px; font-weight: bold; color : rgb(53,51,48);""")
self.Service1Label.setGeometry(0,40,150,20)
self.Service1Label.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.Service1Money = QLabel("¥288",self.Service1)
self.Service1Money.setStyleSheet("""border: 0px solid black; font-size : 30px; font-weight: bold; color : rgb(53,51,48);""")
self.Service1Money.setGeometry(0,70,150,40)
self.Service1Money.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.Service1Discount = QLabel("¥300",self.Service1)
self.Service1Discount.setStyleSheet("""border: 0px solid black; font-size : 12px; font-weight: bold; color : gray; text-decoration: line-through;""")
self.Service1Discount.setGeometry(0,130,150,20)
self.Service1Discount.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.ServiceAreaLayout.addWidget(self.Service1)
"价格2"
self.Service2 = QPushButton(self.ServiceArea)
self.Service2.setFixedWidth(150)
self.Service2.setFixedHeight(160)
self.Service2.setCursor(Qt.CursorShape.PointingHandCursor)
self.Service2.clicked.connect(lambda event : self.SwitchingPrices(self.Service2,1288))
self.Service2.setStyleSheet('''
QPushButton {
border: 1px solid rgb(200, 200, 200); /* 设置按钮边框 */
}
QPushButton:hover {
border-color: rgb(50, 50, 50); /* 悬浮时边框深灰色 */
}
''')
self.Service2Label = QLabel("6小时",self.Service2)
self.Service2Label.setStyleSheet("""border: 0px solid black; font-size : 18px; font-weight: bold; color : rgb(53,51,48);""")
self.Service2Label.setGeometry(0,40,150,20)
self.Service2Label.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.Service2Money = QLabel("¥1288",self.Service2)
self.Service2Money.setStyleSheet("""border: 0px solid black; font-size : 30px; font-weight: bold; color : rgb(53,51,48);""")
self.Service2Money.setGeometry(0,70,150,40)
self.Service2Money.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.Service2Discount = QLabel("¥1800",self.Service2)
self.Service2Discount.setStyleSheet("""border: 0px solid black; font-size : 12px; font-weight: bold; color : gray; text-decoration: line-through;""")
self.Service2Discount.setGeometry(0,130,150,20)
self.Service2Discount.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.ServiceAreaLayout.addWidget(self.Service2)
"价格3"
self.Service3 = QPushButton(self.ServiceArea)
self.Service3.setFixedWidth(150)
self.Service3.setFixedHeight(160)
self.Service3.setCursor(Qt.CursorShape.PointingHandCursor)
self.Service3.clicked.connect(lambda event : self.SwitchingPrices(self.Service3,2888))
self.Service3.setStyleSheet('''
QPushButton {
border: 1px solid rgb(200, 200, 200); /* 设置按钮边框 */
}
QPushButton:hover {
border-color: rgb(50, 50, 50); /* 悬浮时边框深灰色 */
}
''')
self.Service3Label = QLabel("12小时",self.Service3)
self.Service3Label.setStyleSheet("""border: 0px solid black; font-size : 18px; font-weight: bold; color : rgb(53,51,48);""")
self.Service3Label.setGeometry(0,40,150,20)
self.Service3Label.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.Service3Money = QLabel("¥2888",self.Service3)
self.Service3Money.setStyleSheet("""border: 0px solid black; font-size : 30px; font-weight: bold; color : rgb(53,51,48);""")
self.Service3Money.setGeometry(0,70,150,40)
self.Service3Money.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.Service3Discount = QLabel("¥3600",self.Service3)
self.Service3Discount.setStyleSheet("""border: 0px solid black; font-size : 12px; font-weight: bold; color : gray; text-decoration: line-through;""")
self.Service3Discount.setGeometry(0,130,150,20)
self.Service3Discount.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.ServiceAreaLayout.addWidget(self.Service3)
"价格4"
self.Service4 = QPushButton(self.ServiceArea)
self.Service4.setFixedWidth(150)
self.Service4.setFixedHeight(160)
self.Service4.setCursor(Qt.CursorShape.PointingHandCursor)
self.Service4.clicked.connect(lambda event : self.SwitchingPrices(self.Service4,5288))
self.Service4.setStyleSheet('''
QPushButton {
border: 1px solid rgb(200, 200, 200); /* 设置按钮边框 */
}
QPushButton:hover {
border-color: rgb(50, 50, 50); /* 悬浮时边框深灰色 */
}
''')
self.Service4Label = QLabel("1天",self.Service4)
self.Service4Label.setStyleSheet("""border: 0px solid black; font-size : 18px; font-weight: bold; color : rgb(53,51,48);""")
self.Service4Label.setGeometry(0,40,150,20)
self.Service4Label.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.Service4Money = QLabel("¥5288",self.Service4)
self.Service4Money.setStyleSheet("""border: 0px solid black; font-size : 30px; font-weight: bold; color : rgb(53,51,48);""")
self.Service4Money.setGeometry(0,70,150,40)
self.Service4Money.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.Service4Discount = QLabel("¥7200",self.Service4)
self.Service4Discount.setStyleSheet("""border: 0px solid black; font-size : 12px; font-weight: bold; color : gray; text-decoration: line-through;""")
self.Service4Discount.setGeometry(0,130,150,20)
self.Service4Discount.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.ServiceAreaLayout.addWidget(self.Service4)
"价格5"
self.Service5 = QPushButton(self.ServiceArea)
self.Service5.setFixedWidth(150)
self.Service5.setFixedHeight(160)
self.Service5.setCursor(Qt.CursorShape.PointingHandCursor)
self.Service5.clicked.connect(lambda event : self.SwitchingPrices(self.Service5,15888))
self.Service5.setStyleSheet('''
QPushButton {
border: 1px solid rgb(200, 200, 200); /* 设置按钮边框 */
}
QPushButton:hover {
border-color: rgb(50, 50, 50); /* 悬浮时边框深灰色 */
}
''')
self.Service5Label = QLabel("3天",self.Service5)
self.Service5Label.setStyleSheet("""border: 0px solid black; font-size : 18px; font-weight: bold; color : rgb(53,51,48);""")
self.Service5Label.setGeometry(0,40,150,20)
self.Service5Label.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.Service5Money = QLabel("¥15888",self.Service5)
self.Service5Money.setStyleSheet("""border: 0px solid black; font-size : 30px; font-weight: bold; color : rgb(53,51,48);""")
self.Service5Money.setGeometry(0,70,150,40)
self.Service5Money.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.Service5Discount = QLabel("¥21600",self.Service5)
self.Service5Discount.setStyleSheet("""border: 0px solid black; font-size : 12px; font-weight: bold; color : gray; text-decoration: line-through;""")
self.Service5Discount.setGeometry(0,130,150,20)
self.Service5Discount.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.ServiceAreaLayout.addWidget(self.Service5)
"价格6"
self.Service6 = QPushButton(self.ServiceArea)
self.Service6.setFixedWidth(150)
self.Service6.setFixedHeight(160)
self.Service6.setCursor(Qt.CursorShape.PointingHandCursor)
self.Service6.clicked.connect(lambda event : self.SwitchingPrices(self.Service6,42888))
self.Service6.setStyleSheet('''
QPushButton {
border: 1px solid rgb(200, 200, 200); /* 设置按钮边框 */
}
QPushButton:hover {
border-color: rgb(50, 50, 50); /* 悬浮时边框深灰色 */
}
''')
self.Service6Label = QLabel("1周",self.Service6)
self.Service6Label.setStyleSheet("""border: 0px solid black; font-size : 18px; font-weight: bold; color : rgb(53,51,48);""")
self.Service6Label.setGeometry(0,40,150,20)
self.Service6Label.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.Service6Money = QLabel("¥42888",self.Service6)
self.Service6Money.setStyleSheet("""border: 0px solid black; font-size : 30px; font-weight: bold; color : rgb(53,51,48);""")
self.Service6Money.setGeometry(0,70,150,40)
self.Service6Money.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.Service6Discount = QLabel("¥50400",self.Service6)
self.Service6Discount.setStyleSheet("""border: 0px solid black; font-size : 12px; font-weight: bold; color : gray; text-decoration: line-through;""")
self.Service6Discount.setGeometry(0,130,150,20)
self.Service6Discount.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.ServiceAreaLayout.addWidget(self.Service6)
"价格7"
self.Service7 = QPushButton(self.ServiceArea)
self.Service7.setFixedWidth(150)
self.Service7.setFixedHeight(160)
self.Service7.setCursor(Qt.CursorShape.PointingHandCursor)
self.Service7.clicked.connect(lambda event : self.SwitchingPrices(self.Service7,188888))
self.Service7.setStyleSheet('''
QPushButton {
border: 1px solid rgb(200, 200, 200); /* 设置按钮边框 */
}
QPushButton:hover {
border-color: rgb(50, 50, 50); /* 悬浮时边框深灰色 */
}
''')
self.Service7Label = QLabel("1个月",self.Service7)
self.Service7Label.setStyleSheet("""border: 0px solid black; font-size : 18px; font-weight: bold; color : rgb(53,51,48);""")
self.Service7Label.setGeometry(0,40,150,20)
self.Service7Label.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.Service7Money = QLabel("¥188888",self.Service7)
self.Service7Money.setStyleSheet("""border: 0px solid black; font-size : 30px; font-weight: bold; color : rgb(53,51,48);""")
self.Service7Money.setGeometry(0,70,150,40)
self.Service7Money.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.Service7Discount = QLabel("¥216000",self.Service7)
self.Service7Discount.setStyleSheet("""border: 0px solid black; font-size : 12px; font-weight: bold; color : gray; text-decoration: line-through;""")
self.Service7Discount.setGeometry(0,130,150,20)
self.Service7Discount.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.ServiceAreaLayout.addWidget(self.Service7)
"价格8"
self.Service8 = QPushButton(self.ServiceArea)
self.Service8.setFixedWidth(150)
self.Service8.setFixedHeight(160)
self.Service8.setCursor(Qt.CursorShape.PointingHandCursor)
self.Service8.clicked.connect(lambda event : self.SwitchingPrices(self.Service8,988888))
self.Service8.setStyleSheet('''
QPushButton {
border: 1px solid rgb(200, 200, 200); /* 设置按钮边框 */
}
QPushButton:hover {
border-color: rgb(50, 50, 50); /* 悬浮时边框深灰色 */
}
''')
self.Service8Label = QLabel("6个月",self.Service8)
self.Service8Label.setStyleSheet("""border: 0px solid black; font-size : 18px; font-weight: bold; color : rgb(53,51,48);""")
self.Service8Label.setGeometry(0,40,150,20)
self.Service8Label.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.Service8Money = QLabel("¥988888",self.Service8)
self.Service8Money.setStyleSheet("""border: 0px solid black; font-size : 30px; font-weight: bold; color : rgb(53,51,48);""")
self.Service8Money.setGeometry(0,70,150,40)
self.Service8Money.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.Service8Discount = QLabel("¥1296000",self.Service8)
self.Service8Discount.setStyleSheet("""border: 0px solid black; font-size : 12px; font-weight: bold; color : gray; text-decoration: line-through;""")
self.Service8Discount.setGeometry(0,130,150,20)
self.Service8Discount.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.ServiceAreaLayout.addWidget(self.Service8)
"价格9"
self.Service9 = QPushButton(self.ServiceArea)
self.Service9.setFixedWidth(150)
self.Service9.setFixedHeight(160)
self.Service9.setCursor(Qt.CursorShape.PointingHandCursor)
self.Service9.clicked.connect(lambda event : self.SwitchingPrices(self.Service9,1288888))
self.Service9.setStyleSheet('''
QPushButton {
border: 1px solid rgb(200, 200, 200); /* 设置按钮边框 */
}
QPushButton:hover {
border-color: rgb(50, 50, 50); /* 悬浮时边框深灰色 */
}
''')
self.Service9Label = QLabel("1年",self.Service9)
self.Service9Label.setStyleSheet("""border: 0px solid black; font-size : 18px; font-weight: bold; color : rgb(53,51,48);""")
self.Service9Label.setGeometry(0,40,150,20)
self.Service9Label.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.Service9Money = QLabel("¥1288888",self.Service9)
self.Service9Money.setStyleSheet("""border: 0px solid black; font-size : 30px; font-weight: bold; color : rgb(53,51,48);""")
self.Service9Money.setGeometry(0,70,150,40)
self.Service9Money.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.Service9Discount = QLabel("¥2628000",self.Service9)
self.Service9Discount.setStyleSheet("""border: 0px solid black; font-size : 12px; font-weight: bold; color : gray; text-decoration: line-through;""")
self.Service9Discount.setGeometry(0,130,150,20)
self.Service9Discount.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.ServiceAreaLayout.addWidget(self.Service9)
self.PaymentMethod = QLabel("支付方式 零钱",self)
self.PaymentMethod.setStyleSheet("""border: 0px solid black; font-size : 13px; font-weight: bold; color : rgb(53,51,48);""")
self.PaymentMethod.setGeometry(20,360,610,30)
self.ImmediatePayment = QPushButton("立即支付 ¥288",self)
self.ImmediatePayment.setCursor(Qt.CursorShape.PointingHandCursor)
self.ImmediatePayment.setStyleSheet('''
QPushButton {
background-color: gray; /* 半透明灰色背景 */
color: rgb(53,51,48); /* 设置按钮文字颜色 */
padding: 5px 10px;
border-radius: 25px; /* 设置圆角 */
font-size: 18px;
font-weight: bold;
}
QPushButton:hover {
background-color: rgba(0, 0, 0, 100); /* 鼠标悬停时的背景颜色 */
}
''')
self.ImmediatePayment.setGeometry(180,420,310,50)
self.Dimension3 = QLabel(self)
self.Dimension3.setText('<html>贵族专享 <font size="5">10+</font> 项专属特权</html>')
self.Dimension3.setStyleSheet("""border: 0px solid black; font-size : 14px; font-weight: bold; color : rgb(53,51,48);""")
self.Dimension3.setGeometry(20,500,610,30)
self.ServiceAreaLayout.setAlignment(Qt.AlignmentFlag.AlignLeft)
if __name__ == "__main__":
app = QApplication([])
window = VIPSubscriptionWindow()
window.show()
app.exec()