PyQt5 如何创建胶囊形状的按钮

  • Post category:Python

下面我就来详细讲解在Python中如何使用PyQt5库来创建胶囊形状的按钮。

首先,需要了解一下PyQt5的相关内容。PyQt5是一款Python的GUI编程工具,它基于Qt库来实现,可以帮助我们快速、简便地创建图形用户界面。创建胶囊形状的按钮需要使用QAbstractButton类中的样式表StyleSheet和自定义按钮QCommandLinkButton类。

接下来,为了创建胶囊形状的按钮,我们需要进行以下步骤:

  1. 创建一个QCommandLinkButton类的实例,并设置样式表。
  2. 在样式表中使用border-radius属性来设置按钮的圆角半径和padding属性设置按钮文字的边距。
  3. 最后,将按钮添加到主窗口中。

下面是一个示例代码,它可以创建一个胶囊形状的按钮:

import sys
from PyQt5.QtWidgets import QApplication, QCommandLinkButton


class CapsuleButton(QCommandLinkButton):
    def __init__(self, parent=None):
        super(CapsuleButton, self).__init__(parent)
        self.setStyleSheet("""
        QCommandLinkButton {
            background-color: #F0F0F0;
            border: none;
            color: #5e5e5e;
            padding: 6px 15px;
            text-align: center;
            font-size: 14px;
            font-weight: 400;
            border-radius: 25px;
            margin: 0 5px;
        }
        QCommandLinkButton:hover {
            background-color: #C0C0C0;
            color: #fff;
        }
        """)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    win = CapsuleButton()
    win.setText('这是一个胶囊形状的按钮')
    win.show()
    sys.exit(app.exec_())

在这个代码示例中,我们创建了一个CapsuleButton类,并继承了QCommandLinkButton类。在CapsuleButton类中,我们设置了样式表,其中包含了border-radius属性用来设置按钮的圆角半径,padding属性用来设置按钮文字的边距。

除了以上的示例之外,我们还可以创建一个带图标的胶囊形状的按钮,具体实现方式如下:

import sys
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QApplication, QCommandLinkButton


class CapsuleButton(QCommandLinkButton):
    def __init__(self, parent=None):
        super(CapsuleButton, self).__init__(parent)
        self.setIcon(QIcon('icon.png'))
        self.setIconSize(self.size()*0.5)
        self.setStyleSheet("""
        QCommandLinkButton {
            background-color: #F0F0F0;
            border: none;
            color: #5e5e5e;
            padding: 6px 15px;
            text-align: center;
            font-size: 14px;
            font-weight: 400;
            border-radius: 25px;
            margin: 0 5px;
        }
        QCommandLinkButton:hover {
            background-color: #C0C0C0;
            color: #fff;
        }
        """)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    win = CapsuleButton()
    win.setText('这是一个带图标的胶囊形状的按钮')
    win.show()
    sys.exit(app.exec_())

这个示例和上面的示例代码类似,只是在按钮上添加了一个图标,并且在代码中设置了图标的大小。