图片上的GTKMM文字

gtkmm text on a picture

本文关键字:GTKMM 文字      更新时间:2023-10-16

我想在我的GUI中有一个图片元素,上面有文字。我的目标是加载图片(例如水滴(,并在其上放置文本,该文本代表测量的湿度(值来自mqtt(。

最好的方法是什么?我不在乎它是标签还是任何其他类型的元素(尽管我不满意为此滥用按钮(。文本需要改变。我是这个框架的新手,所以我还没有挂在上面。

谢谢!

这是示例代码。它使用覆盖层堆叠两个小部件,一个图像和标签:

#include <gtk/gtk.h>
int main(int argc, char *argv[]) {
  GtkWidget *window;
  GtkWidget *image;
  GtkWidget *label;
  GtkWidget *overlay;
  gtk_init(&argc, &argv);
  window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
  gtk_window_set_title(GTK_WINDOW(window), "Sandbox");
  image = gtk_image_new_from_file("image.png");
  label = gtk_label_new("I've always been too lamen
To see what's before men
And I know nothing sweeter thann
Champaign from last New Yearsn
Sweet music in my earsn
And a night full of no fearsn
n
But if I had one wish fulfilled tonightn
I'd ask for the sun to never risen
If God passed a mic to me to speakn
I'd say "Stay in bed, world,n
Sleep in peace");
  overlay = gtk_overlay_new ();
  gtk_container_add(GTK_CONTAINER(window), overlay);
  gtk_overlay_add_overlay(GTK_OVERLAY(overlay), image);
  gtk_overlay_add_overlay(GTK_OVERLAY(overlay), label);
  g_signal_connect(G_OBJECT(window), "destroy",
        G_CALLBACK(gtk_main_quit), NULL);
  gtk_widget_show_all(window);
  gtk_main();
  return 0;
}