wxWidgets のインストール(Ubuntu 上)
wxWidgets は、 GUI アプリケーションを簡単に書けるようにするための プログラム.Windows, UNIX, Mac 等で動く. wxWidgets には, GUI 機能,インラインヘルプ,ネットワークプログラミング,クリップボード, ドラッグアンドドロップ,マルチスレッド,画像のロードとセーブ, データベース,HTML閲覧と印刷等の機能がある.
URL: https://www.wxwidgets.org/
ソフトウェア等の利用条件は,利用者自身で確認下さい.
前準備
Ubuntu のシステム更新
Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する.
sudo apt -y update
sudo apt -yV upgrade
sudo /sbin/shutdown -r now
C/C++ コンパイラー,make,パッケージツールのインストール
端末で,次のコマンドを実行する.
sudo apt -y update
sudo apt -y install build-essential gcc g++ make libtool texinfo dpkg-dev pkg-config
wxWidgets のインストール(ソースコードを使用)(Ubuntu 上)
◆ Ubuntu での操作手順例
- wxWidget の Web ページを開き,wxWidgets の利用条件,バージョンを確認する.
- インストール
cd /tmp rm -rf wxWidgets-3.1.3 curl -O https://github.com/wxWidgets/wxWidgets/releases/download/v3.1.3/wxWidgets-3.1.3.tar.bz2 tar -xvjof wxWidgets-3.1.3.tar.bz2 cd /tmp/wxWidgets-3.1.3 ./configure --with-gtk --prefix=/usr/local make sudo make install
- 動作テスト
cd samples/minimal make ./minimal
ld.so.confの設定
スーパーユーザで、下記を実行
- /etc/ld.so.confに以下の行を追加
次のようになる
-------------ここから----------- /usr/local/lib --------------ここまで---------
- 「sudo /sbin/ldconfig」の実行


sudo make install
sudo cp wx-config /usr/local/bin
sudo chmod 755 /usr/local/bin/wx-config
wxWidget に付属の見本
wxWidgets に付属の見本(contrib/samples/mmedia/mmboard.exe, contrib/samples/plot/plot.exe, contrib/samples/stc/stctest.exe, contrib/samples/svg/svgtest.exe) を実行してみる.
(参考)サンプルプログラム
参考にした Web ページ: http://www.h3.dion.ne.jp/~k5_n/wxwin/window/window.html(現存しない)
wxWidgets の wxApp, wxFrame, wxMenu, wxMessageBox, wxFileDialogを使用.
// プリコンパイルをサポートするコンパイラーのために
#include "wx/wxprec.h"
// プリコンパイルをサポートしないコンパイラーのために
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif
// 新しいアプリケーションの型を定義
class MainApp : public wxApp
{
public:
// この関数がアプリケーションのスタートポイント。
virtual bool OnInit();
};
// 新しいアプリケーションオブジェクトを生成
IMPLEMENT_APP(MainApp)
//
// これがメイン関数
//
bool MainApp::OnInit()
{
wxFrame *frame = new myFrame( /* parent */ NULL, /* Window ID */ -1, wxT("Window Title"), wxPoint( 480, 480 ), wxSize( 320, 200 ) );
frame->show();
SetTopWindow(frame);
// 終わり
return TRUE;
}