PyQt5 – 为Push Button设置边框

  • Post category:Python

PyQt5 – 为PushButton设置边框

在PyQt5中,我们可以通过设置样式表来为QPushButton等控件设置边框。下面介绍具体步骤。

步骤1:导入必要的模块

为了使用PyQt5创建GUI应用程序,我们需要导入以下模块:

from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import Qt

步骤2:创建主窗口

创建主窗口的代码如下:

app = QApplication(sys.argv)
win = QWidget()
win.setGeometry(100, 100, 300, 200)
win.setWindowTitle('PyQt5 - 为PushButton设置边框')

步骤3:创建PushButton控件

创建PushButton控件的代码如下:

button = QPushButton('Click me', win)
button.setGeometry(100, 80, 100, 30)

其中win是按钮控件的父控件,设置按钮的位置和大小。

步骤4:设置边框样式

设置边框样式是通过设置按钮的样式表来实现的。样式表是一组CSS样式,我们可以使用这些样式来设置控件的外观。下面的示例代码使用样式设置了按钮的边框颜色、宽度和样式。

button.setStyleSheet("QPushButton { border-style: solid; border-width: 2px; border-color: blue;}")

设置边框样式后,我们可以在PyQt5中看到具有边框的PushButton控件。

示例1:设置不同风格的边框

下面是一个示例,介绍如何设置不同风格的边框。我们可以使用以下样式来设置边框样式:

button.setStyleSheet("QPushButton { border-style: none; }")

button.setStyleSheet("QPushButton { border-style: solid; \
                                border-width: 2px; \
                                border-color: blue; }")

button.setStyleSheet("QPushButton { border-style: outset; \
                                border-width: 2px; \
                                border-color: blue; }")

button.setStyleSheet("QPushButton { border-style: inset; \
                                border-width: 2px; \
                                border-color: blue; }")

button.setStyleSheet("QPushButton { border-style: groove; \
                                border-width: 2px; \
                                border-color: blue; }")

button.setStyleSheet("QPushButton { border-style: ridge; \
                                border-width: 2px; \
                                border-color: blue; }")

示例2:设置圆角边框

下面是一个示例,介绍如何设置圆角边框。我们可以使用border-radius属性来设置圆角边框的半径,如下所示:

button.setStyleSheet("QPushButton { border-style: solid; \
                                border-width: 2px; \
                                border-color: blue; \
                                border-radius: 5px; }")

在这个示例中,使用了border-radius属性来设置圆角边框的半径。半径越大,圆角就越大。

完整代码

下面是完整的示例代码:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import Qt

app = QApplication(sys.argv)
win = QWidget()
win.setGeometry(100, 100, 300, 200)
win.setWindowTitle('PyQt5 - 为PushButton设置边框')

button = QPushButton('Click me', win)
button.setGeometry(100, 80, 100, 30)

# 设置不同风格的边框样式

# 无边框
# button.setStyleSheet("QPushButton { border-style: none; }")

# 实线边框
# button.setStyleSheet("QPushButton { border-style: solid; \
#                                 border-width: 2px; \
#                                 border-color: blue; }")

# 凸起边框
# button.setStyleSheet("QPushButton { border-style: outset; \
#                                 border-width: 2px; \
#                                 border-color: blue; }")

# 凹陷边框
# button.setStyleSheet("QPushButton { border-style: inset; \
#                                 border-width: 2px; \
#                                 border-color: blue; }")

# 槽状边框
# button.setStyleSheet("QPushButton { border-style: groove; \
#                                 border-width: 2px; \
#                                 border-color: blue; }")

# 突出边框
# button.setStyleSheet("QPushButton { border-style: ridge; \
#                                 border-width: 2px; \
#                                 border-color: blue; }")

# 设置圆角边框
button.setStyleSheet("QPushButton { border-style: solid; \
                            border-width: 2px; \
                            border-color: blue; \
                            border-radius: 5px; }")

win.show()
sys.exit(app.exec_())

运行以上代码,可以看到圆角边框的PushButton控件。您还可以尝试使用示例1中所提供的不同的边框样式来自定义控件的外观。