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; }