crossplatform.ru

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

История благодарностей участнику crot26rus ::: Спасибо сказали: 5 раз(а)
Дата поста: В теме: За сообщение: Спасибо сказали:
7.2.2014, 22:19 работа с class
вот здесь твои ошибки:
mesblock0 = str0.toUtf8 ().data ();
mesblock1 = str1.toUtf8 ().data ();
mesblock2 = str2.toUtf8 ().data ();
mesblock3 = str3.toUtf8 ().data ();


toUtf8() создаёт QByteArray, в котором хранятся данные и на каждой следующей строчке старый объект удаляется и создаётся новый.
В итоге все указатели хранят один и тот же адрес и указывают на область памяти, которая уже освобождена (теперь там хранится мусор: последние записанные туда данные).

P.S. может я не совсем правильно описал происходящие процессы (знающих людей прошу поправить), но надеюсь моя мысль понятна.



astra,
25.1.2014, 11:19 Просто улыбайтесь AD, Jason-GTK, Алексей1153,
19.1.2014, 15:13 QTreeView и Drag and Drop: как узнать, над какой веткой произошел Drop?
Если ты используешь QTreeView, значит есть модель, а у модели есть метод
virtual bool dropMimeData(const QMimeData * data, Qt::DropAction action, int row, int column, const QModelIndex & parent)

он как раз и позволит определить, куда делается дроп.

Также в модели есть
virtual QStringList mimeTypes() const

который возвращает поддерживаемые моделью mime types. Он должен возвращать твой mine type, чтобы вызывался dropMimeData.

Litkevich Yuriy,

RSS Текстовая версия Сейчас: 28.11.2024, 1:20