📌  相关文章
📜  PyQt5 QCommandLinkButton – 为按下状态设置边框(1)

📅  最后修改于: 2023-12-03 15:18:48.469000             🧑  作者: Mango

PyQt5 QCommandLinkButton – 为按下状态设置边框

PyQt5是一个Python库,它允许开发人员使用Python语言创建GUI应用程序。PyQt5 QCommandLinkButton是一种按钮控件,其外观类似于超链接,可以在应用程序中用作帮助文档、关于...或其他说明性页面中的按钮。

在本教程中,我们将看到如何为PyQt5 QCommandLinkButton的按下状态设置边框。

设置按下状态边框

使用QSS(Qt样式表)可以实现样式自定义,我们可以设置不同的CSS属性来为不同的控件定制样式。

以下是为QCommandLinkButton设置按下状态边框的示例代码:

from PyQt5.QtWidgets import QApplication, QMainWindow, QCommandLinkButton
from PyQt5.QtGui import QFontDatabase
from PyQt5.QtCore import Qt

class AppDemo(QMainWindow):
    def __init__(self):
        super().__init__()

        # 在字体中添加FontAwesome字体
        QFontDatabase.addApplicationFont("fontawesome-webfont.ttf")

        # 创建QCommandLinkButton
        self.btn = QCommandLinkButton(self)
        self.btn.setText("按下我")
        self.btn.clicked.connect(self.on_click)

        # 设置QSS样式
        self.btn.setStyleSheet("""
            QCommandLinkButton {
                border: 2px solid gray;
                border-radius: 5px;
                padding: 5px;
                font-size: 16px;
            }
            QCommandLinkButton:hover {
                background-color:gray;
            }
            QCommandLinkButton:pressed {
                border: 2px solid red;
                color: white;
                background-color: red;
            }
        """)

        self.setCentralWidget(self.btn)

    def on_click(self):
        print("Button Clicked")

if __name__ == '__main__':
    app = QApplication([])
    demo = AppDemo()
    demo.show()
    app.exec_()

代码片段的解释:

  1. 导入所需的模块。
  2. 创建一个名为AppDemo的类,该类继承自QMainWindow。
  3. 在字体中添加所需的字体库。
  4. 创建QCommandLinkButton并设置按钮的文本和单击事件。
  5. 通过QSS设置样式表,为QCommandLinkButton设置默认、悬停和按下三种状态的样式。
  6. 将按钮设置为窗口的中央控件。
  7. 创建on_click方法,该方法在按钮单击时被调用。
  8. 启动应用程序。

运行上面的代码,我们可以看到一个QCommandLinkButton按钮,当按下按钮时,它显示为红色边框和红色背景。周围的按钮外壳将保持灰色。