python调节字体大小不管用、怎么回事_python – 字体大小更改后,QTextEdit中的ZoomIn没有效果...

此代码运行一个带有工具栏和QTextEdit区域的小窗口.

如果你突出显示’香蕉’并更改字体大小,那么使用工具栏按钮或CTRL鼠标滚轮缩放只会调整’苹果’的大小.谁知道为什么?

from PySide import QtGui, QtCore

class MainWindow(QtGui.QMainWindow):

def __init__(self, parent=None):

super(MainWindow, self).__init__(parent)

self.textEdit = Editor(self)

self.toolBar = QtGui.QToolBar(self)

self.addToolBar(self.toolBar)

self.setCentralWidget(self.textEdit)

self.textEdit.setHtml('apples bananas')

# Zoom

self.actionZoomIn = QtGui.QAction('Zoom In', self)

self.actionZoomOut = QtGui.QAction('Zoom Out', self)

self.toolBar.addAction(self.actionZoomIn)

self.toolBar.addAction(self.actionZoomOut)

self.actionZoomIn.triggered.connect(self.onZoomInClicked)

self.actionZoomOut.triggered.connect(self.onZoomOutClicked)

# Font Size

self.comboSize = QtGui.QComboBox(self.toolBar)

self.toolBar.addWidget(self.comboSize)

self.comboSize.addItem('0')

self.comboSize.addItem('10')

self.comboSize.addItem('18')

self.comboSize.addItem('30')

self.comboSize.addItem('48')

self.comboSize.setCurrentIndex(1)

self.comboSize.activated[str].connect(self.textSize)

def textSize(self, pointSize):

pointSize = int(pointSize)

if pointSize > 0:

fmt = QtGui.QTextCharFormat()

fmt.setFontPointSize(pointSize)

self.mergeFormatOnWordOrSelection(fmt)

def mergeFormatOnWordOrSelection(self, format):

cursor = self.textEdit.textCursor()

if not cursor.hasSelection():

cursor.select(QtGui.QTextCursor.WordUnderCursor)

cursor.mergeCharFormat(format)

self.textEdit.mergeCurrentCharFormat(format)

def onZoomInClicked(self):

self.textEdit.zoom(+1)

def onZoomOutClicked(self):

self.textEdit.zoom(-1)

class Editor(QtGui.QTextEdit):

def __init__(self, parent=None):

super(Editor, self).__init__(parent)

self.zoomValue = 0

def zoom(self, delta):

zoomIncrement = 3

if delta < 0:

zoomIncrement = 0 - zoomIncrement

self.zoomIn(zoomIncrement)

self.zoomValue = self.zoomValue + zoomIncrement

print "self.zoomValue", self.zoomValue

def wheelEvent(self, event):

if (event.modifiers() & QtCore.Qt.ControlModifier):

self.zoom(event.delta())

if __name__ == '__main__':

app = QtGui.QApplication([])

window = MainWindow()

window.resize(400, 180)

window.show()

app.exec_()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值