pyqt5设置字体大小加粗_pyqt学习之设置字体,字号等格式属性(网友提供)

本文通过一个PyQt5的实例展示了如何设置字体、字号、加粗、斜体、下划线和颜色等文本格式属性。通过创建一个包含字体选择框、字号选择框和样式按钮的主窗口,实现对QTextEdit中文字的样式控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# -*- coding: utf-8 -*-

from PyQt4.QtGui import *

from PyQt4.QtCore import *

import sys

QTextCodec.setCodecForTr(QTextCodec.codecForName("utf8"))

class MainWindow(QMainWindow):

def __init__(self,parent=None):

super(MainWindow,self).__init__(parent)

self.setWindowTitle(self.tr("设置字体,字号等格式属性"))

self.text = QTextEdit()

self.setCentralWidget(self.text);

#字体

self.toolBar=self.addToolBar("Font")

self.label1 = QLabel(self.tr("字体:"))

self.fontBox = QFontComboBox()

self.fontBox.setFontFilters(QFontComboBox.ScalableFonts);

self.toolBar.addWidget(self.label1)

self.toolBar.addWidget(self.fontBox)

#字号

self.label2 = QLabel(self.tr("数字:"))

self.sizeBox = QComboBox()

#print dir(self.sizeBox)

self.toolBar.addWidget(self.label2)

self.toolBar.addWidget(self.sizeBox)

self.db = QFontDatabase()

for i in self.db.standardSizes():

self.sizeBox.addItem(QString.number(i))

self.toolBar.addSeparator();

#加粗 、斜体、下划线、颜色

self.boldBtn = QToolButton()

self.boldBtn.setIcon(QIcon("image/bold.png"))

self.boldBtn.setCheckable(True)

self.toolBar.addWidget(self.boldBtn)

self.italicBtn = QToolButton()

self.italicBtn.setIcon(QIcon("image/italic.png"))

self.italicBtn.setCheckable(True)

self.toolBar.addWidget(self.italicBtn)

self.underBtn = QToolButton()

self.underBtn.setIcon(QIcon("image/underline.png"))

self.underBtn.setCheckable(True)

self.toolBar.addWidget(self.underBtn)

self.toolBar.addSeparator()

self.colorBtn = QToolButton()

self.colorBtn.setIcon(QIcon("image/color.png"))

self.toolBar.addWidget(self.colorBtn)

#信号和槽函数

self.fontBox.activated.connect(self.slotFont)

self.sizeBox.activated.connect(self.slotSize)

self.boldBtn.clicked.connect(self.slotBold)

self.italicBtn.clicked.connect(self.slotItalic)

self.underBtn.clicked.connect(self.slotUnder)

self.colorBtn.clicked.connect(self.slotColor)

self.text.currentCharFormatChanged.connect(self.slotCurrentFormatChanged)

self.fmt = QTextCharFormat()

def slotFont(self):

self.f = self.fontBox.currentFont().family()

self.fmt.setFontFamily(self.f)

self.cursor = self.text.textCursor()

if(self.cursor.hasSelection() is False):

self.cursor.select(QTextCursor.WordUnderCursor)

self.cursor.mergeCharFormat(self.fmt)

self.text.mergeCurrentCharFormat(self.fmt)

def slotSize(self):

self.num = self.sizeBox.currentText()

self.fmt.setFontPointSize(self.num.toFloat()[0])

self.text.mergeCurrentCharFormat(self.fmt)

def slotBold(self):

if self.boldBtn.isChecked():

self.fmt.setFontPointSize(QFont.Bold)

else:

self.fmt.setFontPointSize(QFont.Normal)

self.text.mergeCurrentCharFormat(self.fmt)

def slotItalic(self):

if self.italicBtn.isChecked():

if self.fmt.fontItalic() is False:

self.fmt.setFontItalic(True)

else:

self.fmt.setFontItalic(False)

self.text.mergeCurrentCharFormat(self.fmt)

def slotUnder(self):

self.fmt.setFontUnderline(self.underBtn.isChecked())

self.text.mergeCurrentCharFormat(self.fmt)

def slotColor(self):

self.color = QColorDialog.getColor(Qt.red)

if(self.color.isValid()):

self.fmt.setForeground(self.color)

self.text.mergeCurrentCharFormat(self.fmt)

def slotCurrentFormatChanged(self):

self.fontBox.setCurrentIndex(self.fontBox.findText(self.fmt.fontFamily()))

self.sizeBox.setCurrentIndex(self.sizeBox.findText(QString.number(self.fmt.fontPointSize())))

self.boldBtn.setChecked(self.fmt.font().bold())

self.italicBtn.setChecked(self.fmt.fontItalic())

self.underBtn.setChecked(self.fmt.fontUnderline())

app=QApplication(sys.argv)

main=MainWindow()

main.show()

app.exec_()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值