Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Bulgarian
  4. Защо е толкова бавен QSyntaxHighlighter-а?
Forum Updated to NodeBB v4.3 + New Features

Защо е толкова бавен QSyntaxHighlighter-а?

Scheduled Pinned Locked Moved Bulgarian
5 Posts 2 Posters 4.8k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    Mart
    wrote on last edited by
    #1

    Здравейте отново,
    Имам един текстов редактор (QTextBrowser) чиито текст се оцветява чрез QSyntaxHighlighter. Когато текста е много голям оцветяването става дразнещо бавно. В допълнение за удобство съм направил като се маркира една дума и се натисне едно бутонче да оцвети всички такива дум със жълт фон. Ако текста е много голям чакам няколко секунди докато ги оцвети и още толкова докато махне оцветяването. Това нормално ли е или нещо бъркам някъде?
    Под Линукс, в Kate подобно нещо става светкавично.

    1 Reply Last reply
    0
    • T Offline
      T Offline
      task_struct
      wrote on last edited by
      #2

      Здравей,

      не съм работил с този клас, но ако споделиш малко код може да измислим, защо се получава така. Също може да пробваш да разгледаш кода на Kate.

      "Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program."

      • Linu...
      1 Reply Last reply
      0
      • M Offline
        M Offline
        Mart
        wrote on last edited by
        #3

        Конкретен пример не мога да дам. Мога цялата програмка да изпратя. Може би по пощата?

        П.П. Имам някакъв проблем с форума - постоянно ме изхвърля. Като направя някакво действие и ми казва, че трябва първо да се логна, а аз съм логнат. Започвам да натискам F5 и нещата се оправят след няколко рефреша на страницата. После пак се скапва и пак F5 ги оправя.

        1 Reply Last reply
        0
        • T Offline
          T Offline
          task_struct
          wrote on last edited by
          #4

          Бих ти предложил, нещо което направиха и в Qt Craetor. Изнеси оцветяването в отделна нишка. С "QtConcurrent":http://developer.qt.nokia.com/doc/qt-4.8/threads-qtconcurrent.html би трябвало да стане лесно и бързо :)

          "Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program."

          • Linu...
          1 Reply Last reply
          0
          • M Offline
            M Offline
            Mart
            wrote on last edited by
            #5

            С отделна нишка не съм пробвал, защото не виждам как това ще реши проблема със скоростта.
            Имам един текстов редактор, който оцветява текста. Самия текст е подобна на асемблер програма. Може да достигне хиляди редове. Самия текст го осветява мигновено в смисъл, че като направя копи-пейст на даден фрагмент, без значение колко е голям, той се оцветява мигновено. Имам едно бутонче което по същата технология оцветява потребителски избрания (маркиран) текст със жълт фон за да се откроява. Маркирам например думата label, натискам бутончето и всички думи label стават със жълт фон. Нещо такова. Само че това става много бавно. Ако са няколко хиляди реда, става за няколко секунди. През това време програмата е блокирала и нищо не може да се прави.
            Ако го отделя в друга нишка, ще постигна само това, че няма да ми забива програмата. Пак ще си чакам докато ми оцвети думите. А на мен чакането ми е дразнещото, а не забиването на програмата.
            Не знам защо при пействане на текст той се оцветява веднага, а при другото се чака толкова много. Все пак си мисля че бъркам нещо.
            Правя следното: копирам целия текст - 4000 ред, изтривам го, а после го пествам. Показва се почти веднага - след 1-2 сек., напълно оцветен. В същото време ако реша да оцветя една дума и чакам над 8 секунди...
            8 секунди са голямо чакане, дори да е в друга нишка.

            1 Reply Last reply
            0

            • Login

            • Login or register to search.
            • First post
              Last post
            0
            • Categories
            • Recent
            • Tags
            • Popular
            • Users
            • Groups
            • Search
            • Get Qt Extensions
            • Unsolved