本文整理汇总了Python中PySide.QtGui.QTextEdit.textCursor方法的典型用法代码示例。如果您正苦于以下问题:Python QTextEdit.textCursor方法的具体用法?Python QTextEdit.textCursor怎么用?Python QTextEdit.textCursor使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PySide.QtGui.QTextEdit
的用法示例。
在下文中一共展示了QTextEdit.textCursor方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: tesIterator
# 需要导入模块: from PySide.QtGui import QTextEdit [as 别名]
# 或者: from PySide.QtGui.QTextEdit import textCursor [as 别名]
def tesIterator(self):
edit = QTextEdit()
cursor = edit.textCursor()
fmt = QTextCharFormat()
frags = []
for i in range(10):
fmt.setFontPointSize(i+10)
frags.append("block%d"%i)
cursor.insertText(frags[i], fmt)
doc = edit.document()
block = doc.begin()
index = 0
for i in block:
self.assertEqual(i.fragment().text(), frags[index])
index += 1
示例2: DontTouchReference
# 需要导入模块: from PySide.QtGui import QTextEdit [as 别名]
# 或者: from PySide.QtGui.QTextEdit import textCursor [as 别名]
class DontTouchReference(UsesQApplication):
"""Check if the QTextTable returned by QTextCursor.insertTable() is not
referenced by the QTextCursor that returns it."""
def setUp(self):
super(DontTouchReference, self).setUp()
self.editor = QTextEdit()
self.cursor = self.editor.textCursor()
self.table = self.cursor.insertTable(1, 1)
def testQTextTable(self):
# methods which return QTextTable should not increment its reference
self.assertEqual(getrefcount(self.table), 2)
f = self.cursor.currentFrame()
del f
self.assertEqual(getrefcount(self.table), 2)
# destroying the cursor should not raise any "RuntimeError: internal
# C++ object already deleted." when accessing the QTextTable
del self.cursor
self.assertEqual(getrefcount(self.table), 2)
cell = self.table.cellAt(0, 0)
示例3: AppWindow
# 需要导入模块: from PySide.QtGui import QTextEdit [as 别名]
# 或者: from PySide.QtGui.QTextEdit import textCursor [as 别名]
#.........这里部分代码省略.........
self.redoAction = QAction(QIcon('digital_assets/redo.svg'), 'Redo', self)
self.redoAction.setShortcut(QKeySequence.Redo)
self.redoAction.setStatusTip("Redo")
self.redoAction.triggered.connect(self.textEdit.redo)
self.cutAction = QAction(QIcon('digital_assets/edit-cut.svg'), 'Cut', self)
self.cutAction.setShortcut(QKeySequence.Cut)
self.cutAction.setStatusTip("Cut")
self.cutAction.setEnabled(False)
self.cutAction.triggered.connect(self.textEdit.cut)
self.copyAction = QAction(QIcon('digital_assets/edit-copy.svg'), 'Copy', self)
self.copyAction.setShortcut(QKeySequence.Copy)
self.copyAction.setStatusTip("Copy")
self.copyAction.setEnabled(False)
self.copyAction.triggered.connect(self.textEdit.copy)
self.pasteAction = QAction(QIcon('digital_assets/edit-paste.svg'), 'Paste', self)
self.pasteAction.setShortcut(QKeySequence.Paste)
self.pasteAction.setStatusTip("Paste")
self.pasteAction.setEnabled(False)
self.pasteAction.triggered.connect(self.textEdit.paste)
self.selectallAction = QAction(QIcon('digital_assets/edit-select-all.svg'), 'Select All', self)
self.selectallAction.setShortcut(QKeySequence.SelectAll)
self.selectallAction.setStatusTip("Select All")
self.selectallAction.triggered.connect(self.textEdit.selectAll)
self.deselectallAction = QAction(QIcon('digital_assets/edit-select-all.svg'), 'Deselect All', self)
self.deselectallAction.setShortcut("Shift+Ctrl+A")
self.deselectallAction.setStatusTip("Deselect All")
self.deselectallAction.triggered.connect(self.deselect_all_text)
self.findAction = QAction(QIcon('digital_assets/edit-find.svg'), 'Find', self)
self.findAction.setShortcut(QKeySequence.Find)
self.findAction.setStatusTip("Find")
self.findAction.triggered.connect(self.find_text)
self.findReplaceAction = QAction(QIcon('digital_assets/edit-find-replace.svg'), 'Replace', self)
self.findReplaceAction.setShortcut(QKeySequence.Replace)
self.findReplaceAction.setShortcut("Replace")
self.findReplaceAction.triggered.connect(self.find_replace_text)
self.aboutAction = QAction(QIcon('digital_assets/AppIcon.png'), 'About', self)
self.aboutAction.setStatusTip("Displays info about the application")
self.aboutAction.triggered.connect(self.show_about)
def deselect_all_text(self):
text_cursor = self.textEdit.textCursor()
text_cursor.clearSelection()
self.textEdit.setTextCursor(text_cursor)
def create_menus(self):
# ================================
# Function to create the menu bar.
# ================================
self.fileMenu = self.menuBar().addMenu("File")
self.fileMenu.setFont(QFont("Ubuntu", 10, QFont.Normal))
self.editMenu = self.menuBar().addMenu("Edit")
self.editMenu.setFont(QFont("Ubuntu", 10, QFont.Normal))
self.helpMenu = self.menuBar().addMenu("Help")
self.helpMenu.setFont(QFont("Ubuntu", 10, QFont.Normal))
def set_icon(self):
# ===============================
# Function to set the Window Icon
# ===============================
appicon = QIcon('digital_assets/AppIcon.png')
self.setWindowIcon(appicon)
def quit_application(self):
# ================================
# Function to quit the application
# ================================
userinfo = QMessageBox.question(self, "Confirmation", "This will quit, Do you want to continue?",
QMessageBox.Yes | QMessageBox.No)
if userinfo == QMessageBox.Yes:
templateApp.quit()
if userinfo == QMessageBox.No:
pass
def show_about(self):
QMessageBox.about(self, "About Virtua Text Editor",
"<b><h3>Virtua Text Editor</h3></b>"
"<p><h4>Virtua Text Editor has been written to serve as a template"
" that can be used as a basis for creating a working application."
" All of the components that make up the core functions of an"
" application, the main window, a status bar, menus and dialogs"
" are provided here as a basis for writing something new and interesting</h4></p>")
def center_application(self):
# ============================================
# Function to center the Application on screen
# ============================================
qrect = self.frameGeometry()
centerpoint = QDesktopWidget().availableGeometry().center()
qrect.moveCenter(centerpoint)
self.move(qrect.topLeft())
示例4: MainWindow
# 需要导入模块: from PySide.QtGui import QTextEdit [as 别名]
# 或者: from PySide.QtGui.QTextEdit import textCursor [as 别名]
class MainWindow(QMainWindow):
def __init__(self):
# QMainWindow.__init__(self)
super().__init__() # use super() to avoid explicit dependency on the base class name
# Note: must not pass the self reference to __init__ in this case!
self.resize(800, 600)
# Create the main content widget
mainWidget = QWidget(self)
self.setCentralWidget(mainWidget)
# Create a text component at the top area of the main widget
self.output = QTextEdit(mainWidget)
self.output.setReadOnly(True)
self.output.setLineWrapMode(QTextEdit.NoWrap);
# set the font
font = self.output.font()
font.setFamily("Courier")
font.setPointSize(10)
self.output.setFont(font)
# Set the background color
# self.output.setTextBackgroundColor(Qt.red) # Only sets the background color for the text itself, not for the whole widget
pal = self.output.palette()
pal.setColor(QPalette.Base, Qt.black)
self.output.setPalette(pal)
mainLayout = QVBoxLayout(mainWidget)
mainLayout.addWidget(self.output)
# Create buttons in a grid layout below the top area
buttonWidget = QWidget(mainWidget)
self.buttonLayout = QGridLayout(buttonWidget)
mainLayout.addWidget(buttonWidget)
# Add some buttons to execute python code
self.row = 0
self.column = 0
self.addButton("Clear console", lambda : self.output.clear())
self.newRow()
# Add buttons for all the examples - attention: do not make "examples"
# a local variable - otherwise, the Examples object would be destroyed
# at the end of __init__ !!!
self.examples = samplePackage.SampleModule.Examples(self)
for example in self.examples.getExamples():
if example is None:
self.newRow()
else:
self.addButton(example.label, example.function)
# In a Python program, sys.excepthook is called just before the program exits.
# So we can catch all fatal, uncaught exceptions and log them.
# NOTE: we must be sure not to set the excepthook BEFORE we an actually
# log something!!
sys.excepthook = self.logException
self.writelnColor(Qt.magenta,
"Python version: {0}.{1}.{2} ({3})".format(
sys.version_info[0],
sys.version_info[1],
sys.version_info[2],
sys.version_info[3]))
self.writelnColor(Qt.magenta,
"Qt version : {0}".format(qVersion()))
def logException(self, exctype, value, tb):
self.writelnColor(Qt.red,
("\nFATAL ERROR: Uncaught exception\n"
" {}: {}\n"
"{}\n".format(exctype.__name__, value, ''.join(traceback.format_tb(tb)))) )
def addButton(self, label, function):
theButton = QPushButton(label)
theButton.clicked.connect(function)
self.buttonLayout.addWidget(theButton, self.row, self.column)
self.column += 1
def newRow(self):
self.row += 1
self.column = 0
def writeColor(self, color, *text):
theText = ' '.join(map(str, text))
self.output.setTextColor(color)
# Note: append() adds a new paragraph!
#self.output.append(theText)
self.output.textCursor().movePosition(QTextCursor.End)
self.output.insertPlainText(theText)
# scroll console window to bottom
sb = self.output.verticalScrollBar()
sb.setValue(sb.maximum())
#.........这里部分代码省略.........
示例5: qNotebook
# 需要导入模块: from PySide.QtGui import QTextEdit [as 别名]
# 或者: from PySide.QtGui.QTextEdit import textCursor [as 别名]
class qNotebook(QVBoxLayout):
def __init__(self):
QVBoxLayout.__init__(self)
self._teditor = QTextEdit()
self._teditor.setMinimumWidth(500)
self._teditor.setStyleSheet("font: 12pt \"Courier\";")
button_layout = QHBoxLayout()
self.addLayout(button_layout)
self.clear_but = qmy_button(button_layout, self.clear_all, "clear")
self.copy_but = qmy_button(button_layout, self._teditor.copy, "copy")
qmy_button(button_layout, self._teditor.selectAll, "select all")
qmy_button(button_layout, self._teditor.undo, "undo")
qmy_button(button_layout, self._teditor.redo, "redo")
search_button = qButtonWithArgumentsClass("search", self.search_for_text, {"search_text": ""})
button_layout.addWidget(search_button)
qmy_button(button_layout, self.save_as_html, "save notebook")
self.addWidget(self._teditor)
self._teditor.document().setUndoRedoEnabled(True)
self.image_counter = 0
self.image_dict = {}
self.image_data_dict = {}
def append_text(self, text):
self._teditor.append(str(text))
def search_for_text(self, search_text = " "):
self._teditor.find(search_text)
def clear_all(self):
self._teditor.clear()
self.image_dict = {}
self.image_counter = 0
# newdoc = QTextDocument()
# self._teditor.setDocument(newdoc)
def append_image(self, fig=None):
#This assumes that an image is there waiting to be saved from matplotlib
self.imgdata = StringIO.StringIO()
if fig is None:
pyplot.savefig(self.imgdata, transparent = False, format = img_format)
else:
fig.savefig(self.imgdata, transparent = False, format = img_format)
self.abuffer = QBuffer()
self.abuffer.open(QBuffer.ReadWrite)
self.abuffer.write(self.imgdata.getvalue())
self.abuffer.close()
self.abuffer.open(QBuffer.ReadOnly)
iReader = QImageReader(self.abuffer, img_format )
the_image = iReader.read()
# the_image = the_image0.scaledToWidth(figure_width)
# save the image in a file
imageFileName = "image" + str(self.image_counter) + "." + img_format
self.image_data_dict[imageFileName] = self.imgdata
self.image_counter +=1
imageFormat = QTextImageFormat()
imageFormat.setName(imageFileName)
imageFormat.setWidth(image_width)
self.image_dict[imageFileName] = the_image
#insert the image in the text document
text_doc = self._teditor.document()
text_doc.addResource(QTextDocument.ImageResource, QUrl(imageFileName), the_image)
cursor = self._teditor.textCursor()
cursor.movePosition(QTextCursor.End)
cursor.insertImage(imageFormat)
def add_image_data_resource(self, imgdata, imageFileName):
self.abuffer = QBuffer()
self.abuffer.open(QBuffer.ReadWrite)
self.abuffer.write(imgdata.getvalue())
self.abuffer.close()
self.abuffer.open(QBuffer.ReadOnly)
iReader = QImageReader(self.abuffer, img_format )
the_image = iReader.read()
# the_image = the_image0.scaledToWidth(figure_width)
# save the image in a file
# imageFileName = "image" + str(self.image_counter) + "." + img_format
self.image_data_dict[imageFileName] = imgdata
# self.image_counter +=1
imageFormat = QTextImageFormat()
imageFormat.setName(imageFileName)
imageFormat.setWidth(image_width)
self.image_dict[imageFileName] = the_image
#insert the image in the text document
text_doc = self._teditor.document()
text_doc.addResource(QTextDocument.ImageResource, QUrl(imageFileName), the_image)
def append_html_table_from_array(self, a, header_rows=0, precision = 3, caption = None, cmap = None):
nrows = len(a)
ncols = len(a[0])
#.........这里部分代码省略.........
示例6: testCase
# 需要导入模块: from PySide.QtGui import QTextEdit [as 别名]
# 或者: from PySide.QtGui.QTextEdit import textCursor [as 别名]
def testCase(self):
editor = QTextEdit()
cursor = QTextCursor(editor.textCursor())
cursor.movePosition(QTextCursor.Start)
mainFrame = cursor.currentFrame()
plainCharFormat = QTextCharFormat()
boldCharFormat = QTextCharFormat()
boldCharFormat.setFontWeight(QFont.Bold);
cursor.insertText("""
Text documents are represented by the
QTextDocument class, rather than by QString objects.
Each QTextDocument object contains information about
the document's internal representation, its structure,
and keeps track of modifications to provide undo/redo
facilities. This approach allows features such as the
layout management to be delegated to specialized
classes, but also provides a focus for the framework.""",
plainCharFormat)
frameFormat = QTextFrameFormat()
frameFormat.setMargin(32)
frameFormat.setPadding(8)
frameFormat.setBorder(4)
cursor.insertFrame(frameFormat)
cursor.insertText("""
Documents are either converted from external sources
or created from scratch using Qt. The creation process
can done by an editor widget, such as QTextEdit, or by
explicit calls to the Scribe API.""",
boldCharFormat)
cursor = mainFrame.lastCursorPosition()
cursor.insertText("""
There are two complementary ways to visualize the
contents of a document: as a linear buffer that is
used by editors to modify the contents, and as an
object hierarchy containing structural information
that is useful to layout engines. In the hierarchical
model, the objects generally correspond to visual
elements such as frames, tables, and lists. At a lower
level, these elements describe properties such as the
style of text used and its alignment. The linear
representation of the document is used for editing and
manipulation of the document's contents.""",
plainCharFormat)
frame = cursor.currentFrame()
items = []
#test iterator
for i in frame:
items.append(i)
#test __iadd__
b = frame.begin()
i = 0
while not b.atEnd():
self.assertEqual(b, items[i])
self.assert_(b.parentFrame(), items[i].parentFrame())
b.__iadd__(1)
i += 1
#test __isub__
b = frame.end()
i = 0
while i > 0:
self.assertEqual(b, items[i])
self.assert_(b.parentFrame(), items[i].parentFrame())
b.__isub__(1)
i -= 1