X11   wxGTK3 プログラミング

ホーム

wxGTK3

今回の内容は、wxWidgets プログラミングとほぼ同じです。

CentOS 7 では、wxGTK までしかインストールできませんでしたが、CentOS 8 では wxGTK3 がインストールできます。その結果、GUI のデザインが少し新しくなります。


Development Tools のインストール

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


sudo dnf groupinstall "Development Tools"
    


wxGTK3 のインストール


sudo dnf install epel-release

sudo dnf --enablerepo=epel install wxGTK3 wxGTK3-devel

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


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, "Button")
{
    wxPanel    *panel  = new wxPanel(this, -1);
    wxButton   *button = new wxButton(panel, wxID_EXIT, "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();
    button->Show();
    return true;
}
    

wxGTK3 では文字列を wxT() で囲む必要がなくなりました。 buton->Center(); は、wxGTK でもこの書き方で良かったみたいです。


コンパイルと実行

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


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

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

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

実行画面

wxGTK3 では、ボタンなどのデザインが変わりました。ウィンドウの大きさは 指定していないので、アプリケーションが適当な大きさにしています。 X11 ではウィンドウのフレーム(タイトルバーやリサイズする機能)はつきません。 Quit ボタンをクリックすると Button アプリが終了します。


X11 の終了

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


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





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

ホーム   目次