crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> выделение виджетов и групповое редактированием
Гость_trupac_*
сообщение 26.6.2010, 17:30
Сообщение #1





Гости








    


как можно осуществить выделение группы сложно устроенных виджетов (виджеты могут содержать произвольное количество строк и столбцов текстовой информации), проверку их на наличие одинаковых строк и редактирование одинаковых строк внутри этой группы при помощи qt?

опыта в программирование ui практически не имею. если мои запросы завышены, не стесняйтесь, укажите мне на это.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 26.6.2010, 19:32
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2913
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


А что понимается под "выделением" ? :)

Проверка на наличие одинаковых элементов: перебрать все объекты и посчитать количество уникальных строк. Где будет больше 1 - там.
Можно применить std::map - как раз для этой задачи подойдёт

    #include <map>

    struct QMyWidget
    {
        QString m_str;
    };

    typedef std::map<QString,int> td_counter;
    td_counter _counter;

    typedef std::map<QMyWidget*,int> td_list;
    td_list _list;

    //перебираем виджеты
    QMyWidget* p=0;
    for(.....;......;......)
    {
        //p->m_str - строка из текущего виджета
        if((++_counter[p->m_str])>1)
        {
            _list[p];
        }
    }

    //_list - список указателей на виджеты с повтором

    if(_list.size())
    {
        //пройдёмся по виджетам с дублями
        td_list::iterator it;
        for(it=_list.begin();it!=_list.end();it++)
        {
            QMyWidget* p=it->first;

            //*p - текущий виджет с повтором
            //...
        }
    }


если строки аааафигеть большие, можно заменить ключ с QString на структуру с длиной строки и CRC16 строки (своеобразный хеш)

Сообщение отредактировал Алексей1153 - 27.6.2010, 7:49
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_trupac_*
сообщение 27.6.2010, 10:04
Сообщение #3





Гости








    


пример "выделения" на кутишном виджите. http://img806.imageshack.us/i/screenshot.png/
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 27.6.2010, 11:45
Сообщение #4


фрилансер
******

Группа: Участник
Сообщений: 2913
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Цитата(Гость_trupac_* @ 26.6.2010, 20:30) *
не стесняйтесь, укажите мне на это

Не постесняюсь напомнить, что правильно поставленный вопрос - это половина ответа :)
А иначе люди просто не поймут, что тебе нужно сделать.

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

Кстати, QListWidget или QListView, может, подойдут
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_trupac_*
сообщение 27.6.2010, 12:45
Сообщение #5





Гости








    


да блин. ВЫДЕЛЕНИЕ. это когда выделяют, тянут рамочку, жамкают по элементам с зажатыми контролом или шифтом. только в рамках одной конкретно указанной программы. да и на рисунке было показано не что иное, как "выделение".
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 27.6.2010, 13:01
Сообщение #6


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9666
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Гость_trupac_* @ 27.6.2010, 16:45) *
да и на рисунке было показано не что иное, как "выделение".
я, к стати, там не увидел выделения. Какие элементы выделены, а какие нет?

Цитата(Алексей1153 @ 27.6.2010, 15:45) *
Кстати, QListWidget или QListView, может, подойдут
+1

вообще связка QFileSystemModel + QListView для этого и предназначена
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_trupac_*
сообщение 27.6.2010, 17:04
Сообщение #7





Гости








    


Litkevich Yuriy, http://img690.imageshack.us/img690/4509/screenshot1fx.png теперь всё видно? да, смею заметить, что вы слегка увлеклись "файлами" и "папочками" - на скрине был просто пример. однако не всё так плохо - вы дали мне кейворд, который вывел меня сей замечательный толмуд http://doc.qt.nokia.com/4.6/model-view-programming.html спасибо вам

Алексей1153, именно. :rolleyes: группа элементов которыми необходимо манипулировать. выделять их о_0
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 27.6.2010, 22:06
Сообщение #8


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9666
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Гость_trupac_* @ 27.6.2010, 21:04) *
теперь всё видно?
ну вот, другое дело.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.2.2021, 4:51