Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Общие вопросы _ Оптимизация кода..

Автор: kibsoft 9.11.2009, 15:51

QApplication app(argc,argv);
    QWidget w;
    QString str1("Number: "),str2(" Sum: ");
    QStringList str;
    QListWidget s(&w);
    uint sum=0;
    w.show();
    for(int i=0;i<150000;++i)
    {
        sum+=i;
        str << (str1+QString::number(i)+str2+QString::number(sum));
    }
    s.addItems(str);
    app.exec();

Этот код выполнялся 8 секунд, стоило поставть s.setUniformItemSizes(true) и код заработал за 1 секунду. Прочитал в документации, что это свойство setUniformItemSizes дожно быть true, только когда все элементы одинакового размера..что это значит? у меня же все строки разного размера...

Автор: Litkevich Yuriy 9.11.2009, 16:01

Цитата(kibsoft @ 9.11.2009, 18:51) *
у меня же все строки разного размера
Цитата(kibsoft @ 9.11.2009, 18:51) *
все элементы одинакового размера
строки (QString) и элементы разные вещи. Речь идёт об одной высоте строки (Row) в списковом представлении

Автор: kibsoft 9.11.2009, 16:18

Цитата(Litkevich Yuriy @ 9.11.2009, 17:01) *
Цитата(kibsoft @ 9.11.2009, 18:51) *
у меня же все строки разного размера
Цитата(kibsoft @ 9.11.2009, 18:51) *
все элементы одинакового размера
строки (QString) и элементы разные вещи. Речь идёт об одной высоте строки (Row) в списковом представлении

Т.е. если я например в качестве элементов возьму какие-нибудь картинки разного размера(по высоте), то это свойство должно быть false?

Автор: Litkevich Yuriy 9.11.2009, 16:41

Цитата(kibsoft @ 9.11.2009, 19:18) *
то это свойство должно быть false?
точно поведение не помню, по моему если оно будет true, то он выставит все по наибольшему размеру.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)