Название: ToolTip + raw image [РЕШЕНО] Отправлено: sendevent от Июнь 17, 2010, 22:23 есть QPixmap - некий сграбленный виджет, надо добавить его в тултип.
Код: //-- QTDIR/examples/desktop/screenshot/screenshot.cpp/#192 <img src="/file/or/resources/path"> - работает замечательно, а вот <img src="data:image/png;base64,..." - вставляет "blank-image": (http://img22.imageshack.us/img22/7914/67348282.th.png) (http://img22.imageshack.us/img22/7914/67348282.png) можно "сохранить на винт и добавить" - но не хотелось бы, по крайней мере пока не станет ясно, что другого пути нет. (т.к. количество одновременно валидных "скриншотов" не фиксировано, прийдется либо гадить в tmp временными файлами, либо в ручную обеспечивать уникальность имен и обрадовать инсталлятор новой "подопечной" директорией). есть идеи? Название: Re: ToolTip + raw image Отправлено: GreatSnake от Июнь 18, 2010, 13:34 Есть большое подозрение, что для рендеринга RichText-a в Qt используется усечённая версия html, в котором такие навороты не поддерживаются.
Могу предложить hack как это обойти: Код Правда в RichText-e я это не пробовал, но по идее должно прокатить. Название: Re: ToolTip + raw image Отправлено: sendevent от Июнь 18, 2010, 14:04 то, что надо, под уиндоуз по крайней мере, остальное потом проверю. (тока "<img src='test'>" - без двоеточия перед именем). спасибо огромное! upd: поторопился, такой финт тоже не проходит :-( с толку сбил "test.png", оставшийся в "./" от предыдущих экспериментов - атрибут src в теге img подхватывал именно его, а не ключ в кеше, и изображение из файла выводилось нормально. Название: Re: ToolTip + raw image Отправлено: shadone от Июнь 21, 2010, 11:19 возможно получится зарегистрировать картинку в виде ресурса - QResouce::registerResouce(imageadata, "foo.png") и потом использовать этот путьв тултипе
Название: Re: ToolTip + raw image Отправлено: ритт от Июнь 21, 2010, 12:06 уже как минимум второй раз вижу человека, заинтересованного в подобном функционале...пора бы добавить уже фичу :)
Название: Re: ToolTip + raw image Отправлено: GreatSnake от Июнь 21, 2010, 12:19 Да, действительно не прокатывает.
Дело в том, что QToolTip отнаследован от QLabel, который в свою очередь для отрисовки RichText-a использует QTextDocument. А у QTextDocument есть virtual QVariant loadResource( int type, const QUrl& name ), используя который можно грузить что угодно и откуда угодно. Только вот тролли всё это от нас спрятали. :( Есть 2 варианта: написать свой QToolTip, что в принципе несложно, либо воспользоваться приватными методами, которые нам тролли "любезно" предоставили: Код
На сей раз я этот код проверил - всё работает) Название: Re: ToolTip + raw image Отправлено: SABROG от Июнь 21, 2010, 15:17 возможно получится зарегистрировать картинку в виде ресурса - QResouce::registerResouce(imageadata, "foo.png") и потом использовать этот путьв тултипе Нет. rccData указывает на данные в определенном формате, который генерит утилита rcc. Библиотеки Qt не содержат классов, которые могут генерить файлы в этом формате. Другой вариант, использовать QAbstractFileEngine и реализовать "доставку" данных (картинки), к примеру, для собственной "файловой системы". На QtCentre были исходники memfilehandler. Название: Re: ToolTip + raw image Отправлено: sendevent от Июнь 25, 2010, 14:17 Другой вариант, использовать QAbstractFileEngine и реализовать "доставку" данных (картинки), к примеру, для собственной "файловой системы". На QtCentre были исходники memfilehandler. оно!хотя сначала показалось что как-то многовато действий для, казалось бы, простейшей задачи, решение действительно довольно несложное и удобное. пример прост до безобразия, глядя на него не проблема реализовать подобное с подсчетом ссылок на "файлы" и корректным расшариванием памяти внутри своего проекта. всем спасибо! ps: на qtcentr'е исходники в тар.гз, который под виндой не прожевали рар/зип, нормально распаковал тока 7z. на всяк случай прицепил тут в zip'е. |