Arrastre desde cualquier navegador y suéltelo en la aplicación Qt: establezca datos de tipo mime personalizados

Básicamente, estoy configurando datos de tipo mime personalizados cuando arrastro la imagen desde el navegador usando javascript. Di ex, el tipo de mimo es text/x-my y sus datos = My data.

Pero cuando trato de leerlo en Qt (cuando suelta la imagen del navegador a la ventana de Qt) no obtengo un tipo de mimo personalizado text/x-my en Qt. Sin embargo está documentado “puede almacenar datos de tipo mime personalizados en Qt" ver QMimeData Doc.
Ahora, lo interesante es que en el código Qt puede configurar y obtener datos mime personalizados, pero Qt no está leyendo el conjunto de datos mime personalizados de javascript.

QString str = "my data";
QMimeData *mimeData = new QMimeData;
mimeData->setData("text/x-my", str.toAscii());

QByteArray data = mimeData->data("text/x-my");
QString myString(data);

El código Qt anterior funciona bien. ¿Alguien tiene alguna idea de por qué Qt no está leyendo el tipo de mimo personalizado establecido desde javascript?

Gracias.

preguntado el 04 de julio de 12 a las 08:07

Supongo que ya estás recuperando el mimeData desde el Evento Entrar/Mover/Soltar (QDropEvent::mimeData). A partir de ahí, el mejor primer paso sería ver qué formato (s) tiene su mimeData: intente qDebuging el contenido de QMimeData::formats()... -

Sí... pero en la depuración no puedo ver el formato "texto/x-my" en los datos MIME que se establecen desde javascript. (Estoy usando 4.8.2.) -

Un evento de arrastrar y soltar puede contener datos MIME de múltiples formatos, por eso QMimeData::data(...) requiere que proporcione un formato MIME para recuperar datos. Dado que no puede recuperar ningún dato, lo primero que debe verificar es si el evento de arrastrar y soltar contiene datos de cualquier formato. Estas diciendo eso foreach(QString format, event->mimeData()->formats()) qDebug() << format; no imprime nada? -

Más sobre esto, (estoy usando 4.8.2.) Usar aquí fiddle y ejecute el ejemplo "dropsite" de Qt\4.8.2\examples\draganddrop y verifique. No podrá ver "text/x-example". -

0 Respuestas

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.