我正在Ubuntu上试验GTK ++而且我运气不好。仅出于测试目的,我想看看我是否可以获得一个描述窗口是否可调整大小的布尔值。这是我的代码:
#include <gtkmm.h>
#include <iostream>
#include "config.h"
int main (int argc, char *argv[])
{
gboolean isResizable;
Gtk::Main kit(argc, argv);
Gtk::Window* main_win = new Gtk::Window (Gtk::WINDOW_TOPLEVEL);
main_win->set_title ("gtk-test");
isResizable = gtk_window_get_resizable(main_win);
if (main_win)
{
kit.run(*main_win);
}
return 0;
}
我在将isResizable
设置为gtk_window_get_resizable
的行上收到错误消息。
错误说:
cannot convert 'Gtk::Window*' to GtkWindow* {aka_Gtk_window*} for argument 1
Gtk::Window
和GtkWindow*
之间有区别吗?如果是这样,我将如何进入Gtk::Window
?
由于
答案 0 :(得分:3)
Instread of:
gtk_window_get_resizable(main_win);
呼叫:
main_win->get_resizable();
Gtk :: Window和GtkWindow *之间是否存在差异?
Gtk::Window
(和main_win->get_resizable()
)是C ++(gtkmm)
GtkWindow
(和gtk_window_get_resizable
)是C(gtk)
很容易跨越这两个,因为gtkmm是gtk的包装器,所以你有两个代码库。