PyQt5 QCommandLinkButton – 切换可检查按钮

  • Post category:Python

PyQt5是Python语言的一个GUI编程工具包,其中的QCommandLinkButton类是可切换可检查按钮的一种类型。下面详细介绍QCommandLinkButton类的使用方法及示例:

QCommandLinkButton的基本介绍

QCommandLinkButton是继承自QPushButton的一种,它提供了一种可以显示头像图片的可点击按钮,并且可以切换选择状态的功能。同时,它还可以作为超链接类型的文本被点击打开网址或一些文本资料。

QCommandLinkButton的使用步骤

1.引入PyQt5库,导入需要的工具,创建QApplication对象和QMainWindow窗体对象。

from PyQt5 import QtCore, QtGui, QtWidgets
import sys

app = QtWidgets.QApplication(sys.argv)  
MainWindow = QtWidgets.QMainWindow()

2.创建QCommandLinkButton,设置父控件,设置以及初始化QCommandLinkButton的各项参数(如名字、内容等)。参数含义如下:

name:QCommandLinkButton的名称;

text:QCommandLinkButton按钮上面显示的文本内容;

description:QCommandLinkButton鼠标悬停时显示的文本内容;

icon:QCommandLinkButton按钮上的图标。

self.commandLinkButton = QtWidgets.QCommandLinkButton(MainWindow)
self.commandLinkButton.setObjectName("commandLinkButton")
self.commandLinkButton.setText("PyQt5 QCommandLinkButton")
self.commandLinkButton.setDescription("This is a description.")
self.commandLinkButton.setIcon(QtGui.QIcon("icon.ico"))

3.运行窗口程序。最后需要对创建的窗口进行显示。

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

QCommandLinkButton的使用示例

以下两个示例,一个用于展示点击QCommandLinkButton时会在控制台输出提示信息,另一个用于演示如何切换QCommandLinkButton的状态。

示例一:点击QCommandLinkButton输出提示信息

在此示例中,我们将创建一个QCommandLinkButton,当用户点击该按钮时,将在控制台上输出提示信息。

from PyQt5 import QtCore, QtGui, QtWidgets
import sys

class MainWindow(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()

        # 设置界面尺寸和标题
        self.setGeometry(500, 300, 300, 200)
        self.setWindowTitle("QCommandLinkButton 示例")

        # 新建QCommandLinkButton控件,并对其进行设置
        self.commandLinkButton = QtWidgets.QCommandLinkButton(self)
        self.commandLinkButton.setObjectName("commandLinkButton")
        self.commandLinkButton.setText("点击此处")
        self.commandLinkButton.setDescription("这是一个QCommandLinkButton示例。")
        self.commandLinkButton.setIcon(QtGui.QIcon("icon.ico"))
        self.commandLinkButton.clicked.connect(self.showMessage)

    def showMessage(self):
        print("你点击了QCommandLinkButton按钮!")

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

运行该程序,当我们点击QCommandLinkButton按钮时,就会在控制台上输出相应的提示信息。

示例二:切换QCommandLinkButton的状态

在此示例中,我们将创建两个QCommandLinkButton控件,分别表示“on”和“off”两个状态。当用户点击其中一个按钮时,该按钮就会处于选中状态,而另一个按钮则会处于未选中状态。

from PyQt5 import QtCore, QtGui, QtWidgets
import sys

class MainWindow(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()

        # 设置界面尺寸和标题
        self.setGeometry(500, 300, 300, 200)
        self.setWindowTitle("QCommandLinkButton 示例")

        # 新建两个QCommandLinkButton控件,并对其进行设置
        self.onBtn = QtWidgets.QCommandLinkButton(self)
        self.onBtn.setObjectName("onBtn")
        self.onBtn.setText("ON")
        self.onBtn.setDescription("此时状态为“开启”。")
        self.onBtn.clicked.connect(lambda: self.setButtonState(self.onBtn))

        self.offBtn = QtWidgets.QCommandLinkButton(self)
        self.offBtn.setObjectName("offBtn")
        self.offBtn.setText("OFF")
        self.offBtn.setDescription("此时状态为“关闭”。")
        self.offBtn.clicked.connect(lambda: self.setButtonState(self.offBtn))

        self.setGeometry(200, 200, 300, 200)
        self.show()

    def setButtonState(self, button):
        self.onBtn.setChecked(button is self.onBtn)
        self.offBtn.setChecked(button is self.offBtn)

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

运行该程序,我们就可以在界面上看到两个QCommandLinkButton控件。当我们点击其中一个按钮时,该按钮就会处于选中状态,而另一个按钮则会处于未选中状态。