PyQt按钮示例(Python GUI)

QAbstractButton充当抽象类,并提供按钮,按钮和可检查按钮的常规功能。可选择的按钮实现为QRadioButton和QCheckBox;可按下按钮的实现是QPushButton和QToolButton。

任何类型的按钮都可以显示带有文本(.setText()方法设置文本)和图标(.setIcon()设置图标)标签的按钮。

 

QAbstractButton

由QAbstractButton提供的状态。

1,isDown()提示是否按下
2,isChecked()提示按钮是否已标记
3,isEnable()提示用户是否可以单击该按钮
4,isCheckAble()提示该按钮是否可标记
5,setAutoRepeat()设置用户长按该按钮是否可以自动重复。

由QAbstractButton提供的信号。

1,Pressed()当鼠标在按钮上并单击鼠标左键时,触发信号
2,released()释放鼠标左键时触发信号
3,clicked()第一次按下并释放鼠标时或按下快捷键时释放触发信号
4,,Toggled()当按钮的标记状态改变时触发信号

接下来将显示每个按钮。

QPushButton:

 

class QPushButton(QAbstractButton)
 |  QPushButton(QWidget parent=None)
 |  QPushButton(str, QWidget parent=None)
 |  QPushButton(QIcon, str, QWidget parent=None)

这表明QPushButton是从QAbstractButton继承的,并且是一个命令按钮。单击以执行一些命令,或回答一些问题。常用按钮,例如“确认”,“应用”,“取消”,“关闭”,“是”,“否”等。

命令按钮通常描述通过文本执行的动作。有时,我们还会使用快捷方式来执行与按钮相对应的命令。

通过QPushButton的示例对此进行说明。

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

class PushButton(QWidget):
    def __init__(self):
        super(PushButton,self).__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle("PushButton")
        self.setGeometry(400,400,300,260)
        self.closeButton = QPushButton(self)
        self.closeButton.setText("Close")          #text
        self.closeButton.setIcon(QIcon("close.png")) #icon
        self.closeButton.setShortcut('Ctrl+D')  #shortcut key
        self.closeButton.clicked.connect(self.close)
        self.closeButton.setToolTip("Close the widget") #Tool tip
        self.closeButton.move(100,100)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = PushButton()
    ex.show()
    sys.exit(app.exec_()) 

说明性例子

python pyqt qpushbutton

单击名为“关闭”的按钮关闭窗口。也可以通过按快捷键“ Ctrl + C”关闭该窗口。

代码分析。

文字和图像设置为:

self.closeButton.setText("Close") #text
self.closeButton.setIcon(QIcon("close.png")) #icon
  • setText() 方法,设置按钮文字
  • setIcon() 方法,设置按钮的图标

创建对象实例时,QPushButton构造函数还可以直接使用参数设置按钮文本和图标的显示。

| QPushButton(str, QWidget parent=None)
| QPushButton(QIcon, str, QWidget parent=None)

self.closeButton.setShortcut('Ctrl+D') #shortcut key

设置closeButton的快捷方式,即Ctrl + D可以执行与单击closeButton相同的功能。

 

QToolButton

 

class QToolButton(QAbstractButton)
 | QToolButton(QWidget parent=None)

QToolButton是与工具操作相关的按钮,通常与QToolBar一起使用,QToolButton通常不显示文本,但是显示图标QIcon。
QToolButton的示例由举例说明。

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

class ToolButton(QMainWindow):

    def __init__(self):
        super(ToolButton,self).__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle("ToolButton")
        self.setGeometry(400,400,300,260)

        self.toolbar = self.addToolBar("toolBar")
        self.statusBar()

        self._detailsbutton = QToolButton()                                     
        self._detailsbutton.setCheckable(True)                                  
        self._detailsbutton.setChecked(False)                                   
        self._detailsbutton.setArrowType(Qt.RightArrow)
        self._detailsbutton.setAutoRaise(True)
        #self._detailsbutton.setIcon(QIcon("test.jpg"))
        self._detailsbutton.setToolButtonStyle(Qt.ToolButtonIconOnly)
        self._detailsbutton.clicked.connect(self.showDetail)
        self.toolbar.addWidget(self._detailsbutton)

    def showDetail(self):
        if self._detailsbutton.isChecked():
            self.statusBar().showMessage("Show Detail....")
        else:
            self.statusBar().showMessage("Close Detail....")

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = ToolButton()
    ex.show()
    sys.exit(app.exec_()) 

说明性示例:

pyqt工具按钮

图标是带有“右箭头图标”的按钮,此按钮具有一个开关。打开按钮时,消息栏中将显示“显示详细信息…”,反面将显示“关闭详细信息”。

代码分析。

self._detailsbutton.setCheckable(True) self._detailsbutton.setChecked(False)
  • 使用SetCheckable()方法,“ True”将按钮设置为可选属性,并且具有“ On”和“ Off”状态。
  • setChecked()方法将按钮的状态设置为选定状态。
self._detailsbutton.setArrowType(Qt.RightArrow)
  • setArrowType()方法设置按钮上显示的箭头类型。arrowType,箭头属性,按钮是否显示箭头而不是普通图标
  • Qt.NoArrow 0
  • Qt.UpArrow 1
  • Qt. DownArrow 2
  • Qt.LeftArrow 3
  • Qt.RightArrow 4
self._detailsbutton.setToolButtonStyle(Qt.ToolButtonIconOnly)

setToolButtonStyle(),设置按钮文本和图标显示的样式。程序中的参数是仅显示图标,而不显示文本(Qt.ToolButtonIconOnly)

参数的类型如下。

  • Qt.ToolButtonIconOnly 0仅显示图标。
  • Qt.ToolButtonTextOnly 1仅显示文本。
  • Qt.ToolButtonTextBesideIcon 2文本显示在图标旁边。
  • Qt.ToolButtonTextUnderIcon 3文本显示在图标下方。
  • Qt.ToolButtonFollowStyle 4

如果在实际使用中需要同时显示自定义图标和文本,则可以根据以下参数进行设置。

self._detailsbutton.setIcon(QIcon("test.jpg"))
self._detailsbutton.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)

标签

发表评论