كيف يمكنني إصلاح علة التمرير عند استخدام عناصر تحكم Windows Rich في Wxpython؟

StackOverflow https://stackoverflow.com/questions/2845824

سؤال

عند استخدام WX.TextCTL مع خيار WX.TE_RICH2 في Windows ، أحصل على هذا الخطأ الغريب مع scroll عند استخدام وظيفة AppendText. يتم التمرير بحيث يكون كل النص فوق المنطقة المرئية ، وهو أمر غير مفيد للغاية.

لقد حاولت مجرد إضافة مكالمة إلى خطوط التمرير (-1) بعد إلحاق النص - الذي يتم تمريره إلى الموضع الصحيح - ولكن هذا يمكن أن يؤدي إلى وميض النافذة عندما يكون ذلك تلقائيًا. لذلك أنا أبحث عن طريقة أخرى للتمرير تلقائيًا إلى القاع.

حتى الآن ، فإن الحل الخاص بي هو تجاوز وظائف التذييل التلقائي وتنفيذ بلدي ، مثل هذا:

def append_text(textctrl, text):
    before_number_of_lines = textctrl.GetNumberOfLines()

    textctrl.SetInsertionPointEnd()
    textctrl.WriteText(text)

    after_number_of_lines = textctrl.GetNumberOfLines()
    textctrl.ScrollLines(before_number_of_lines - after_number_of_lines + 1)

هل هناك طريقة أفضل؟

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

المحلول

انت قريب.

    textctrl.SetInsertionPointEnd()
    textctrl.WriteText(licence)
    textctrl.SetInsertionPointEnd()

نصائح أخرى

يمكنك استخدام ما يلي لإصلاح حشرة التمرير عند استخدام عناصر تحكم Windows Rich في Wxpython:

textctrl.MoveEnd()
textctrl.WriteText(text)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top