problème: J'ai un Textview avec différents Texttags dans différentes zones de texte sélectionnées. A la fin de l'édition, je voudrais rendre ce textbuffer/textview multi-marqué dans la zone de dessin. Mais je ne comprends pas comment je peux rendre le textview multi-tag utilisant la disposition de Pango/cairo?. Ce serait génial si je reçois un code Gtk +/Gtkmm qui montre le dessin de texte. EX: Disons que mon texte est "AAABBB" et dans ce AAA a l'ensemble de balises en gras et BBB est non gras et en italique set..now comment puis-je rendre ce genre de texte?rendu multi-attributs textview
0
A
Répondre
1
En supposant que vous êtes à la recherche d'un C++ exemple, vérifier si le code ci-dessous fonctionnerait pour vous:
#include <gtk/gtk.h>
static gboolean on_expose_event_0(GtkWidget *widget, GdkEventExpose *event, gpointer data)
{
GdkScreen *screen = gdk_drawable_get_screen(widget->window);
PangoRenderer *renderer = gdk_pango_renderer_get_default (screen);
GdkGC *gc = gdk_gc_new(widget->window);
gdk_pango_renderer_set_drawable(GDK_PANGO_RENDERER (renderer), widget->window);
gdk_pango_renderer_set_gc(GDK_PANGO_RENDERER (renderer), gc);
PangoContext *context = gdk_pango_context_get_for_screen (screen);
PangoLayout *layout = pango_layout_new (context);
pango_layout_set_markup(layout, "<b>AAA</b><i>bbb</i>", -1);
PangoFontDescription *font = pango_font_description_from_string("Times 20");
pango_layout_set_font_description(layout, font);
pango_font_description_free(font);
pango_renderer_draw_layout (renderer, layout, 1, 1);
gdk_pango_renderer_set_drawable(GDK_PANGO_RENDERER (renderer), NULL);
gdk_pango_renderer_set_gc(GDK_PANGO_RENDERER (renderer), NULL);
g_object_unref(layout);
g_object_unref(context);
g_object_unref(gc);
return FALSE;
}
int main(int argc, char *argv[])
{
GtkWidget *window;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_add_events (window, GDK_BUTTON_PRESS_MASK);
g_signal_connect(window, "expose-event", G_CALLBACK(on_expose_event_0), NULL);
g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_title(GTK_WINDOW(window), "pango test");
gtk_window_set_default_size(GTK_WINDOW(window), 400, 300);
gtk_widget_set_app_paintable(window, TRUE);
gtk_widget_show_all(window);
gtk_main();
return 0;
}
Il y a aussi un exemple sur l'utilisation pango avec caire ici: Using Pango with Cairo
espérons que cette aide , salutations
Questions connexes
- 1. Calculer le temps pour les performances de rendu TextView
- 2. Échapper "" dans TextView TextView
- 3. Ajout d'un textView sous un autre textView
- 4. comment gérer le texte textview et textview?
- 5. Center TextView entre Button et TextView?
- 6. Comment obtenir la taille de l'image réelle du texte rendu dans TextView Android
- 7. Imprimer infos GPU (moteur de rendu, version, vendeur) sur TextView sur Android
- 8. Rendu d'image neuf patch
- 9. Point d'interrogation Android dans TextView?
- 10. rendu rendu meilleur option
- 11. Afterfilter rendu modèle rendu
- 12. AdWhirl pas de rendu Android
- 13. TextView ne
- 14. TextView Invisibilité
- 15. Android TextView
- 16. textView chapiteau
- 17. UIButton + textView
- 18. sélection textview
- 19. TextView height
- 20. Dynamic TextView
- 21. Android TextView
- 22. Android TextView
- 23. TextView length
- 24. Android TextView
- 25. TextView onclickListener
- 26. TextView comment?
- 27. mode textView
- 28. Animation TextView
- 29. Faire pour regarder TextView cliquable, Android?
- 30. Comment faire un textview auto aline en textview?