gpt4 book ai didi

c - 带有 Popover 菜单示例代码的 GTK3 C 菜单按钮(仅使用 .c,不使用 .ui)

转载 作者:太空宇宙 更新时间:2023-11-03 23:38:23 33 4
gpt4 key购买 nike

如何使用 gtk_popover_menu_new() 来使用简单的 gtk_menu_button_new()?当我尝试使用 Glade 时,它​​完美地工作,但是,我需要 .c 代码,而不是 .ui 代码。我在 Internet 上找不到仅使用 .c 作为 Popovermenu 的示例代码

有人可以提供非常简单的示例代码,其中弹出菜单包含几个按钮吗?窗口设计代码最好写在 int main 中,而不是 static void activate。

There will be .gif that will show what I want to make

附言我知道,为了在内部安装多个按钮,我需要使用 GTK_BOX。

编辑:我添加了示例代码,其中包含菜单按钮,但它不起作用。请完成此代码以像在 .gif 中一样工作。编译:gcc pkg-config --cflags gtk+-3.0 -o './testprogram.run' './testprogramcode.c' pkg-config --libs gtk+-3.0 >

编辑 2:我向 testBox 添加了一个按钮

代码:

#include <gtk/gtk.h>

int main(int argc, char *argv[])
{

GtkWidget *window;


gtk_init(&argc, &argv);
//Create window
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_default_size(GTK_WINDOW(window), 300, 200);
gtk_window_set_title(GTK_WINDOW(window), "Simple menu");


//Creating fixed container
GtkWidget *fixedContainer = gtk_fixed_new ();
gtk_container_add(GTK_CONTAINER(window), fixedContainer);

//Creating and adding new menu button in fixed container
GtkWidget *testMenuButton = gtk_menu_button_new ();
gtk_fixed_put (GTK_FIXED(fixedContainer), testMenuButton, 50, 50);

//Adding popover to menu button
GtkWidget *testPopOver = gtk_popover_new (testMenuButton);

//Creating GTK_BOX to hold popover box contents
GtkWidget *testBox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);

//Creating and adding new button in testBox
GtkWidget *testButton = gtk_button_new ();
gtk_box_pack_start(GTK_BOX(testBox), testButton, TRUE, TRUE, 5);

//How to add testBox to testPopOver?









g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
gtk_widget_show_all(window);
gtk_main();

return 0;
}

最佳答案

你可以试试这个片段:

  GtkWidget *mb = gtk_menu_button_new ();
GtkWidget *po = gtk_popover_new (mb);
GtkWidget *lb = gtk_label_new ("hello");

gtk_container_add (po, lb);
g_object_set (mb, "margin", 150, NULL);
gtk_menu_button_set_popover (mb, po);

但是,避免使用 .ui 是省钱的做法。您最好避免过早的优化。

关于c - 带有 Popover 菜单示例代码的 GTK3 C 菜单按钮(仅使用 .c,不使用 .ui),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53151802/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com