crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Создание вложенного действия QAction
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Litkevich Yuriy Дата 1.8.2010, 17:18
  копилку эту разобрать бы, да в вики перенести. Да что-то никак с силами не соберусь. Может, кто-то возьмётся
Алексей1153 Дата 1.8.2010, 17:08
  Хм, надо тогда более детально протестировать будет :)
Litkevich Yuriy Дата 1.8.2010, 12:30
  Сообщение переместил сюда: Секреты и интересные возможности Qt
(В копилку так сказать)
Litkevich Yuriy Дата 31.7.2010, 23:39
  Накидал класс YAction, наследник QAction поддерживающий иерархию.
Прикрепленный файл  YAction.zip ( 959 байт ) Кол-во скачиваний: 140


применять легко:
QAction *addItem(const QString &menuPath)
{
    const QStringList items = menuPath.split("/");
    QAction *action = 0;
    for(int i = 0; i != items.size(); ++i){
        if (!action){
            action = new YAction(items.at(i), menuBar);
        }else{
            action = new YAction(items.at(i), action);
        }
    }
    return action;
}
menuBar - где-то объявлен.

П.С.
писалось только-что (без двадцати минут 4 утра) ;)
Алексей1153 Дата 31.7.2010, 22:41
  DEADHUNT, обрати внимание на количество элементов :) А сравнение двух строк - это одна цепочечная машинная команда, если удачно соптимизируется. Опять оффтоп )) Увязнем в теории, которая тут ни к чему
DEADHUNT Дата 31.7.2010, 22:36
  вычисление хэша наверняка не будет выполняться дольше чем сравнивается QString(а их будет O(log n) ).
Алексей1153 Дата 31.7.2010, 22:32
  При таком небольшом размере списка - сомневаюсь :) Хеш ещё и посчитать надо. Но это уже оффтоп, я ж говорю - скорость тут фигня, не заметишь
DEADHUNT Дата 31.7.2010, 22:29
  а что хэш таблица медленнее идеально сбалансированного дерева(с временной сложностью поиска O(log n) )?
Алексей1153 Дата 31.7.2010, 22:25
  DEADHUNT, ну это уже не суть важно. А чем быстрее то , кстати?

В любом случае, на скорость тут пофиг )) Чай меню, а не миллисекундные точности
DEADHUNT Дата 31.7.2010, 22:24
 
Цитата(Алексей1153 @ 31.7.2010, 23:21) *
Если меню создаётся с нуля, то проще всего вести ассоциативный список map<QString,QAction*>

можно hash map использовать(быстрее будет, в STL std::unordered_map)
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 16:35