扩展 GtkWindow 的类

发布于 2024-09-14 04:51:59 字数 704 浏览 7 评论 0原文

我正在尝试学习 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

i'm trying to learn c++, but i can not find if it's possible to extend a class in this way:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我的鱼塘能养鲲 2024-09-21 04:52:00

谢谢,
我试图像使用 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

另一个小指示,我应该使用什么作为动态数组或向量以及哈希图?

thanks,
I was trying to use C libraries as if they were C++.
This is how I solved with 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();
}

also add the command to complete successfully, at least on Arch Linux:

g++ $(pkg-config --cflags --libs gtkmm-2.4) main.cc examplewindow.cc examplewindow.h -o executable

another small indication, what i shouldl use as dynamic arrays or vectors and for hashmap?

鱼窥荷 2024-09-21 04:51:59

I suggest you take a look at gtkmm (http://www.gtkmm.org/) if you want to use GTK+ in conjunction with C++, i.e. there is no need to try to reinvent the wheel and write your own C++ interface for GTK+ (which is a C library).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文