crossplatform.ru

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


  Ответ в QListWidget и dropMimeData
Введите ваше имя
Подтвердите код

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

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


Последние 10 сообщений [ в обратном порядке ]
Rocky Дата 26.2.2010, 22:11
 
Цитата(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 тож нормально воспринимает.
SABROG Дата 26.2.2010, 22:06
 
Цитата(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, 18:24
  У меня 4.6.1..

Но я решил не париться, и сделал все через QListView. Заодно с моделями вроде-как разобрался )
Litkevich Yuriy Дата 26.2.2010, 10:59
 
Цитата(Rocky @ 26.2.2010, 11:11) *
Ну да, баг
чёт не понятный какой-то баг:
Отрапортовано - 21 февраля 2008 г. - на версии 4.3.3 (!)
Закрыт - 23 ноября 2009 г. - для некого будущего выпуска

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

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

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

UPD
Ну да, баг
http://bugreports.qt.nokia.com/browse/QTBUG-1698
Litkevich Yuriy Дата 26.2.2010, 4:59
 
Цитата(Rocky @ 26.2.2010, 3:44) *
На int z = 0; поставил брэйкпоинт... Перетаскиваю туда-сюда, тоже не попадаю....
скорее всего компиллер его выкинул, т.к. он нигде не используется. Попробуй туда qDedug воткнуть.
Rocky Дата 26.2.2010, 0:44
  Всем привет! Вот решил написать перекодировщик файлов... Достало меня при перетаскивании исходников из винды в линукс в блокноте менять кодировки вручную... Вроде уже почти написал, хотел тут выложить где-нить, мало ли кому пригодится.. но нашел багу... Вобщем, есть 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 тогда..... (

Спасибо!)
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 15:31