按钮美化
通过
qtawesome.icon
为按钮添加图标通过
setToolTip
为按钮添加提示语
1
2self.button1 = QPushButton(qtawesome.icon('fa.file-code-o', color='black'), "按钮显示的文字")
self.button1.setToolTip('提示语')图标可于 https://fontawesome.dashgame.com/ 中筛选
- 设置按钮透明度
1
2
3op = QtWidgets.QGraphicsOpacityEffect()
op.setOpacity(0.6)
self.pushButton.setGraphicsEffect(op)
窗口美化
通过QSS设定窗口的背景颜色、圆角化等,再设定透明度,美化窗口
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15self.main_widget.setStyleSheet('''
QWidget#left_widget{
background:rgb(255,228,225);
border-top:1px solid white;
border-bottom:1px solid white;
border-left:1px solid white;
border-top-left-radius:10px;
border-bottom-left-radius:10px;
}
QWidget#right_widget{
background:rgb(152,245,255);
border-top-right-radius:10px;
border-bottom-right-radius:10px;
}
''')1
2self.setWindowOpacity(0.9) # 设置窗口透明度
self.setAttribute(QtCore.Qt.WA_TranslucentBackground) # 设置窗口背景透明窗口边框美化
窗口原来的边框过于简陋,因此加以隐藏
self.setWindowFlag(QtCore.Qt.FramelessWindowHint) # 隐藏边框
因为隐藏窗口边框之后,原来的关闭、最小最大化按钮随之隐藏,我们需要自己设计这些功能按钮
1
2
3
4
5
6
7self.left_close = QtWidgets.QPushButton("") # 关闭按钮
self.left_visit = QtWidgets.QPushButton("") # 空白按钮
self.left_mini = QtWidgets.QPushButton("") # 最小化按钮
self.left_close.clicked.connect(self.close)
self.left_visit.clicked.connect(self.showMaximized)
self.left_mini.clicked.connect(self.showMinimized)对按钮加以美化
1
2
3
4
5
6
7
8
9
10self.left_close.setStyleSheet(
'''QPushButton{background:#F76677;border-radius:5px;}QPushButton:hover{background:red;}''')
self.left_visit.setStyleSheet(
'''QPushButton{background:#F7D674;border-radius:5px;}QPushButton:hover{background:yellow;}''')
self.left_mini.setStyleSheet(
'''QPushButton{background:#6DDF6D;border-radius:5px;}QPushButton:hover{background:green;}''')
self.left_close.setFixedSize(15,15) # 设置关闭按钮的大小
self.left_visit.setFixedSize(15, 15) # 设置按钮大小
self.left_mini.setFixedSize(15, 15) # 设置最小化按钮大小考虑到隐藏窗口之后,难以拖动窗口,我们需要自己编写鼠标拖动函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22def mousePressEvent(self, event):
try:
if event.button() == QtCore.Qt.LeftButton:
self.m_flag = True
self.m_Position = event.globalPos() - self.pos() # 获取鼠标相对窗口的位置
event.accept()
self.setCursor(QCursor(QtCore.Qt.OpenHandCursor)) # 更改鼠标图标
except Exception as e:
print(e)
def mouseMoveEvent(self, QMouseEvent):
try:
if QtCore.Qt.LeftButton and self.m_flag:
self.move(QMouseEvent.globalPos() - self.m_Position) # 更改窗口位置
QMouseEvent.accept()
except Exception as e:
print(e)
def mouseReleaseEvent(self, QMouseEvent):
try:
self.m_flag = False
self.setCursor(QCursor(QtCore.Qt.ArrowCursor))
except Exception as e:
print(e)QTabWidget美化
1
2
3str = "QTabBar::tab{background-color:rbg(255,0,255);}" + \
"QTabBar::tab:selected{background-color:rgb(255,228,225);} "
self.setStyleSheet(str)设置QStyle样式
app.setStyle(QStyleFactory.create("WindowsXP"))
添加图标
1
2
3
4
5
6
7
8icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap("xxx.jpg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
mainwindow.setWindowIcon(icon)
button.setIcon(icon2)
tab.setIcon(icon3)