error: ‘GtkWidget’ {aka ‘struct _GtkWidget’} has no member named ‘window’
时间: 2023-12-14 07:38:29 浏览: 52
这个错误通常表示你在使用一个名为 `window` 的成员变量,但是 `GtkWidget` 结构体中并没有这个成员。可以尝试检查一下你的代码中是否有类似下面这样的语句:
```
GtkWidget* widget = gtk_window_new(GTK_WINDOW_TOPLEVEL);
widget->window = gtk_window_get_window(widget);
```
这里假设 `window` 是一个 `GtkWidget` 的成员变量。如果是这样的话,你需要将其修改为正确的成员变量名,比如 `window` 可能是 `GtkWindow` 的成员变量而不是 `GtkWidget` 的成员变量。
相关问题
GtkWidget* table = gtk_table_new(2,2,TRUE);
您好!根据您提供的代码片段,这是一个使用 GTK+ 的函数 `gtk_table_new()` 创建一个名为 `table` 的 `GtkWidget` 对象的示例。
`gtk_table_new()` 是一个用于创建表格布局的函数。它接受三个参数:`rows`、`columns` 和 `homogeneous`。
- `rows` 是表格的行数,指定了表格应该有多少行。
- `columns` 是表格的列数,指定了表格应该有多少列。
- `homogeneous` 是一个布尔值,用于指定表格中的单元格是否应该具有相同的大小。
在您的代码中,`gtk_table_new(2,2,TRUE)` 创建了一个具有 2 行和 2 列的表格,且单元格大小是相同的。函数返回一个指向新创建的表格对象的指针,然后将其赋值给 `table`。
接下来,您可以使用其他 GTK+ 函数将其他小部件(例如按钮、标签等)添加到表格的单元格中,以实现更复杂的用户界面。
请注意,GTK+ 已经过时,现在推荐使用 GTK4 或其他现代的用户界面库。如果您使用的是较新版本的 GTK,请参考相应版本的文档以获取最新的函数和用法。
希望这可以帮助您!如果您还有其他问题,请随时提问。
linux gtk_window_new跟gtk_plug_new能同时使用吗
在 Linux 下,gtk_window_new() 和 gtk_plug_new() 可以同时使用。gtk_window_new() 函数用于创建一个新的 GTK 窗口,而 gtk_plug_new() 函数用于创建一个插件,用于嵌入一个外部的 X 窗口。
以下是一个简单的示例代码,展示了如何同时使用这两个函数:
```c
#include <gtk/gtk.h>
int main(int argc, char *argv[]) {
// 初始化 GTK
gtk_init(&argc, &argv);
// 创建一个新的 GTK 窗口
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_size_request(window, 200, 200);
gtk_window_set_title(GTK_WINDOW(window), "GTK Window");
// 创建一个插件对象
GtkWidget *plug = gtk_plug_new(0);
// 将插件对象添加到窗口中
gtk_container_add(GTK_CONTAINER(window), plug);
// 显示窗口和插件对象
gtk_widget_show_all(window);
// 启动 GTK 的主事件循环
gtk_main();
return 0;
}
```
在这个例子中,我们创建了一个新的 GTK 窗口,并使用 gtk_plug_new() 函数创建了一个插件对象。然后,我们将插件对象添加到窗口中,并显示窗口和插件对象。最后,我们调用 gtk_main() 启动 GTK 的主事件循环。
这样,你可以同时使用 gtk_window_new() 和 gtk_plug_new() 来创建 GTK 窗口,并在其中嵌入外部的 X 窗口。请注意,这个例子只是一个基本的示例,你可以根据自己的需求进行更复杂的操作。