X11   wxWidgets プログラミング

ホーム

wxWidgets

wxWidgets は、C++ で記述して、Windows、macOS、Linux の GUI アプリケーションを作れる GUI フレームワークです。大変人気があり、 数多くのプログラミング言語に移植されて、wx言語名 という名前の移植版が存在します。今回は本家の C++ 版の wxWidgets を使います。


Development Tools のインストール

CentOS でアプリケーションの開発する場合は Develpment Tools をインストールしておくと何かとうまくいく場合が多いです。 まだの方は一応インストールしてみてください。


sudo yum groupinstall "Development Tools"
    


wxWidgets のインストール


sudo yum install epel-release

sudo yum --enablerepo=epel install wxGTK wxGTK-devel

// インストールされたか確認します
wx-config --version
2.8.12
    


Button アプリの作成

実際にアプリケーションを作っていきます。

wxWidgets はアプリケーションのリソースをディレクトリにまとめなければならい というような制限はありません。ソースファイルを記述する場所はどこでも構わないでですが 私はホームディレクトリに Documets というディレクトリを作り、その中に wx というディレクトリを作り、 その中にソースを記述しました。

次の button.cpp を記述して保存してください。

button.cpp


#include <wx/wx.h>

class Button : public wxFrame
{
public:
    Button();
    void OnQuit(wxCommandEvent & event);
};

class App : public wxApp
{
public:
    virtual bool OnInit();
};

Button::Button() : wxFrame(NULL, -1, wxT("Button"))
{
    wxPanel    *panel  = new wxPanel(this, -1);
    wxButton   *button = new wxButton(panel, wxID_EXIT, wxT("Quit"));
    wxBoxSizer *hbox   = new wxBoxSizer(wxHORIZONTAL);
    wxBoxSizer *vbox   = new wxBoxSizer(wxVERTICAL);
    hbox->Add(button, 0, wxALIGN_CENTER);
    vbox->Add(hbox,   1, wxALIGN_CENTER);
    panel->SetSizer(vbox);
    
    Connect(wxID_EXIT, wxEVT_COMMAND_BUTTON_CLICKED,
            wxCommandEventHandler(Button::OnQuit));
}

void Button::OnQuit(wxCommandEvent & event)
{
    Close();
}

IMPLEMENT_APP(App)

bool App::OnInit()
{
    Button *button = new Button();
    button->Center(wxCENTER_ON_SCREEN);
    button->Show();
    return true;
}
    


コンパイルと実行

wxWidgets には簡易的に実行する方法はありません。必ずビルどしてから実行します。


// コンパイル(ビルド)
g++ button.cpp `wx-config --cppflags --libs` -o button

// ` は '(シングルクォーテーション)とは違います。US キーボードなら ~(チルダ)と同じキーです。
// JIS キーボードの場合は、@キーと同じキーです。
// wxWidget の場合は、ビルド時にコードエラーが表示されます。

// X11 で実行するには次のようにします
./button & X -retro
	

実行画面

X11 ではウィンドウのフレーム(タイトルバーやリサイズする機能)はつきません。 Quit ボタンをクリックすると Button アプリが終了します。


X11 の終了

、 X11 を終了するには次のようにします。


// 次のコマンドで X11 の画面が閉じます
 Ctrl + Alt + F1
 
 // F1 のところは、X11 を起動したコンソールの番号に合わせt、F1、F2、F3 と変えていきます
 // ほとんどの場合、コンソール番号 1 からの起動なので、F1 にしました
// 画面は閉じても X11 のタスクは起動したままです。
// そして、次のコマンドで X11 は完全に終了します
Ctrl + C
    



2602 visits
Posted: Jul. 12, 2021
Update: Jul. 12, 2021

ホーム   目次