سؤال

أحاول إضافة بعض بناء الجملة تسليط الضوء على محرر نصوص في PYQT4. لقد وجدت مثالا في الوثائق التي تعمل عند تجميعها من C ++ ولكن عندما أقوم بتحويله إلى Python / Pyqt، لم يعد يعمل.

الجزء من التعليمات البرمجية الذي فشل (لم يعد يسلط الضوء على أي شيء) هو:

def highlightCurrentLine(self):

    extraSelections = []

    if not self.isReadOnly():
        selection = QTextEdit.ExtraSelection()

        lineColor = QColor(Qt.yellow).lighter(160)

        selection.format.setBackground(lineColor)
        selection.format.setProperty(QTextFormat.FullWidthSelection, QVariant(True))
        selection.cursor = self.textCursor()
        selection.cursor.clearSelection()
        extraSelections.append(selection)

    self.setExtraSelections(extraSelections)

الذي يطلق عليه:

self.connect(self, SIGNAL('cursorPositionChanged()'), self.highlightCurrentLine)

أي شخص لديه أي فكرة لماذا هذا لا يعمل؟

الإصدارات التي استقبلها هي: بيثون 2.6.2، PYQT 4.4.4

هل كانت مفيدة؟

المحلول

حسنا ... اتضح أنني لم أكن مجنونا، كنت أستخدم فقط إصدار خارج تاريخ من Pyqt4.

للحصول على معلومات إصدار PYQT4 الذي يأتي مع Ubuntu 9.04 4.4.4 ولكن يبدو أن هذه الوظيفة تتطلب 4.5+.

لقد قمت بالترقية إلى Pyqt4 4.6 ويعمل بشكل جيد (بالإضافة إلى 4.6 يبدو أن لديك بعض الوظائف الجديدة لطيفة أيضا).

نصائح أخرى

يحفظ lineColor في مكان ما (مثل self.lineColor). خلاف ذلك، سوف تتجاهل بيثون الكائن عند إرجاع الأسلوب و format سوف تستخدم مؤشر غير قانوني.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top