crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> QListWidget и dropMimeData
Rocky
  опции профиля:
сообщение 26.2.2010, 0:44
Сообщение #1


Старейший участник
****

Группа: Участник
Сообщений: 530
Регистрация: 22.12.2008
Из: Санкт-Петербург
Пользователь №: 463

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




Репутация:   7  


Всем привет! Вот решил написать перекодировщик файлов... Достало меня при перетаскивании исходников из винды в линукс в блокноте менять кодировки вручную... Вроде уже почти написал, хотел тут выложить где-нить, мало ли кому пригодится.. но нашел багу... Вобщем, есть 2 QListWidget... Запретил им drag&drop (предварительно поставив им icon view). Безтолку, все равно могу мышкой элементы перетягивать. Ладно думаю, раз запретить нельзя, пусть хоть корректно перетаскивание работает... Унаследовался, попробовал переопределить dropMimeData - ни фига она не вызывается... Т.е. перетаскиваю нормально - а сюда не попадаю.. Задача - нужно как-то запретить повторение элементов (айтемов QListWidget) с одинаковыми именами... Погуглил - вроде как баг это.. Но у нокии написано closed.

Попробовал так. В классе-родителе этих 2- QListWidget:
//в конструкторе
    m_pAllExtsListWidget->installEventFilter(this);
    m_pChosenExtsListWidget->installEventFilter(this);

//далее:
bool CFileDecoder::eventFilter(QObject *pWatched, QEvent *pEvent)
{
    if (pWatched == m_pAllExtsListWidget || pWatched == m_pChosenExtsListWidget)
    {
        if (pEvent->type() == QEvent::Drop || pEvent->type() == QEvent::DragMove || pEvent->type() == QEvent::DragLeave
            || pEvent->type() == QEvent::DragEnter || pEvent->type() == QEvent::DragResponse)
        {
            int z = 0;
        }
    }

    return QMainWindow::eventFilter(pWatched, pEvent);
}

На int z = 0; поставил брэйкпоинт... Перетаскиваю туда-сюда, тоже не попадаю....

Как-нить можно еще отловить это перетаскивание? Я уже подумываю отказатся от QListWidget тогда..... (

Спасибо!)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 26.2.2010, 4:59
Сообщение #2


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

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

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




Репутация:   94  


Цитата(Rocky @ 26.2.2010, 3:44) Link
На int z = 0; поставил брэйкпоинт... Перетаскиваю туда-сюда, тоже не попадаю....
скорее всего компиллер его выкинул, т.к. он нигде не используется. Попробуй туда qDedug воткнуть.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Rocky
  опции профиля:
сообщение 26.2.2010, 8:11
Сообщение #3


Старейший участник
****

Группа: Участник
Сообщений: 530
Регистрация: 22.12.2008
Из: Санкт-Петербург
Пользователь №: 463

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




Репутация:   7  


Неа, не выкинул. Вот если взять мышкой айтем из 1-го виджета и перенести на 2-й, то я не проваливаюсь про брейку сюда... А вот если его захватить и просто тупо медленно перетащить через любой другой виджет, хоть даже это само диалоговое окно - то брэйк срабатывает.

Вобщем, какой-то косяк... Я вчера перед сном подумал, что наверное через QListView сделаю... Вроде как там тоже можно иконки айтемам сделать, надеюсь там таких проблем не будет..

UPD
Ну да, баг
Link

Сообщение отредактировал Rocky - 26.2.2010, 9:10
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 26.2.2010, 10:59
Сообщение #4


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

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

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




Репутация:   94  


Цитата(Rocky @ 26.2.2010, 11:11) Link
Ну да, баг
чёт не понятный какой-то баг:
Отрапортовано - 21 февраля 2008 г. - на версии 4.3.3 (!)
Закрыт - 23 ноября 2009 г. - для некого будущего выпуска

С пометкой: Out of scope, а не Done или Rejected

Rocky, у тебя версия Qt какая?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Rocky
  опции профиля:
сообщение 26.2.2010, 18:24
Сообщение #5


Старейший участник
****

Группа: Участник
Сообщений: 530
Регистрация: 22.12.2008
Из: Санкт-Петербург
Пользователь №: 463

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




Репутация:   7  


У меня 4.6.1..

Но я решил не париться, и сделал все через QListView. Заодно с моделями вроде-как разобрался )
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 26.2.2010, 22:06
Сообщение #6


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

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

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




Репутация:   34  


Цитата(Rocky @ 26.2.2010, 0:44) Link
Достало меня при перетаскивании исходников из винды в линукс в блокноте менять кодировки вручную...


Поэтому тролли и пишут в Code Convention, что все исходники должны быть в кодировке ASCII, коды символов до 127, выше 127 идут русские буквы например, так что комментарии тоже на английском должны быть, и естественно интерфейс изначально надо писать на английском, имена кнопочек и прочее. А если уж приперло на русском, то текст должен быть в таком виде:

QString = "\320\237\321\200\320\270\320\262\320\265\321\202, \320\274\320\270\321\200 UTF-8";
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Rocky
  опции профиля:
сообщение 26.2.2010, 22:11
Сообщение #7


Старейший участник
****

Группа: Участник
Сообщений: 530
Регистрация: 22.12.2008
Из: Санкт-Петербург
Пользователь №: 463

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




Репутация:   7  


Цитата(SABROG @ 26.2.2010, 22:06) Link
QString = "\320\237\321\200\320\270\320\262\320\265\321\202, \320\274\320\270\321\200 UTF-8";

Ага и читать его также ))) Ну uic таким и создает русский текст как я понимаю. Кстати по-поводу ASCII тоже вопрос. В линуксе стоит Qt Creator. Так вот некоторые исходные файлы (которые в кодировке ASCII) он нормально открывает.. А некоторым просит вручную выбрать кодировку.. Странно как-то. Но я все в utf-8 перевел (потому что вся система в utf-8 ), так-что щас все ок вроде как. А под виндой 2008-я студия utf-8 тож нормально воспринимает.

Сообщение отредактировал Rocky - 26.2.2010, 22:11
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 25.12.2025, 0:59