فئة تمديد gtkwindow
سؤال
أحاول أن أتعلم C ++ ، لكن لا يمكنني العثور على ما إذا كان من الممكن تمديد الفصل بهذه الطريقة:
Main.cc
#include "mWindow.h"
using namespace std;
int main( int argc, char* argv[] ) {
gtk_init( &argc, &argv );
mWindow win = mWindow();
gtk_main();
return 0;
}
mwindow.cc
#include "mWindow.h"
mWindow::mWindow() {
gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (this, "my window");
gtk_widget_show_all (GTK_WIDGET(this));
}
mwindow.h
#ifndef MWINDOW_H_INCLUDED
#define MWINDOW_H_INCLUDED
#include <gtk/gtk.h>
using namespace std;
class mWindow : public GtkWindow {
public:
mWindow();
};
#endif
المحلول 2
شكرًا ، كنت أحاول استخدام مكتبات C كما لو كانت C ++. هذه هي الطريقة التي حللت بها مع gtkmm: main.cc
#include <gtkmm/main.h>
#include "examplewindow.h"
int main(int argc, char *argv[])
{
Gtk::Main kit(argc, argv);
ExampleWindow window;
Gtk::Main::run(window);
return 0;
}
examplewindow.h
#ifndef GTKMM_EXAMPLEWINDOW_H
#define GTKMM_EXAMPLEWINDOW_H
#include <gtkmm-2.4/gtkmm.h>
class ExampleWindow : public Gtk::Window {
public:
ExampleWindow();
};
#endif //GTKMM_EXAMPLEWINDOW_H
examplewindow.cc
#include "examplewindow.h"
ExampleWindow::ExampleWindow() {
set_title("Gtk::TextView example");
set_border_width(5);
set_default_size(400, 200);
show_all_children();
}
أضف أيضًا الأمر لإكماله بنجاح ، على الأقل على Arch Linux:
g++ $(pkg-config --cflags --libs gtkmm-2.4) main.cc examplewindow.cc examplewindow.h -o executable
مؤشر صغير آخر ، ما يجب أن أستخدمه كصفائف أو متجهات ديناميكية ولهشماب؟
نصائح أخرى
أقترح عليك إلقاء نظرة على GTKMM (http://www.gtkmm.org/) إذا كنت ترغب في استخدام GTK+ بالتزامن مع C ++ ، فلا توجد حاجة لمحاولة إعادة اختراع العجلة وكتابة واجهة C ++ الخاصة بك لـ GTK+ (وهي مكتبة C).
لا تنتمي إلى StackOverflow