是否可以縮放(或「縮放」)QTextEdit區域?我相信我讀過在QLayout中放置QTextEdit可以允許縮放QTextEdit區域,但沒有找到如何實現它。選項夫婦...如何從工具欄按鈕單擊和/或按Ctrl +鼠標滾輪縮放/縮放QTextEdit區域
鼠標滾輪CTRL +滾動
運行下面的代碼,按住CTRL(控制)鍵,滾動鼠標滾輪,該事件被捕獲與文中規模(以但是,隨着文本越來越大,輪子必須進一步移動以產生非常大的效果,所以一個目標就是能夠以某種方式修改它,也許一些數學方法可以在增加更大程度上增加增量在正向。 (下面的setReadOnly()的下面是因爲它看起來textEdit必須是ReadOnly(False)才能捕獲鼠標事件,然後True才能在滾動鼠標滾輪期間縮放,所以它然後在釋放CTRL鍵時再次回到原始狀態False)。
工具欄按鈕點擊
另一種選擇是工具欄按鈕的放大和縮小。
onZoomInClicked()被調用。
當前的一些問題,下面
1.打印代碼:QLayout: Attempting to add QLayout "" to MainWindow "", which already has a layout
和我沒有我的頭纏着那個呢。
2. QtGui.QTextEdit(self.formLayout)而不是(self)將textEdit區域放置在佈局中產生TypeError: 'PySide.QtGui.QTextEdit' called with wrong argument types
3. wheelEvent()可以使用某種方式修改event.delta()可能嗎?
4.單擊工具欄按鈕(僅限文本)當前將運行其def,但它只包含一個打印語句。
from PySide import QtGui, QtCore
class MainWindow(QtGui.QMainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.formLayout = QtGui.QFormLayout(self)
self.textEdit = QtGui.QTextEdit(self)
self.toolBar = QtGui.QToolBar(self)
self.actionZoomIn = QtGui.QAction(self)
self.textEdit.setHtml('<font color=blue>Hello <b>world</b></font>')
self.setCentralWidget(self.textEdit)
self.addToolBar(self.toolBar)
self.toolBar.addAction(self.actionZoomIn)
self.actionZoomIn.setText('Zoom In')
self.actionZoomIn.connect(self.actionZoomIn,
QtCore.SIGNAL('triggered()'), self.onZoomInClicked)
def onZoomInClicked(self):
print "onZoomInClicked(self) needs code"
def wheelEvent(self, event):
print "wheelEvent() captured"
if (event.modifiers() & QtCore.Qt.ControlModifier):
self.textEdit.setReadOnly(True)
event.accept()
def keyReleaseEvent(self, evt):
if evt.key() == QtCore.Qt.Key_Control:
self.textEdit.setReadOnly(False)
if __name__ == '__main__':
app = QtGui.QApplication([])
frame = MainWindow()
frame.show()
app.exec_()
我一直在對付這一問題的天,以便將是巨大的,有更多的可定製的QTextEdit規模/變焦的工作,如果它甚至有可能。
太棒了,哇。 **謝謝ekhumoro!** – gseattle