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


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

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

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




Репутация:   94  


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


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

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

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




Репутация:   7  


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

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

UPD
Ну да, баг
http://bugreports.qt.nokia.com/browse/QTBUG-1698

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


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

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

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




Репутация:   94  


Цитата(Rocky @ 26.2.2010, 11:11) *
Ну да, баг
чёт не понятный какой-то баг:
Отрапортовано - 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) *
Достало меня при перетаскивании исходников из винды в линукс в блокноте менять кодировки вручную...


Поэтому тролли и пишут в 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) *
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 Текстовая версия Сейчас: 12.12.2019, 22:35