[PyQt] [PYQT]Problem with qtextedit.textCursor()

Maziar Parsijani maziar.parsijani at gmail.com
Sat Sep 1 20:33:08 BST 2018


I want to select 2 "قَالَ" in m = "قَالَتْ قَالَ فَقَالُوا۟ قَالُوا۟ قَالَ
قَالُوٓا۟ قَالَتَا ٱلْقَالِينَ  " but with the below code it selects all
words which contains " "قَالَ"
Now what is the problem here?
I have to put spaces before and after pattern1 for such thing but it
doesn't work for me.

pattern1 = " {0} ".format(self.lineEdit.text())


from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication, QTextEdit
from PyQt5.QtGui import QTextDocument, QTextDocumentFragment
from PyQt5 import QtCore, QtGui, QtWidgets
import sys
from PyQt5.QtWidgets import QDialog, QApplication
class AppWindow(QDialog):
    def __init__(self):
        super().__init__()
        self.setObjectName("Dialog")
        self.resize(800, 600)
        self.lineEdit = QtWidgets.QLineEdit(self)
        self.lineEdit.setGeometry(QtCore.QRect(70, 70, 211, 21))
        self.lineEdit.setObjectName("lineEdit")
        self.pushButton = QtWidgets.QPushButton(self)
        self.pushButton.setGeometry(QtCore.QRect(130, 110, 83, 28))
        self.pushButton.setObjectName("pushButton")
        self.SearchResults = QtWidgets.QTextEdit(self)
        self.SearchResults.setGeometry(QtCore.QRect(130, 140, 500, 400))
        font = QtGui.QFont()
        font.setFamily("Amiri")
        font.setPointSize(12)
        self.SearchResults.setFont(font)
        self.SearchResults.setToolTipDuration(0)
        self.SearchResults.setReadOnly(True)
        self.SearchResults.setAutoFormatting(QtWidgets.QTextEdit.AutoAll)
        self.SearchResults.setObjectName("SearchResults")

        self.retranslateUi(self)
        QtCore.QMetaObject.connectSlotsByName(self)
    def find1(self):
            m = "  قَالَتْ  قَالَ فَقَالُوا۟ قَالُوا۟ قَالَ  قَالُوٓا۟
قَالَتَا  ٱلْقَالِينَ    "
            self.SearchResults.append('{0} '.format(m))


            cursor = self.SearchResults.textCursor()
            format = QtGui.QTextCharFormat()
            format.setForeground(QtGui.QBrush(QtGui.QColor("red")))

            pattern1 = "{0}".format(self.lineEdit.text())
            regex = QtCore.QRegExp(pattern1)
            pos = 0
            index = regex.indexIn(self.SearchResults.toPlainText(), pos)
            tedad = 0
            while (index != -1):
                cursor.setPosition(index)
                cursor.movePosition(QtGui.QTextCursor.WordLeft,
QtGui.QTextCursor.KeepAnchor)
                cursor.mergeCharFormat(format)
                pos = index + regex.matchedLength()
                index = regex.indexIn(self.SearchResults.toPlainText(), pos)
                if regex.isValid():
                    tedad += 1
            nmayesh = ("{}".format(tedad))
            self.SearchResults.append("{}".format(tedad))

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        self.setWindowTitle(_translate("Dialog", "Dialog"))
        self.pushButton.setText(_translate("Dialog", "PushButton"))
        self.pushButton.clicked.connect(self.find1)

app = QApplication(sys.argv)
w = AppWindow()
w.show()
sys.exit(app.exec_())
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.riverbankcomputing.com/pipermail/pyqt/attachments/20180902/96addb8c/attachment-0001.html>


More information about the PyQt mailing list