PyQt5 – 改变Push按钮的文字字体和大小

  • Post category:Python

PyQt5是基于Python的Qt图形界面框架的Python语言绑定库,具有运行速度快、易用性好、提供丰富的GUI控件库等优点。本文将详细讲解如何利用PyQt5改变Push按钮的文字字体和大小,包括两个示例说明。

安装PyQt5

在开始使用PyQt5之前,需要首先安装它。可以使用pip进行安装:

pip install PyQt5

改变Push按钮的文字字体和大小

在PyQt5中,可以使用Qt字体类QFont来设置Push按钮的文字字体和大小。可以按以下步骤进行操作:

  1. 导入PyQt5库:

python
from PyQt5.QtWidgets import *

  1. 创建一个Push按钮对象:

python
btn = QPushButton('Click me')

  1. 创建一个字体对象,并设置其字体名称和字体大小:

python
font = QFont()
font.setFamily('Arial')
font.setPointSize(20)

  1. 将字体对象设置给Push按钮:

python
btn.setFont(font)

这样,Push按钮的文字字体就会被改变为Arial,大小为20。

示例1:设置多个Push按钮的文字字体和大小

下面的示例演示了如何同时设置多个Push按钮的文字字体和大小:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton
from PyQt5.QtGui import QFont

class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):

        vbox = QVBoxLayout()
        font = QFont()
        font.setFamily('Arial')
        font.setPointSize(20)

        btn1 = QPushButton('Button 1')
        btn1.setFont(font)
        vbox.addWidget(btn1)

        btn2 = QPushButton('Button 2')
        btn2.setFont(font)
        vbox.addWidget(btn2)

        btn3 = QPushButton('Button 3')
        btn3.setFont(font)
        vbox.addWidget(btn3)

        self.setLayout(vbox)

        self.setGeometry(300, 300, 300, 250)
        self.setWindowTitle('QFont')
        self.show()

if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

在该示例中,创建了3个Push按钮,并将它们的文字字体和大小设置为相同的Arial和20。

示例2:在Push按钮上显示动态时间

下面的示例演示了如何在Push按钮上显示动态时间,并设置其字体为Consolas和大小为24:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton
from PyQt5.QtCore import QTimer, QTime
from PyQt5.QtGui import QFont

class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):

        vbox = QVBoxLayout()

        btn = QPushButton('Time')
        btn.setFont(QFont('Consolas', 24))
        vbox.addWidget(btn)

        self.setLayout(vbox)

        timer = QTimer(self)
        timer.timeout.connect(self.showTime)
        timer.start(1000)

        self.setGeometry(300, 300, 300, 250)
        self.setWindowTitle('QTimer')
        self.show()

    def showTime(self):

        current_time = QTime.currentTime().toString('hh:mm:ss')
        sender = self.sender()
        sender.setText(current_time)

if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

在该示例中,创建了一个Push按钮,并在它上面显示动态时间。在每秒钟的计时器事件中,更新Push按钮的文字为当前时间。并将Push按钮的字体设置为Consolas和大小为24。