расширение класса GtkWindow - PullRequest
       6

расширение класса GtkWindow

1 голос
/ 10 августа 2010

Я пытаюсь выучить 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 ]

2 голосов
/ 10 августа 2010

Я предлагаю вам взглянуть на gtkmm (http://www.gtkmm.org/), если вы хотите использовать GTK + в сочетании с C ++, то есть нет необходимости пытаться изобретать велосипед и писать свой собственныйИнтерфейс C ++ для GTK + (который является библиотекой C).

0 голосов
/ 10 августа 2010

спасибо, я пытался использовать библиотеки 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

еще одно небольшое указание, что я должен использовать в качестве динамических массивов или векторов и для hashmap?

...