c_cpp:wxwidgets

文書の過去の版を表示しています。


wxWidgets

 wxWidgetsは、LinuxのGTK+、X11、MotifやWindows、Windows CE、Mac OS Xなどで動作するオープンソースのクロス プラットフォーム GUIライブラリである。

 wxWidgetsの特色は、作成されたアプリケーションは、各プラットフォームのネイティブ コントロール/コモン ダイアログを利用するので、どのプラットフォームにおいても見た目が自然で違和感なく利用することができる。
 ライブラリ自体はC++で記述されているが、開発者はC++のほか、Python (wxPython)、C# .NET (wx.NET)、Erlang (wxErlang)、Haskell (wxHaskell)、Lua (wxLua)、Perl (wxPerl)、Ruby (wxRuby)、Smalltalk (wxSqueak)、Java (wx4j)、JavaScript (wxJavaScript) 向けのバインディングを利用して、wxWidgetsベースのアプリケーションを作成することができる。

 wxWidgetsの歴史については、wxWidgets(当初 wxWindows)は1992年よりJulian Smart氏によって開発が始められ、MicrosoftよりWindowsの商標を尊重するようにとの要求を受けて、2004年2月20日にプロジェクトはwxWidgetsに改名したとの発表を行った。(インターネット上で文献を探す際は、wxWindowsとwxWidgetsの両方で探すと良い。)

参考文献:
wxWidgets - Wikipedia, the free encyclopedia

  1. Latest Development Release: 3.1.2 の Source Code より、Windows 7z をクリックして wxWidgets-x.x.x.7z をダウンロードする。
    • gz、bz2 および zip の形式をお好みで選択。
    • ライブラリはソースコードからビルドする必要がある。
    • 最初はドキュメントなどもすべて含んでいた方が良いので wxAllをダウンロードすることをお勧めする。
    • 例えば、Visual C++ のワークスペースでのビルドが上手く行かない場合は、wxMsw をダウンロードして試すことをおすすめする。(wxAll と違っていて直されている場合がある。)
  2. Windows では wxWidgets-x.x.x.7z の内容を C:\Libraries\ などに解凍する。

GitHub - wxWidgets/wxWidgets: Cross-Platform GUI Library - Report issues here: https://trac.wxwidgets.org/ より clone する。

$ git clone --recurse-submodules https://github.com/wxWidgets/wxWidgets.git


–recurse-submodules 無しで clone してしまった場合は以下のコマンドを実行する。

> cd wxWidgets
> git submodule update --init

wxGTK2

$ sudo dnf install wxGTK wxGTK-devel

wxGTK3

$ sudo dnf install wxGTK3 wxGTK3-devel
$ cd wxWidgets
$ ./configure
$ make
  1. タスクバーの「ここに入力して検索」に sysdm.cpl を入力して Enter キーを押す。
  2. 「システムのプロパティ」の「詳細設定」タブの[環境変数]ボタンを押して「環境変数」画面を開く。
  3. 「環境変数」画面の[システム環境変数」の[新規]ボタンを押して以下の環境変数を登録する。
    変数名: WXWIN
    変数値: C:\wxWidgets
  4. タスクバーの「ここに入力して検索」に cmd を入力して「コマンドプロンプト」を「管理者として実行」する。
  5. 「コマンドプロンプト」以下のコマンドを入力する。
    > cd %WXWIN%\include\wx\msw\
    > mklink setup.h setup0.h
    setup.h <<===>> setup0.h のシンボリック リンクが作成されました
  6. 「スタート」の「Visual Studio 2019」より「x64 Native Tools Command Prompt for VS 2019」を起動して、以下のコマンドを入力する。
    > cd %WXWIN%\build\msw
    > nmake /f makefile.vc

    ※デフォルトはデバッグ設定で静的ライブラリとして wxWidgets を構築する。

    • リリースビルドは以下のコマンドを実行する。
      > nmake /f makefile.vc BUILD=release
    • リリースビルドの DLL バージョンは以下のコマンドを実行する。
      > nmake /f makefile.vc BUILD=release SHARED=1

      TARGET_CPU=X64 を指定すると Win64 バージョンをビルドする。

 以下の方法にて必要なサンプルのみをビルド/実行することができる。

  1. 「スタート」の「Visual Studio 2019」より「x64 Native Tools Command Prompt for VS 2019」を起動して、以下のコマンドを入力する。
    > cd %WXWIN%\samples
    > nmake /f makefile.vc


 サンプルアプリケーションのwxAUIデモの実行
 サンプルwxAUIデモ

参考文献

 以下のサイトを参考にさせて頂きました。情報を公開して下さっている方々に感謝します。
 Microsoft Visual C++ Guide - WxWiki
 フリープログラミング for windows.Visual C++ Express EditionでwxWidgetsを使ってみる
 簡単だけどつまづきやすいwxWidgetsの第一歩:CodeZine

インクルード ファイル 検索パスの設定

  1. [ツール] メニューの [オプション] をクリックする。
  2. 「オプション」ダイアログボックスの [プロジェクトおよびソリューション] ノードを展開する。
  3. [VC++ ディレクトリ] プロパティ ページをクリックする。
  4. [ディレクトリを表示するプロジェクト]コンボボックスより[インクルード ファイル]を選択する。
  5. パスの一覧に C:\Libraries\wxWidgets-2.8.9\include および C:\Libraries\wxWidgets-2.8.9\include\msvc を追加する。
    インクルード ファイルの設定
    • C:\Libraries\wxWidgets-2.8.9\のパスは自分の環境に合わせて読み替えること。

ライブラリ ファイル 検索パスの設定

  1. [ツール] メニューの [オプション] をクリックする。
  2. 「オプション」ダイアログボックスの [プロジェクトおよびソリューション] ノードを展開する。
  3. [VC++ ディレクトリ] プロパティ ページをクリックする。
  4. [ディレクトリを表示するプロジェクト]コンボボックスより[ライブラリ ファイル]を選択する。
  5. パスの一覧に C:\Libraries\wxWidgets-2.8.9\lib\vc_lib を追加する。
    ライブラリ ファイルの設定
    • C:\Libraries\wxWidgets-2.8.9\のパスは自分の環境に合わせて読み替えること。
  1. [ファイル]メニューより[新規作成] - [プロジェクト]をクリックする。
  2. [新しいプロジェクト]ダイアログボックスで、[プロジェクトの種類]の[Visual C++] - [全般]フォルダを選択し、[テンプレート]より[空のプロジェクト]を選択する。
    新しいプロジェクト
    • プロジェクト名、場所、ソリューション名を必要に応じて修正する。
  3. [新しいプロジェクト]ダイアログボックスの[OK]ボタンをクリックする。
  4. プロジェクトを右クリックし[追加] - [新しい項目]をクリックする。必要に応じてヘッダ ファイル、ソース ファイル(必須)を追加する。
    • 注意!! ソース ファイル(*.cpp)がないと、プロジェクトのプロパティ設定で、[構成プロパティ]ノードの[C/C++]プロパティページが表示されない
    • [ヘッダー ファイル]を追加する。(ファイル名: xxxApp.h)
      ヘッダ、ソースの追加
    • [C++ ファイル]を追加する。(ファイル名: xxxApp.cpp)
    • ここまでの操作でソリューションは以下のようになる。
      ソリューション エクスプローラの状態
  5. プロジェクトを右クリックして[プロパティ]をクリックする。
    1. [構成プロパティ]ノードを展開して[全般]プロパティページを表示する。
      構成プロパティ(全般)
      • 文字セット: 「Unicode 文字セットを使用する」を設定する。
    2. [構成プロパティ] - [C/C++]ノードを展開して、[プリプロセッサ]プロパティページを表示する。
      • プリプロセッサ定義: WIN32;_WINDOWS;_DEBUG;__WXMSW__;__WXDEBUG__ を設定する。
      • WIN32 - 必須
      • _WINDOWS - 必須
      • _DEBUG - デバッグを有効にする。
      • __WXMSW__ - 必須
      • __WXDEBUG__ - デバッグ ビルドされた wxWidgets をリンク。wxASSERT() などをアクティブ化。
      • WXUSINGDLL - スタティック ライブラリの代わりに DLL を使用する場合に指定する。
      • wxUSE_GUI=1 - プロジェクトで GUI コンポーネントを使用する場合は指定する。(任意)
      • _CRT_SECURE_NO_DEPRECATE -「この関数または変数は安全ではないかもしれない。」の警告を抑制する。
      • _CRT_NONSTDC_NO_DEPRECATE - その他の警告を抑制する。
    3. [構成プロパティ] - [C/C++]ノードを展開して、[コード生成]プロパティページを表示する。
      • ランタイム ライブラリ: マルチスレッド デバッグ DLL または マルチスレッド DLL
    4. [構成プロパティ] - [C/C++]ノードを展開して、[プリコンパイル済みヘッダー]プロパティページを表示する。
      • プリコンパイル済みヘッダーの作成/使用: プリコンパイル済みヘッダーを使用しない
    5. [構成プロパティ] - [リンカ]ノードを展開して、[入力]プロパティページを表示する。
      • 追加の依存ファイル: wxmsw28ud_core.lib wxbase28ud.lib comctl32.lib rpcrt4.lib winmm.lib wsock32.lib
      • wxmsw28[ud]_core.lib wxbase28[ud].lib -
      • advapi32.lib comctl32.lib odbc32.lib rpcrt4.lib winmm.lib wsock32.lib - wxWidgetsが必要とする。
        advapi32.lib odbc32.lib は継承の値に含まれる。
    6. [構成プロパティ] - [リンカ]ノードを展開して、[システム]プロパティページを表示する。
      • サブシステム: Windows (/SUBSYSTEM:WINDOWS)
  6. プロジェクトのプロパティ ダイアログを[OK]ボタンで閉じる。

参考文献:
Microsoft Visual C++ Guide - WxWiki

sample.cpp:33:25: error: expected ';' at end of member declaration
     virtual bool OnInit() wxOVERRIDE;
                         ^
                          ;
sample.cpp:33:27: error: 'wxOVERRIDE' does not name a type; did you mean 'wxEVT_IDLE'?
     virtual bool OnInit() wxOVERRIDE;
                           ^~~~~~~~~~
                           wxEVT_IDLE
  • c_cpp/wxwidgets.1549722876.txt.gz
  • 最終更新: 2019/05/18 02:23
  • (外部編集)