add main_ui.py(中交三航主界面)
This commit is contained in:
36
view/widgets/circular_button.py
Normal file
36
view/widgets/circular_button.py
Normal file
@ -0,0 +1,36 @@
|
||||
from PySide6.QtWidgets import QPushButton
|
||||
from PySide6.QtGui import QPainter, QColor, QFont, Qt, QBrush
|
||||
|
||||
|
||||
class CircularButton(QPushButton):
|
||||
"""自定义圆形按钮,处理 hover 颜色变化"""
|
||||
def __init__(self, text, parent=None):
|
||||
super().__init__(text, parent)
|
||||
self.setFixedSize(40, 40)
|
||||
# self.normal_color = QColor(1, 18, 98) # 正常颜色 (RGB: 1,18,98)
|
||||
self.normal_color = QColor(86, 119, 252)
|
||||
self.hover_color = QColor(24, 253, 255) # hover 颜色 (RGB: 24,253,255)
|
||||
self.current_color = self.normal_color
|
||||
self.setStyleSheet("background: transparent; border: none;")
|
||||
|
||||
def enterEvent(self, event):
|
||||
self.current_color = self.hover_color
|
||||
self.update()
|
||||
super().enterEvent(event)
|
||||
|
||||
def leaveEvent(self, event):
|
||||
self.current_color = self.normal_color
|
||||
self.update()
|
||||
super().leaveEvent(event)
|
||||
|
||||
def paintEvent(self, event):
|
||||
painter = QPainter(self)
|
||||
painter.setRenderHint(QPainter.Antialiasing)
|
||||
# 绘制圆形背景
|
||||
painter.setBrush(QBrush(self.current_color))
|
||||
painter.setPen(Qt.NoPen)
|
||||
painter.drawEllipse(0, 0, self.width(), self.height())
|
||||
# 绘制白色文字
|
||||
painter.setPen(Qt.white)
|
||||
painter.setFont(QFont("Arial", 10, QFont.Bold))
|
||||
painter.drawText(self.rect(), Qt.AlignCenter, self.text())
|
||||
Reference in New Issue
Block a user