Page 1 of 2 12 LastLast
Results 1 to 20 of 35

Thread: Big Problem search through huge amount of data ca 30 000 strings takes to long

  1. #1
    Join Date
    Nov 2015
    Posts
    67

    Default Big Problem search through huge amount of data ca 30 000 strings takes to long

    Hello,

    this is my Code:

    Qt Code:
    1. void SomeClass::searchIn_identifier_listWidget()
    2. {
    3. QList<Identifier*> tempList;
    4.  
    5. QString text0 = ui->identifier_lineEdit_search_0->text();
    6. QString text1 = ui->identifier_lineEdit_search_1->text();
    7. QString text2 = ui->identifier_lineEdit_search_2->text();
    8. QString text3 = ui->identifier_lineEdit_search_3->text();
    9. QString text4 = ui->identifier_lineEdit_search_4->text();
    10.  
    11. for (int i = 0; i < Storage::identifier.count(); i++) {
    12. if (Storage::identifier.at(i)->dataString.contains(text0,Qt::CaseInsensitive) &&
    13. Storage::identifier.at(i)->dataString.contains(text1,Qt::CaseInsensitive) &&
    14. Storage::identifier.at(i)->dataString.contains(text2,Qt::CaseInsensitive) &&
    15. Storage::identifier.at(i)->dataString.contains(text3,Qt::CaseInsensitive) &&
    16. Storage::identifier.at(i)->dataString.contains(text4,Qt::CaseInsensitive))
    17. {
    18. tempList << Storage::identifier.at(i);
    19. }
    20. }
    21.  
    22. ui->identifier_listWidget->clear();
    23. for (int i = 0; i < tempList.count(); i++) {
    24. QTest::qWait(1);
    25. listWidget_addItemPlusTooltip(ui->identifier_listWidget,tempList.at(i)->dataString);
    26. }
    27. }
    To copy to clipboard, switch view to plain text mode 

    So as you can see i want to search though someting in this case a QList and load the Strings into the ListWidget which match the search. The algorythm should stay like this I think. It takes like minutes until the Widget is filled with the new data. i have like 30 000 strings in this List. And all GUI should stay responsive to the user thats why the qWait is there. Maybe thats why it is so slow, but how can the GUI stay responsive without qwait?

    What can I do???

    Can somebody help me?

    edit: Without qwait the whole GUI in ther widget where this QListWidget is is locked. And it also takes like 1 minute to process all data into the QListWidget

    thx
    Last edited by Ini; 21st March 2016 at 03:22.

  2. #2
    Join Date
    Mar 2008
    Location
    Kraków, Poland
    Posts
    1,536
    Thanked 284 Times in 279 Posts
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default Re: Big Problem search through huge amount of data ca 30 000 strings takes to long

    First optimization - five times less method Storage::identifier.at(i) calls :
    Qt Code:
    1. QString temp_str;
    2. for (int i = 0; i < Storage::identifier.count(); i++) {
    3. temp_str = Storage::identifier.at(i)->dataString;
    4. if (temp_str.contains(text0,Qt::CaseInsensitive) &&
    5. temp_str.contains(text1,Qt::CaseInsensitive) &&
    6. temp_str.contains(text2,Qt::CaseInsensitive) &&
    7. temp_str.contains(text3,Qt::CaseInsensitive) &&
    8. temp_str.contains(text4,Qt::CaseInsensitive))
    9. {
    10. tempList << Storage::identifier.at(i);
    11. }
    12. }
    To copy to clipboard, switch view to plain text mode 

  3. #3
    Join Date
    Jan 2006
    Location
    Graz, Austria
    Posts
    8,416
    Thanks
    37
    Thanked 1,544 Times in 1,494 Posts
    Qt products
    Qt3 Qt4 Qt5
    Platforms
    Unix/X11 Windows

    Default Re: Big Problem search through huge amount of data ca 30 000 strings takes to long

    Also, since QTest::qWait() suggests this is a unit test, is it really that problematic?

    In a real application blocking the UI would be bad, but in an automated test you will have to wait for the result state anyway.

    Cheers,
    _

  4. #4
    Join Date
    Nov 2015
    Posts
    67

    Default Re: Big Problem search through huge amount of data ca 30 000 strings takes to long

    Can qWait not stay in the endprogramm?

    I cannot cut qWait cause GUI stays unresponsive then. I would consider this as big problem...


    Added after 20 minutes:


    Quote Originally Posted by Lesiok View Post
    First optimization - five times less method Storage::identifier.at(i) calls :
    Qt Code:
    1. QString temp_str;
    2. for (int i = 0; i < Storage::identifier.count(); i++) {
    3. temp_str = Storage::identifier.at(i)->dataString;
    4. if (temp_str.contains(text0,Qt::CaseInsensitive) &&
    5. temp_str.contains(text1,Qt::CaseInsensitive) &&
    6. temp_str.contains(text2,Qt::CaseInsensitive) &&
    7. temp_str.contains(text3,Qt::CaseInsensitive) &&
    8. temp_str.contains(text4,Qt::CaseInsensitive))
    9. {
    10. tempList << Storage::identifier.at(i);
    11. }
    12. }
    To copy to clipboard, switch view to plain text mode 
    is this really faster? whats the problem with .at(i) calls
    Last edited by Ini; 21st March 2016 at 10:50.

  5. #5
    Join Date
    Mar 2008
    Location
    Kraków, Poland
    Posts
    1,536
    Thanked 284 Times in 279 Posts
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default Re: Big Problem search through huge amount of data ca 30 000 strings takes to long

    Quote Originally Posted by Ini View Post


    Added after 20 minutes:

    is this really faster? whats the problem with .at(i) calls
    The problem is "this is a procedure calling". What do you think is faster: one call or five calls ?
    Besides, my experience is that many operations on the Qt containers is very slow in debug mode because of the control parameters with ASSERT.

    PS.

    Have you tried to determine which loop will give you such a long time?

  6. #6
    Join Date
    Nov 2015
    Posts
    67

    Default Re: Big Problem search through huge amount of data ca 30 000 strings takes to long

    I dont know im not expert in memeory management. In my opionion both "point" to a location. I will check on that.

    edit: I work in Release Mode.

    But thats really not the Problem. Problem is the second loop.

    I added qApp->processEvents. That helps but then there is a another Problem.
    This Slot is connected to textChanged() of the LineEdits. So when text changes the slot will get triggerd, then text changes again, and it seems the slot then stops and performs the new instance of the slotcall and when this new instance is finsihed the old one continues. Am I right there? How to solve that upcoming problem?

  7. #7
    Join Date
    Jan 2006
    Location
    Graz, Austria
    Posts
    8,416
    Thanks
    37
    Thanked 1,544 Times in 1,494 Posts
    Qt products
    Qt3 Qt4 Qt5
    Platforms
    Unix/X11 Windows

    Default Re: Big Problem search through huge amount of data ca 30 000 strings takes to long

    Quote Originally Posted by Ini View Post
    Can qWait not stay in the endprogramm?
    If you want the real program to link to QtTest, sure.
    Usually one doesn't want artifical dependencies.

    Quote Originally Posted by Ini View Post
    I cannot cut qWait cause GUI stays unresponsive then. I would consider this as big problem...
    Then I would suggest looking for a solution instead.

    E.g. putting the result list into a model and having a QListView work on that model.

    Cheers,
    _

  8. #8
    Join Date
    Nov 2015
    Posts
    67

    Default Re: Big Problem search through huge amount of data ca 30 000 strings takes to long

    Quote Originally Posted by anda_skoa View Post
    If you want the real program to link to QtTest, sure.
    Usually one doesn't want artifical dependencies.


    Then I would suggest looking for a solution instead.

    E.g. putting the result list into a model and having a QListView work on that model.

    Cheers,
    _
    why is that faster then QListWidget

    "Usually one doesn't want artifical dependencies."

    I dont find a good description what that is. Can you explain pls?

  9. #9
    Join Date
    Jan 2006
    Location
    Graz, Austria
    Posts
    8,416
    Thanks
    37
    Thanked 1,544 Times in 1,494 Posts
    Qt products
    Qt3 Qt4 Qt5
    Platforms
    Unix/X11 Windows

    Default Re: Big Problem search through huge amount of data ca 30 000 strings takes to long

    Quote Originally Posted by Ini View Post
    I dont know im not expert in memeory management. In my opionion both "point" to a location.
    Yes, but one is a direct "pointer" to the data, the other is repeatedly calculating the "pointer".
    Using a variable can even more likely lead to the pointer to be cached by the CPU than the result of a function evaluation which just incidentally (as far as the CPU knowns) returns the same value five times in a row.

    Quote Originally Posted by Ini View Post
    I added qApp->processEvents. That helps but then there is a another Problem.
    Yes, this new problem is called "nested event loop".

    Quote Originally Posted by Ini View Post
    This Slot is connected to textChanged() of the LineEdits. So when text changes the slot will get triggerd, then text changes again, and it seems the slot then stops and performs the new instance of the slotcall and when this new instance is finsihed the old one continues.
    Yes, nested event loops can lead to behavior similar to re-entrancy.

    Quote Originally Posted by Ini View Post
    why is that faster then QListWidget
    Because you don't have to create all items, a list view only displays as many entries as it can fit.

    Quote Originally Posted by Ini View Post
    I dont find a good description what that is. Can you explain pls?
    A dependency on a library that you actually don't need.

    Cheers,
    _

  10. #10
    Join Date
    Nov 2015
    Posts
    67

    Default Re: Big Problem search through huge amount of data ca 30 000 strings takes to long

    Quote Originally Posted by anda_skoa View Post
    Yes, but one is a direct "pointer" to the data, the other is repeatedly calculating the "pointer".
    Using a variable can even more likely lead to the pointer to be cached by the CPU than the result of a function evaluation which just incidentally (as far as the CPU knowns) returns the same value five times in a row.


    Yes, this new problem is called "nested event loop".


    Yes, nested event loops can lead to behavior similar to re-entrancy.


    Because you don't have to create all items, a list view only displays as many entries as it can fit.


    A dependency on a library that you actually don't need.

    Cheers,
    _
    Ok good to know what it is and that I figured that out right. What can I do against the nested event loops or reentrency? Is there a solution for that?

    Can I cancel the outstanding calls of the function except the newest one?

    And does it immediately pauses the old slot when the new instance get called, and when the new instance is finsihed does the old one continue in the line where its paused? If its like that I cannot know where to put a condition on something to return;


    Added after 5 minutes:


    I think I found a solution but its really ugly and I would have to add that in the first loop too:

    void SomeClass::searchIn_identifier_listWidget()
    {
    var = false;
    //...
    ui->identifier_listWidget->clear();
    for (int i = 0; i < tempList.count(); i++) {
    qApp->processEvents();
    if (var) {
    return;
    }
    listWidget_addItemPlusTooltip(ui->identifier_listWidget,tempList.at(i)->dataString);
    }
    }

    var = true;
    Last edited by Ini; 21st March 2016 at 11:29.

  11. #11
    Join Date
    Jan 2006
    Location
    Graz, Austria
    Posts
    8,416
    Thanks
    37
    Thanked 1,544 Times in 1,494 Posts
    Qt products
    Qt3 Qt4 Qt5
    Platforms
    Unix/X11 Windows

    Default Re: Big Problem search through huge amount of data ca 30 000 strings takes to long

    Quote Originally Posted by Ini View Post
    Ok good to know what it is and that I figured that out right. What can I do against the nested event loops or reentrency? Is there a solution for that?
    Yes, the best solution is to not use nested event loops.

    Quote Originally Posted by Ini View Post
    Can I cancel the outstanding calls of the function except the newest one?
    You can return from a function whenever you decide to return.
    So, in a nested loop case, you need to check after the nested loop return whether to still continue with the function.

    Quote Originally Posted by Ini View Post
    And does it immediately pauses the old slot when the new instance get called
    It does not pause anything.
    You call processEvents(), it processes another text change, that calls the function again, then that returns, the processEvent might return (if there are no further events) then you are right where you left.

    Quote Originally Posted by Ini View Post
    and when the new instance is finsihed does the old one continue in the line where its paused?
    Yes, that's how C++ works.
    If you call a function, your code executed right after the function call when the function returns.

    Cheers,
    _

  12. #12
    Join Date
    Nov 2015
    Posts
    67

    Default Re: Big Problem search through huge amount of data ca 30 000 strings takes to long

    "Yes, the best solution is to not use nested event loops."

    I cannot see that that I can avoid nested event loops in that case. Is there something that could help avoiding the nested loops?

    "You can return from a function whenever you decide to return.
    So, in a nested loop case, you need to check after the nested loop return whether to still continue with the function."

    but thats pretty ugly to put a processEvents() in every loop and then a condition wheter to exit the function with return; or not

  13. #13
    Join Date
    Jan 2006
    Location
    Graz, Austria
    Posts
    8,416
    Thanks
    37
    Thanked 1,544 Times in 1,494 Posts
    Qt products
    Qt3 Qt4 Qt5
    Platforms
    Unix/X11 Windows

    Default Re: Big Problem search through huge amount of data ca 30 000 strings takes to long

    Quote Originally Posted by Ini View Post
    I cannot see that that I can avoid nested event loops in that case. Is there something that could help avoiding the nested loops?
    As simple as not using them in the first place

    Quote Originally Posted by Ini View Post
    but thats pretty ugly to put a processEvents() in every loop and then a condition wheter to exit the function with return; or not
    Yes, hence the suggestion to not use them.

    You need to ask yourself: "Why do I hate myself, why do I need to make my life more complicated than necessary".

    Once you have forgiven yourself for whatever you are currently hating yourself for and are punishing yourself, you can go and make your life better by appling suggested improvements.

    Cheers,
    _

  14. #14
    Join Date
    Nov 2015
    Posts
    67

    Default Re: Big Problem search through huge amount of data ca 30 000 strings takes to long

    but I cannot find the same algorythm without an event loop. It is possible that event loops are needed for some algorythms.

    Is there no command to cancel all outstanding events of an object except the actual one?

  15. #15
    Join Date
    Jan 2006
    Location
    Graz, Austria
    Posts
    8,416
    Thanks
    37
    Thanked 1,544 Times in 1,494 Posts
    Qt products
    Qt3 Qt4 Qt5
    Platforms
    Unix/X11 Windows

    Default Re: Big Problem search through huge amount of data ca 30 000 strings takes to long

    Quote Originally Posted by Ini View Post
    but I cannot find the same algorythm without an event loop.
    So you now have an nested event loop inside the filtering loop as well?

    Maybe it is time to post some updated code?

    Quote Originally Posted by Ini View Post
    It is possible that event loops are needed for some algorythms.
    Highly unlikely.

    Cheers,
    _

  16. #16
    Join Date
    Nov 2015
    Posts
    67

    Default Re: Big Problem search through huge amount of data ca 30 000 strings takes to long

    void SomeClass::searchIn_identifier_listWidget()
    {
    searchIn_identifier_listWidget_eventLoopControl = false;

    QList<Identifier*> tempList;

    QString text0 = ui->identifier_lineEdit_search_0->text();
    QString text1 = ui->identifier_lineEdit_search_1->text();
    QString text2 = ui->identifier_lineEdit_search_2->text();
    QString text3 = ui->identifier_lineEdit_search_3->text();
    QString text4 = ui->identifier_lineEdit_search_4->text();

    for (int i = 0; i < Storage::identifier.count(); i++) {
    qApp->processEvents();
    if (searchIn_identifier_listWidget_eventLoopControl) {
    return;
    }
    if (Storage::identifier.at(i)->dataString.contains(text0,Qt::CaseInsensitive) &&
    Storage::identifier.at(i)->dataString.contains(text1,Qt::CaseInsensitive) &&
    Storage::identifier.at(i)->dataString.contains(text2,Qt::CaseInsensitive) &&
    Storage::identifier.at(i)->dataString.contains(text3,Qt::CaseInsensitive) &&
    Storage::identifier.at(i)->dataString.contains(text4,Qt::CaseInsensitive))
    {
    tempList << Storage::identifier.at(i);
    }
    }

    ui->identifier_listWidget->clear();
    for (int i = 0; i < tempList.count(); i++) {
    qApp->processEvents();
    if (searchIn_identifier_listWidget_eventLoopControl) {
    return;
    }
    listWidget_addItemPlusTooltip(ui->identifier_listWidget,tempList.at(i)->dataString);
    }

    searchIn_identifier_listWidget_eventLoopControl = true;
    }
    Thats working but its really not beatiful. Still searching for a better solution. I'm thinking about some filtering, but I dont know, filter what, a function? How can I filter a Slot.


    Added after 9 minutes:


    and like that I need an extra varaible for every of those "Search-ListWidgets" and cannot write generic code for every of those "Search-ListWidgets"
    Last edited by Ini; 21st March 2016 at 12:52.

  17. #17
    Join Date
    Mar 2008
    Location
    Kraków, Poland
    Posts
    1,536
    Thanked 284 Times in 279 Posts
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default Re: Big Problem search through huge amount of data ca 30 000 strings takes to long

    OK, try this (lines 12,13,30,40) and write what is debug output :
    Qt Code:
    1. void SomeClass::searchIn_identifier_listWidget()
    2. {
    3. searchIn_identifier_listWidget_eventLoopControl = false;
    4.  
    5. QList<Identifier*> tempList;
    6.  
    7. QString text0 = ui->identifier_lineEdit_search_0->text();
    8. QString text1 = ui->identifier_lineEdit_search_1->text();
    9. QString text2 = ui->identifier_lineEdit_search_2->text();
    10. QString text3 = ui->identifier_lineEdit_search_3->text();
    11. QString text4 = ui->identifier_lineEdit_search_4->text();
    12. QElapsedTimer timer;
    13. timer.start();
    14.  
    15. for (int i = 0; i < Storage::identifier.count(); i++) {
    16. qApp->processEvents();
    17. if (searchIn_identifier_listWidget_eventLoopControl) {
    18. return;
    19. }
    20. if (Storage::identifier.at(i)->dataString.contains(text0,Qt::CaseInsensitive) &&
    21. Storage::identifier.at(i)->dataString.contains(text1,Qt::CaseInsensitive) &&
    22. Storage::identifier.at(i)->dataString.contains(text2,Qt::CaseInsensitive) &&
    23. Storage::identifier.at(i)->dataString.contains(text3,Qt::CaseInsensitive) &&
    24. Storage::identifier.at(i)->dataString.contains(text4,Qt::CaseInsensitive))
    25. {
    26. tempList << Storage::identifier.at(i);
    27. }
    28. }
    29.  
    30. qDebug() << "First loop : " << timer.elapsed();
    31.  
    32. ui->identifier_listWidget->clear();
    33. for (int i = 0; i < tempList.count(); i++) {
    34. qApp->processEvents();
    35. if (searchIn_identifier_listWidget_eventLoopControl) {
    36. return;
    37. }
    38. listWidget_addItemPlusTooltip(ui->identifier_listWidget,tempList.at(i)->dataString);
    39. }
    40. qDebug() << "Second loop : " << timer.elapsed();
    41.  
    42. searchIn_identifier_listWidget_eventLoopControl = true;
    43. }
    To copy to clipboard, switch view to plain text mode 

  18. #18
    Join Date
    Jan 2006
    Location
    Graz, Austria
    Posts
    8,416
    Thanks
    37
    Thanked 1,544 Times in 1,494 Posts
    Qt products
    Qt3 Qt4 Qt5
    Platforms
    Unix/X11 Windows

    Default Re: Big Problem search through huge amount of data ca 30 000 strings takes to long

    Quote Originally Posted by Ini View Post
    Thats working but its really not beatiful.
    I see, still in the hate yourself phase.

    Quote Originally Posted by Ini View Post
    Still searching for a better solution.
    Like not creating potentially thousands of items nobody is every going to see?

    Oh my, if only someone would have suggested something like that.
    It would be so great if there were something that would only need as many items as it can display at the same time!

    In such an utopian world one could then look into optimizing the filtering itself.
    Wouldn't it be wonderful if could store a previous result and filter that when the criteria gets more precise instead of filtering everything over again?
    Boy, if only we could know what the previous search looked for!

    Cheers,
    _

  19. #19
    Join Date
    Nov 2015
    Posts
    67

    Default Re: Big Problem search through huge amount of data ca 30 000 strings takes to long

    Quote Originally Posted by Lesiok View Post
    OK, try this (lines 12,13,30,40) and write what is debug output :
    Qt Code:
    1. void SomeClass::searchIn_identifier_listWidget()
    2. {
    3. searchIn_identifier_listWidget_eventLoopControl = false;
    4.  
    5. QList<Identifier*> tempList;
    6.  
    7. QString text0 = ui->identifier_lineEdit_search_0->text();
    8. QString text1 = ui->identifier_lineEdit_search_1->text();
    9. QString text2 = ui->identifier_lineEdit_search_2->text();
    10. QString text3 = ui->identifier_lineEdit_search_3->text();
    11. QString text4 = ui->identifier_lineEdit_search_4->text();
    12. QElapsedTimer timer;
    13. timer.start();
    14.  
    15. for (int i = 0; i < Storage::identifier.count(); i++) {
    16. qApp->processEvents();
    17. if (searchIn_identifier_listWidget_eventLoopControl) {
    18. return;
    19. }
    20. if (Storage::identifier.at(i)->dataString.contains(text0,Qt::CaseInsensitive) &&
    21. Storage::identifier.at(i)->dataString.contains(text1,Qt::CaseInsensitive) &&
    22. Storage::identifier.at(i)->dataString.contains(text2,Qt::CaseInsensitive) &&
    23. Storage::identifier.at(i)->dataString.contains(text3,Qt::CaseInsensitive) &&
    24. Storage::identifier.at(i)->dataString.contains(text4,Qt::CaseInsensitive))
    25. {
    26. tempList << Storage::identifier.at(i);
    27. }
    28. }
    29.  
    30. qDebug() << "First loop : " << timer.elapsed();
    31.  
    32. ui->identifier_listWidget->clear();
    33. for (int i = 0; i < tempList.count(); i++) {
    34. qApp->processEvents();
    35. if (searchIn_identifier_listWidget_eventLoopControl) {
    36. return;
    37. }
    38. listWidget_addItemPlusTooltip(ui->identifier_listWidget,tempList.at(i)->dataString);
    39. }
    40. qDebug() << "Second loop : " << timer.elapsed();
    41.  
    42. searchIn_identifier_listWidget_eventLoopControl = true;
    43. }
    To copy to clipboard, switch view to plain text mode 
    I don't see the point of the timer, but nvm here is the data:

    First loop : 6
    First loop : 12
    First loop : 24
    First loop : 24
    First loop : 30
    First loop : 29
    First loop : 33
    First loop : 24
    First loop : 35
    First loop : 25
    First loop : 33
    Second loop : 96
    First loop : 30
    Second loop : 92
    First loop : 26
    Second loop : 78
    Second loop : 606
    First loop : 35
    Second loop : 82
    First loop : 29
    Second loop : 76
    Second loop : 1128
    First loop : 25
    Second loop : 73
    Second loop : 1641
    Second loop : 5734

    Its as expected first loop always constant and second loop depends on what i typed in. If I type in only 1 character second loop takes like 3 minutes or so

    Quote Originally Posted by anda_skoa View Post
    I see, still in the hate yourself phase.


    Like not creating potentially thousands of items nobody is every going to see?

    Oh my, if only someone would have suggested something like that.
    It would be so great if there were something that would only need as many items as it can display at the same time!

    In such an utopian world one could then look into optimizing the filtering itself.
    Wouldn't it be wonderful if could store a previous result and filter that when the criteria gets more precise instead of filtering everything over again?
    Boy, if only we could know what the previous search looked for!

    Cheers,
    _
    I dont understand why should nobody see them. If there is no Word in the searchlines all are visible. Its just a standard-filter, it seems Qt has no Functions to deal with the nested-loops or I did not find them so far. Thats why the wortkaround.

    Thank you for all help, but the hate stuff is not very helpfull . Helpful it would be so make a suggestion without nested loops. But i think there is no.

    And thats true what you say it would be faster to store the previous data. But that does not solve the problem.
    Last edited by Ini; 21st March 2016 at 13:46.

  20. #20
    Join Date
    Mar 2008
    Location
    Kraków, Poland
    Posts
    1,536
    Thanked 284 Times in 279 Posts
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default Re: Big Problem search through huge amount of data ca 30 000 strings takes to long

    Temporarily remove procesEvents() from code and show debug output. All outputs are in ms. 5734 ms is less then 6 seconds ! You are talking about minutes.

Similar Threads

  1. Replies: 9
    Last Post: 29th March 2011, 09:55
  2. QTextEdit loading takes long time
    By sreedhar in forum Qt Programming
    Replies: 12
    Last Post: 21st March 2011, 10:29
  3. Problem: the Application Takes very long time to build
    By Ma7moud El-Naggar in forum Qt Programming
    Replies: 5
    Last Post: 20th November 2010, 06:26
  4. [QTableWidget] clearing a big table takes so long!
    By punkypogo in forum Qt Programming
    Replies: 4
    Last Post: 5th August 2010, 13:52
  5. QImage::scaled takes long time
    By nrabara in forum Qt Programming
    Replies: 0
    Last Post: 15th December 2009, 12:19

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Digia, Qt and their respective logos are trademarks of Digia Plc in Finland and/or other countries worldwide.