【GUI】wxWidgets(旧wxWindows) その5【サイザー】
クロスプラットフォーム GUI ライブラリの wxWidgets (旧 wxWindows)についてのスレ。 本家 ttp://www.wxwidgets.org/ wxWindows日本語プロジェクト ttp://wxwindowsjp.sourceforge.jp/ Cross-Platform Programming with wxWidgets ttp://wxwidgets.info/ Let's wxWidgets ttp://dot-gray.s33.xrea.com/ wxWindowsで始めるC++ GUIプログラミング ttp://www.h3.dion.ne.jp/~k5_n/wxwin/ wxWidgets でクロスプラットフォーム GUIアプリを作ろう ttp://0xcc.net/pub/uu-2004-08/ 前スレ 【GUI】wxWidgets(旧wxWindows) その4【サイザー】 http://pc12.2ch.net/test/read.cgi/tech/1214657360/ >> 238 サンプルはそのままビルドするとDLL依存になるとおもう。 cd samples make "LDFLAGS = -static" こんな感じでいかかでしょ。 >>241 いや、自分でmakeファイルに-static直書きしたけど駄目でした まぁ、なんか勘違いしてるか頭がアホなんて理解できてないだけでしょう とりあえずVCでも問題ないのでVCでやります、いろいろありがとうございました >>242 がんがれ。 ただ、オープンソース系のライブラリを今後使っていくんなら いずれにしてもgcc系の流儀とかも覚えておいた方がいいと思うよ。 call vcvarsall pushd build\msw nmake -f makefile.vc BUILD=debug UNICODE=1 USE_GDIPLUS=1 SHARED=1 RUNTIME_LIBS=dynamic popd こんな感じでいいんじゃね あと2.9.2はstableじゃないけどいいの? 質問お願いします。 http://www.dotup.org/uploda/www.dotup.org2004935.jpg こういうよくある(名前、種類、ディレクトリ、サイズ)みたいなのを 表示したいんですがヴィジェットは何を使ったらいいでしょうか? できれば画像のように名前のところの矢印みたいなのを付けたいのと 項目の順番をD&Dで入れ替えたり表示、非表示をポップアップメニューで行いたいです。 項目にはDBのカラムを割り当てたいと思っています。 すいません、listctrlで出来そうですね。 なんでいつも質問した後は簡単に見つかるんだろう… wxWidgetsのライセンスって何なの(L-GPL)? これ使って書いたプログラムってソースコード開示する必要あるの? 教えてエロい人!! まあその質問はググッたらでてきそうだしな… ところで組み込み用のwxWidgetsとかないんだろうか。 >>249 試しにググッたら意外と出てこなかったので教えてやるでおじゃる http://web.archive.org/web/20080919161353/http ://www.geocities.co.jp/SiliconValley-Cupertino/8526/wxWindows/license.html http://ms2.seesaa.net/article/3184354.html これですね http://www.wxwidgets.org/about/newlicen.htm "wxWindows Licence"で配布されていて、 ソースコード開示の必要はないというのが一応の答えかな 需要があるかどうか不明ですが。 wxWidgetsマニュアルにある Syntax of the builtin regular expression library の邦訳です。 拙作ソフト説明書の一部になっていますが、この頁の訳文に関してはご利用自由です。ただし独自訳多数。 http://h12u.com/hmo2/manual/%E8%A8%AD%E5%AE%9A%E7%AA%93%E5%8F%A3/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE%E6%96%87%E6%B3%95.html >>258 乙です てかwxWidgetsにも正規表現ライブラリあったんだな >>258 正格表現って初めて見たが、正則表現ではなくて? POSIXブラケットのうち、[. .] [= =] [:<:] [:>:]とかって他のライブラリじゃほとんど見ないな。 [[=A=]]ってAやÄなどにマッチするんだっけ? >>260 ご指摘Thx. 直しておきました。どこで間違ったんだろう。 > [[=A=]]ってAやÄなどにマッチするんだっけ? 建前としてはそうなるはずだけど誰も実装してないとか何とか。よく知らないですが。 調べてみたら [. .] と [= =] の訳文はかなりおかしい気がしてきた。 実は訳間違ってました[[=A=]] ってかくと顔文字っぽい。 258です。訳文とかちょっと修正しました。ページ内部のリンクも増やした。 >>263 実は私もよく知らない。 http://ja.wikipedia.org/wiki/POSIX POSIX(ポジックス パーズィックス、Portable Operating System Interface)とは、 異なる実装のUNIX OSを始めとする各種OSに共通のAPIを定め、移植性の高い アプリケーションソフトウェアの開発を容易にすることを目的としてIEEEが策定した アプリケーションインタフェイス規格である。 motifもIEEEが規格決めてたから、こっち使いましょうよ >>263 ザックリとでよければ「UNIX互換」くらいに考えておけば良い。 CodeBlocks10.05とwxWigets2.8を使用しています。 勉強中です。 http://wiki.codeblocks.org/index.php?title=WxSmith_tutorials の1-7までは実行してみました。 そんなレベルなのですが、ディレクトリ内のファイル名を一覧でcsvにだせるところまでを目標に しています。 void filenameFrame::OnButton1Click(wxCommandEvent& event) { wxString CurrentDocPath; wxString Filename; wxArrayString Filenames; wxString GetDirectory; wxFileDialog* OpenDialog = new wxFileDialog( this,wxEmptyString,wxEmptyString,wxEmptyString,wxEmptyString,wxFD_MULTIPLE,wxDefaultPosition); if (OpenDialog->ShowModal() == wxID_OK) { CurrentDocPath = OpenDialog->GetPath(); Filename << OpenDialog->GetFilename(); GetDirectory << OpenDialog->GetDirectory(); Filenames << OpenDialog->GetFilenames[0]; TextCtrl1->SetLabel(CurrentDocPath); TextCtrl2->SetLabel(Filename); TextCtrl3->SetLabel(GetDirectory); TextCtrl4->SetLabel(Filenames); } OpenDialog->Destroy();} C:\C\FILENAME\filenameMain.cpp|133|error: invalid use of member (did you forget the '&' ?)| C:\C\FILENAME\filenameMain.cpp|140|error: conversion from 'wxArrayString*' to 'const wxString' is ambiguous| C:\wxWidgets2.8\include\wx\string.h|692|note: candidates are: wxString::wxString(wxChar, size_t) <near match>| コンパイルすると、このようなメッセージが表示されます。 以下の行を削除すると、正常にコンパイルが通ります。 wxArrayString Filenames; Filenames << OpenDialog->GetFilenames[0]; wxArrayString Filenames; wxFiledialogで複数ファイルを選択した場合には、配列?を使用しないといけないような気がするので、多分wxArrayStringを使わないとだめかと 思いいれてみました。 配列?なのでGetFilenames[0]といれれば複数ファイルを選択した場合に一番最初のファイル名が入る認識でしたが間違っているようです・・・ 複数ファイルの選択と、複数のファイル名の取得方法を検索したのですが、サンプルなどを見つけることができませんでした。 どこが間違っているか教えてください。 >>269 最後の行 OpenDialog->Destroy();} 中括弧が全角になってるなあ てかこれ全コードじゃないよね サンプルにある"dialogs"が参考になるんじゃないかな、 "File operations->Open files"というのがある。 >>271 レスありです。全コードではありません。 改行などを削除しています。 wxSmithで作成していますので、どのようなソースが必要になりますか? プロジェクトフォルダを見ると、bin/obj/wx_pch.h.gch/wxsmithフォルダと filename.cbp/filename.depend/filename.layout/filenameApp.cpp/filenameApp.h/filenameMain.cpp/filenameMain.h/resource.rc/wx_pch.hファイルがあります。 filenameMain.cppの内容は以下のとおりです。 /*************************************************************** * Name: filenameMain.cpp * Purpose: Code for Application Frame * Author: () * Created: 2011-11-08 * Copyright: () * License: **************************************************************/ #include "wx_pch.h" #include "filenameMain.h" #include <wx/msgdlg.h> //(*InternalHeaders(filenameFrame) #include <wx/intl.h> #include <wx/string.h> //*) //helper functions enum wxbuildinfoformat { short_f, long_f }; wxString wxbuildinfo(wxbuildinfoformat format) { wxString wxbuild(wxVERSION_STRING); if (format == long_f ) { #if defined(__WXMSW__) wxbuild << _T("-Windows"); #elif defined(__UNIX__) wxbuild << _T("-Linux"); #endif #if wxUSE_UNICODE wxbuild << _T("-Unicode build"); #else wxbuild << _T("-ANSI build"); #endif // wxUSE_UNICODE } return wxbuild; } //(*IdInit(filenameFrame) const long filenameFrame::ID_BUTTON1 = wxNewId(); const long filenameFrame::ID_TEXTCTRL1 = wxNewId(); const long filenameFrame::ID_BUTTON2 = wxNewId(); const long filenameFrame::ID_TEXTCTRL2 = wxNewId(); const long filenameFrame::ID_BUTTON3 = wxNewId(); const long filenameFrame::ID_TEXTCTRL3 = wxNewId(); const long filenameFrame::ID_BUTTON4 = wxNewId(); const long filenameFrame::ID_TEXTCTRL4 = wxNewId(); const long filenameFrame::ID_PANEL1 = wxNewId(); //*) BEGIN_EVENT_TABLE(filenameFrame,wxFrame) //(*EventTable(filenameFrame) //*) END_EVENT_TABLE() filenameFrame::filenameFrame(wxWindow* parent,wxWindowID id) { //(*Initialize(filenameFrame) wxFlexGridSizer* FlexGridSizer1; Create(parent, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE, _T("wxID_ANY")); FlexGridSizer1 = new wxFlexGridSizer(0, 3, 0, 0); Panel1 = new wxPanel(this, ID_PANEL1, wxDefaultPosition, wxSize(560,106), wxTAB_TRAVERSAL, _T("ID_PANEL1")); Button1 = new wxButton(Panel1, ID_BUTTON1, _("Label"), wxPoint(8,24), wxSize(72,24), 0, wxDefaultValidator, _T("ID_BUTTON1")); TextCtrl1 = new wxTextCtrl(Panel1, ID_TEXTCTRL1, _("Text"), wxPoint(104,24), wxSize(456,22), 0, wxDefaultValidator, _T("ID_TEXTCTRL1")); Button2 = new wxButton(Panel1, ID_BUTTON2, _("Label"), wxPoint(8,48), wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON2")); TextCtrl2 = new wxTextCtrl(Panel1, ID_TEXTCTRL2, _("Text"), wxPoint(104,48), wxSize(456,22), 0, wxDefaultValidator, _T("ID_TEXTCTRL2")); Button3 = new wxButton(Panel1, ID_BUTTON3, _("Label"), wxPoint(8,72), wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON3")); TextCtrl3 = new wxTextCtrl(Panel1, ID_TEXTCTRL3, _("Text"), wxPoint(104,72), wxSize(456,22), 0, wxDefaultValidator, _T("ID_TEXTCTRL3")); Button4 = new wxButton(Panel1, ID_BUTTON4, _("Label"), wxPoint(8,96), wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON4")); TextCtrl4 = new wxTextCtrl(Panel1, ID_TEXTCTRL4, _("Text"), wxPoint(104,96), wxSize(456,22), 0, wxDefaultValidator, _T("ID_TEXTCTRL4")); FlexGridSizer1->Add(Panel1, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0); SetSizer(FlexGridSizer1); FlexGridSizer1->Fit(this); FlexGridSizer1->SetSizeHints(this); Connect(ID_BUTTON1,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&filenameFrame::OnButton1Click); //*) } filenameFrame::~filenameFrame() { //(*Destroy(filenameFrame) //*) } void filenameFrame::OnQuit(wxCommandEvent& event) { Close(); } void filenameFrame::OnAbout(wxCommandEvent& event) { wxString msg = wxbuildinfo(long_f); wxMessageBox(msg, _("Welcome to...")); } void filenameFrame::OnButton1Click(wxCommandEvent& event) { wxString CurrentDocPath; wxString Filename; wxArrayString Filenames; wxString GetDirectory; wxFileDialog* OpenDialog = new wxFileDialog( this,wxEmptyString,wxEmptyString,wxEmptyString,wxEmptyString,wxFD_MULTIPLE,wxDefaultPosition); if (OpenDialog->ShowModal() == wxID_OK) { CurrentDocPath = OpenDialog->GetPath(); Filename << OpenDialog->GetFilename(); GetDirectory << OpenDialog->GetDirectory(); //Filenames << OpenDialog->GetFilenames[0]; TextCtrl1->SetLabel(CurrentDocPath); TextCtrl2->SetLabel(Filename); TextCtrl3->SetLabel(GetDirectory); //TextCtrl4->SetLabel(Filenames); } OpenDialog->Destroy(); } 連続投稿規制 5回でなるんですねが・・・ こんな感じです。 配列・ポインタなど、マニュアルを目を通したのですが、完全に理解していません。 とりあえず色々さわりながら理解していこうかと考えています。 >>272 ありがとうです。 sampleフォルダの中のですね。 当初この中を探したのですが、wxSmithでのプロジェクトがなかったのであきらめていました。 dialogs.cppの790行目からそれらしい記載があったので参考にしてみます。 ありがとうでした。 >>278 長いときはcodepadとかideone使おうぜ・・ >>280 そのような場所があるとは知りませんでした。 次からそうします。 スレ汚しすみませんでした。 あと、/sample/dialogs/dialogs.cppの該当部分を、コピペしただけで複数ファイルの選択と、表示ができました。 意味を調べながら理解していきます。 ありがとうでした。 ubuntuでwxWidgetsの勉強中なのですが、samplesフォルダ内のサンプルソース(c++)をいくつか実行してみようと思い、付属のmakefile.cpp及びmakefile.unxをmakeコマンドで実行しようとするとコンパイルに失敗します。 端末より g++ -c foo.cpp `wx-config --cppflags` という形でコンパイルしてみてもエラーが出ます。 コンパイルに失敗したサンプルソースはlistbox.cppとlisttest.cppです。 なにかコンパイル時に指定しなければいけないファイルなどがあるのでしょうか? どなたか教えてください >>285 早速の返信ありがとうございます。 僕が変な勘違いをしてない限りwxはインストール済みだと思います。 >>1 のリンクにある wxWindowsで始めるC++ GUIプログラミング ttp://www.h3.dion.ne.jp/~k5_n/wxwin/ wxWidgets でクロスプラットフォーム GUIアプリを作ろう ttp://0xcc.net/pub/uu-2004-08/ に書かれている簡単なソースや、自分で作った幾つかのソースは動きますので。 >>286 返信ありがとうございます。 今すぐにエラーを貼るのは難しいので、数時間後にまた貼らせて頂きます。 listtestでは、makefile.unxと手打ちのコンパイルでは同じエラーが出ました。 makefile.gccはmakeコマンド自体が失敗していたようなので、環境の違いが原因だと思います。 以下、listtestのmakefile.unxに対するエラーの一部(エラーが167行もあるため省略します。)です。 In file included from listtest.cpp:48:0: listtest.h:29:34: エラー: ISO C++ では型の無い ‘wxDECLARE_NO_COPY_CLASS’ の宣言を禁止しています [-fpermissive] listtest.h:96:39: エラー: ISO C++ では型の無い ‘wxDECLARE_NO_COPY_CLASS’ の宣言を禁止しています [-fpermissive] listtest.h:189:36: エラー: ISO C++ では型の無い ‘wxDECLARE_NO_COPY_CLASS’ の宣言を禁止しています [-fpermissive] listtest.cpp:73:19: エラー: ‘wxIntPtr’ was not declared in this scope listtest.cpp:73:35: エラー: ‘wxIntPtr’ was not declared in this scope listtest.cpp:73:51: エラー: ‘wxIntPtr’ was not declared in this scope listtest.cpp:73:78: エラー: expression list treated as compound expression in initializer [-fpermissive] listtest.cpp:74:1: エラー: expected ‘,’ or ‘;’ before ‘{’ token listtest.cpp: コンストラクタ ‘MyFrame::MyFrame(const wxChar*)’ 内: listtest.cpp:194:50: エラー: オーバーロードされた ‘wxIcon(const char* const [37])’ の呼び出しは曖昧です listtest.cpp:194:50: 備考: 候補: /usr/include/wx-2.8/wx/generic/icon.h:35:5: 備考: wxIcon::wxIcon(const wxString&, wxBitmapType, int, int) <near match> /usr/include/wx-2.8/wx/generic/icon.h:35:5: 備考: 第 1 引数を ‘const char* const [37]’ から ‘const wxString&’ へ変換する方法が不明です /usr/include/wx-2.8/wx/generic/icon.h:31:5: 備考: wxIcon::wxIcon(char**, int, int) <near match> /usr/include/wx-2.8/wx/generic/icon.h:31:5: 備考: 第 1 引数を ‘const char* const [37]’ から ‘char**’ へ変換する方法が不明です /usr/include/wx-2.8/wx/generic/icon.h:30:5: 備考: wxIcon::wxIcon(const char**, int, int) <near match> サンプルはどこから持ってきたやつなの? インストールしてるwxWidgetsとサンプルのバージョンは同じ? そもそもインストールはどうやってしたの? パッケージから入れたの? それともソースからビルドしたの? とまあ、気になる点はいろいろですが、 とりあえずパッケージからwxWidgetsの開発環境をインストールして、 同じバージョンのサンプルをコンパイルするのは、 最初に書かれてる方法で普通にできます。 ソースからビルドすれば付属してるサンプルも一緒にコンパイルしてくれるはずです。 >>288 そのエラーメッセージは最初の方は含まれてる? wxのincludeが読み込めてないように思える。includeのエラーが最初にないかい? >>288 makefile.gccはMinGW用のMakefileじゃなかったっけ? make -f <対象のMakefile> でだいたい行けるはず そもそもLinuxでwxWidgetsやろうと思ったら @wxWidgetsのソースダウンロード A./configure <- 自分が欲しいオプション -> Bmake && make install Csamplesフォルダにあるソースコードを「make」コマンドでコンパイル で終わるはずなんだがなあ MinGWでwxWidgetsやろうとしたら面倒すぎて死んだ >>284 しかもよく見たらコマンド間違えてるな × g++ -c foo.cpp `wx-config --cppflags` ○ g++ -c foo.cpp `wx-config --libs` `wx-config --cxxflags` -o foo ライブラリにリンクしてないから実行ファイルができてない可能性が >>293 wxDev-C++ http://wxdsgn.sourceforge.net/ みたいなのもあるから暇なときに試してみたら? VC++でやるよりは楽かも…、しれません。 devC++は好きで昔から結構使ってるけど やっぱvc版インストしてvcの統合環境でやったほうがデバッグは楽だよ 使うまではdevCのパッケ導入が楽かも知れんけどw (最近はc#が色々楽すぎるんでwx自体全然使って無いけど・・・) VC++2008EnterpriseEditionでやったらめちゃくちゃ簡単だった レスの間が開いてすみません。みなさん色々とアドバイスありがとうございます。 >>289 よくわからないうちからいろいろなサイトをまわって色々試してたせいで若干記憶が曖昧で申し訳ないのですが、インストールは確かパッケージから入れたと思います。 サンプルのバージョンが2.9.2なのですが、コンパイルエラーを見る限り、2.8のライブラリを読んでいるみたいなので、安定版と最新版を両方入れてたみたいです。 改めて2.8.12を公式から落としてきて、そのサンプルでコンパイルしてみたらうまくいきましたので、ご指摘の通りサンプルとwxWidgetsのバージョンが違ったみたいです。ありがとうございました。 >>290 エラーメッセージは先頭の部分でした。ありがとうございました。 >>291 そうみたいですね。makefile.unxでうまくいきました。ありがとうございました。 >>295 今まで下記サイトを参考に http://0xcc.net/pub/uu-2004-08/ % g++ -c hello.cpp `wx-config --cppflags` % g++ -o hello hello.o `wx-config --libs` というようにコンパイルしてたんですけど良くなかったでしょうか。 >>300 > 今まで下記サイトを参考に > http://0xcc.net/pub/uu-2004-08/ > > % g++ -c hello.cpp `wx-config --cppflags` > % g++ -o hello hello.o `wx-config --libs` > > というようにコンパイルしてたんですけど良くなかったでしょうか。 それならOK、コマンド1行でやるか2行でやるかの違い ただ wx-config --cppflagsとwx-config --libsが何を表しているのか includeとかlibってどういうものなのかググって意味を考えたほうがいいよ LinuxでパッケージからwxWidgetsを入れた場合、setup.hはどこにあるのでしょうか? wxUSE_ACCESSIBILITYを有効にしようと思ってファイル検索したら大量にかかったので幾つか内容を変更してみても有効にならなかったので。 パッケージはバイナリしか入ってない、つまりオプションを切り替えるのは不可能では? ソースからビルドした方がいいと思われ >>303 ありがとう。ソースから入れなおしてみる。 >>302 Linuxでは通常はソースのパッケージが別に用意されてるよ。 ディストリによるけど後ろに-develみたいなのがついたパッケージ を入れるとソースが入る。 >>305 そのレスを見る前に入れなおしてしまった…教えてもらったのに申し訳ないです。 オプションの切り替えは結局setup.hをいじれば良いのでしょうか? >>306 ./configure -h で付けられるオプションが見れるからやってみ、その中にwxUSE_ACCESSIBILITYも入ってるだろう $ ./configure -h | grep accessibility --enable-accessibility enable accessibility support あったあった。何に使うのかわからんけどどうぞ。 wxAccessibleってマニュアルに For details on the semantics of functions and types, please refer to the Microsoft Active Accessibility 1.2 documentation. とか、 Availability: only available for the wxMSW port. とかあるけどlinuxで意味あるのか? >>310 下のサイト http://www14.ocn.ne.jp/ ~bkclass/doc_wxsamples.html を見て、サンプルのソース実行して勉強してたんですけど、accessっていうサンプルをコンパイルして実行をしようとすると、 "This sample has to be compiled with wxUSE_ACCESSIBILITY" というメッセージが出たので、 Windowsのみ本体のwxUSE_ACCESSIBILITYを1にする、とは書いてあったんですが、動いてないということはLinuxでも必要なのかと勝手に思い込んでこちらで聞いてみたんですが、やっぱりLinuxでは意味が無いんでしょうか… 度々すみません。 こちらでもマニュアルを確認したら、accessはWindowsのみと書いてありました。 今度からはマニュアルを良く読んで、わからなかったらこちらで聞きたいと思います。 自分自身でもあんまりにゆとりすぎて反省してます…。 みなさん大変ご手数をおかけしました。 ゆとりはHSPとかC#に行くだろうからこっちには来ないだろうな あとC++のGUIライブラリで有名で日本語ドキュメントがあるのはQtとかgtkだろうからさらにやる人は減る 最後にwxWidgetsは英語の知識とC++のオブジェクト指向がわかってないとできないから挫折する人も多いだろう とゆとりが言ってみる wxWidgets > Qt >>> こえられないかべ >>> GTK いわゆるビジュアルプログラミング言語は 生産性を改善するという触れ込みでありながら、事実上普及していない 何でかは知らんけど、同じ大きさのモニタに表示できる情報量で テキストに負けちゃうからっていう説を聞いたことがあるような |....,,__ |_::;; ~"'ヽ | //^''ヽ,,) | i⌒" | ∀`) < 誰もいない きのこるならいまのうち |⊂ | ノ _,,,......,,__ /_~ ,,...:::_::;; ~"'ヽ (,, '"ヾヽ i|i //^''ヽ,,) ^ :'⌒i i⌒" |( ´∀`) < きのこ のこーのこ げんきのこ ♪ |(ノ |つ | | ⊂ _ ノ ""U _,,,......,,__ /_~ ,,...:::_::;; ~"'ヽ (,, '"ヾヽ i|i //^''ヽ,,) ^ :'⌒i i⌒" (´∀` )| < エリンギ まいたけ ブナシメジ ♪ ⊂| (ノ | | | ヽ _ ⊃ .U"" | | ミ | ミ サッ! | ミ | 下記のページ http://docs.wxwidgets.org/2.8/wx_wxcommandevent.html でwxCommandEventを勉強していたのですが、 GetIntとGetSelectionの違いがよく分かりません。 GetIntは wxCommandEvent::GetInt int GetInt() Returns the integer identifier corresponding to a listbox, choice or radiobox selection (only if the event was a selection, not a deselection), or a boolean value representing the value of a checkbox. と書いてあり、GetSelectionは Returns item index for a listbox or choice selection event (not valid for a deselection). と書いてあるのですが、GetIntの選択されたリストボックスに対応付けられたInt型と言うのはGetSelectionで返される値と何か違うものなのでしょうか? ver 2.8.12 include/wx/event.h 538: int GetSelection() const { return m_commandInt; } 554: int GetInt() const { return m_commandInt; } リストボックスの中に、入れ子でリストボックスを作りたいと思いマニュアルを見て、wxListBoxのメンバ関数であるCreate関数を利用すれば2段階リストが構成できるということまではわかったのですが、Create関数の使い方がいまいちわかりません。 お手数ですが、どなたか使い方を教えていただきませんでしょうか。 wxRegExを使うため、wxregexライブラリをビルドし、成功しました。 しかし、いざプログラムで「wxRegEx」クラスを使おうとすると、「error C2065: 'wxRegEx' : 定義されていない識別子です」というエラーが出て、全く使えません。 思いつく方が居たらお願いします。 OS: Windows 7 wxWidgets: 2.9.1 コンパイラ: Visual C++ 2010 Express >>323 すいません、プリコンパイル済みヘッダを再作成してみたらうまくいきました。 スレ汚しすいません…… MinGW勢はいないのか どいつもこいつもマイクロソフトの犬だな mingwの時点でOSはWindowsなのに >どいつもこいつもマイクロソフトの犬だな とか書くのかよw wxWidgetsはWindows以外はおまけだろ。 Win32のラッパーとしての価値しかないと思っている。 migw もなぁ…64bit対応がなぁ… wxruby とか使いたくても使えないよ しかしひとはビルドしろという なんどでもビルドしろという びるどしろー MSWでwxListCtrlを使ってみたらDESELECTEDイベントが通知されないバグがあったので クリックやキボード操作が行われる度に選択状態を自分でチェックしてDESELECTEDイベントを送るようにしたら アイテムが1個の時に何故かマウスイベントが消し去られるバグまで出てきて もう八方塞がりです なにこれ馬鹿 明らかに開発陣はWindowsでテストしてないな 昔よりバグが悪化してるwww 最近wxTreeCtrl使ってるけどイベント通知できんわ 仕様がわかってないだけかも知れんが、バグだったら報告しなきゃだな 最新バージョンってバグ多いの? これから使うか悩んでるので教えてださい。 read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる