-
- 1
- 2010/04/09(金) 15:12:36
-
クロスプラットフォーム 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/
-
- 192
- 2011/03/10(木) 16:16:13.99
-
>>184
残念ながら使えませんでした。
-
- 193
- 2011/03/10(木) 16:24:05.27
-
>>192
wxUSE_UNICODE_UTF8 を定義してないと使えないよ
つttp://docs.wxwidgets.org/trunk/overview_string.html
-
- 194
- 2011/03/10(木) 22:06:44.16
-
みなさん色々とありがとうございます。
wxString sjis_data = wxString::FromUTF8(utf8_data.c_str());
のところで例外出して死ぬパターンと sjis_data が空になるパターン
それからちゃんと成功するパターンとがありました。
結局アクセスしていたサイトに広告が入っていて、
時間帯によって内容が変わるようなのですが、
どうも本体は UTF8 なのに広告部分だけ SJIS とか、
お粗末なサイトだったのが混乱した原因の一つでした。
-
- 195
- 2011/04/19(火) 00:00:08.70
-
3.0マダー(AA略)
-
- 196
- 2011/05/25(水) 00:30:08.01
-
サイザーage
-
- 197
- 2011/07/02(土) 23:25:00.75
-
wxWidgetsとWinPcapをあわせて使おうとしてハマってたのが解決したのでカキコ
- winpcapのpcap.hはwxWidgetsのヘッダファイルのあとにincludeする必要がある
- pcap.h内部でwinsock2.hを呼んでいる
- winsock2.hはwindows.hの前にincludeする必要がある
- wxWidgetsのヘッダは、物によっては内部でwindows.hを呼んでいる
というデッドロック
#include <winsock2.h>
#include <wx/msw/winundef.h>
#include <wx/wx.h>
#include <pcap.h>
こんな感じでwinsock2.h呼んだあとにwx/msw/winundef.hを呼んでやれば解決する
-
- 198
- 2011/07/16(土) 23:02:41.64
-
GUI の配置は XML で定義出来るのが一番良いなあ
-
- 199
- 2011/07/17(日) 01:18:11.68
-
それ何てXUL
-
- 200
- 2011/07/17(日) 22:48:55.64
-
wxだってXRCがあるじゃまいか。
-
- 201
- 2011/07/17(日) 23:28:11.01
-
誰も無いとは言ってないぞ
-
- 202
- 2011/07/17(日) 23:40:23.13
-
後出しww
-
- 203
- 2011/07/17(日) 23:43:54.73
-
ネタにマジレスww
-
- 204
- 2011/07/18(月) 05:50:22.06
-
なんのこっちゃ。
-
- 205
- 2011/07/28(木) 23:53:32.75
-
リストボックスのアイテムとして
ボタンやテキストボックスを表示できる?
-
- 206
- 2011/07/29(金) 04:32:53.10
-
>>205
wxListBoxそのままでは無理。
テキストボックスだけでいいならwxEditableListBox使った方が早い。
それ以外でちょっとだけコントロールを付け足したいだけなら、
wxListBox継承してるwxCheckListBoxのソースが参考になると思う。
画像管理ソフトみたいなサムネリストが欲しいならwxThumbnailCtrl
って非公式コントロールが楽(古いので2.9系では若干修正が必要)。
ttp://wxwidgets.blogspot.com/2011/02/markup-in-control-labels.html
で紹介されてるマークアップがwxListBoxにも適用されると見た目を
いじるだけならすごく楽になるんだろうけどねぇ。
-
- 207
- 2011/07/29(金) 07:16:29.38
-
>>206
ありがと
-
- 208
- 2011/08/11(木) 06:56:31.32
-
自作のTestApp(wxWidgets製)は起動時に渡されたパスを読み込んで処理を
するとして、既に起動しているTestAppがあれば、そのTestAppにパスを引き
渡して自分は死ぬ(多重起動しない)、という動作をしたいです。
Winの場合、EnumWindowsでトップレベルウィンドウでTestAppを探し、
WM_COPYDATAをSendMessageで投げMSWWindowProcで受ける、
という方法を採っていますが、この辺のニーズは常にあるだろうし、
もっと楽なやり方があるんじゃないかと思ってます。
こういう方法の方が楽、とかありましたら教えてください。
と
-
- 209
- 2011/08/11(木) 10:26:43.62
-
Mutex
-
- 211
- 2011/08/12(金) 00:44:19.62
-
・メモリマップファイル
・共有メモリ
・TCP/IP
・DDE/OLE/ActiveX
・ウィンドウメッセージ
好きなの使えばいいよ。普通は都合のいい方法を使って自分で作る。
wxならメッセージが一番楽だろう。
-
- 212
- 2011/08/12(金) 01:46:19.30
-
つうか、二重起動防止するAPIが普通にあるだろ。
-
- 213
- 2011/08/12(金) 12:39:56.45
-
>>210
元のをポップアップさせてあとのを閉じれば渡す必要なくね?
-
- 214
- 2011/08/12(金) 12:42:49.43
-
一番簡単なのが欲しいなら作業ファイルにデータ書き込め。
いっそ多重起動もdir lockでやっとけ。
-
- 215
- 2011/08/12(金) 17:59:34.09
-
wxMutex
ttp://docs.wxwidgets.org/2.9.2/classwx_mutex.html
-
- 216
- 2011/08/12(金) 18:09:42.10
-
wxSingleInstanceChecker
ttp://docs.wxwidgets.org/2.9.2/classwx_single_instance_checker.html
-
- 217
- 208
- 2011/08/12(金) 21:25:55.39
-
なんかいっぱい回答もらえた。ありがとうございます。
誤解を生んで申し訳ないんだけど、多重起動の禁止だけじゃなくて、
データを引き渡すってところまでがやりたいことなんです。
>>211
・メモリマップファイル
・共有メモリ
公式ドキュメントだけ読んで無いと思っていたんですが、
改めて調べたら5年前にパッチとして提出されてました。
「理由は言わないけど却下」と問答無用でRejectされてましたが、
普通に使えました(なんで却下されたんだろう……)
・TCP/IP
ちょっと大掛かりですが、確かにこれだとwxWidgetsのクラスのみで
クロスプラットフォームにいけますね。
・DDE/OLE/ActiveX
MSが意図しているアプリ間通信にはこれを使うべきなんですかね。
クロスプラットフォームからはかけ離れますが。
-
- 218
- 208
- 2011/08/12(金) 22:02:35.23
-
・ウィンドウメッセージ
はい。最初に書いたとおり、これは把握済です。
ただ、全トップレベルウィンドウを調べるwxWidgetsの関数って
無いですよね?(MS側のAPIはあるけど)
>>213
・起動済アプリを殺して自分が前面に出る
タスクバーに収納されていたり表に出ていたり、というアプリにしているので、
起動済のアプリのそれらの状態を把握するのにちょっと手間がかかりますね。
表示状態のコピーが不要なら確かに比較的手っ取り早いですが。
>>214
・作業ファイルにデータ書き込み&排他制御
大量のデータ通信をアプリ間でやるわけじゃないので、
手っ取り早く汎用性も高くwxWidgetsだけで完結しますね。
しかもクロスプラットフォームで安定している。なるほど。
皆さん色々な案の提示、どうもありがとうございました。
-
- 219
- 2011/09/02(金) 20:17:08.41
-
今更なんですが、C++でGUIを考えた場合、wxWidgetsとQTが候補に挙がりましたが
両者の比較を書いているサイトや記事などありましたら教えてください。
-
- 220
- 2011/09/02(金) 20:28:54.93
-
自分はQt側のことは知らないんだが、こんなサイトがある
wxWidgetsのススメ
http://up-cat.net/wxWidgets%A4%CE%A5%B9%A5%B9%A5%E1.html
-
- 221
- 2011/09/02(金) 23:04:35.91
-
いまは VC2010Express でも wxWidgets 使えて便利だわ
-
- 222
- 2011/09/02(金) 23:29:46.37
-
2.9.2落としてきてVC2008でビルドしてたけど、これgdgdすぎ
スタティックライブラリはできたけど、DLL版は全然ビルドできないわ、サンプルはデバッグ
ライブラリ用になってるからいちいち直さないといけない&直しても同じリソースがどうたら
でビルドできんし、Qtにいくわ
-
- 223
- 2011/09/03(土) 00:34:44.80
-
おいらはMinGWでMakefile作りながらGUI作ってるよ〜 (^q^)
-
- 224
- 2011/09/03(土) 01:05:50.35
-
ああ、早とちりすまん
結局添付されていたVC2008用のプロジェクトファイルがうんこで、VC6用の奴を変換して
ビルドしたらうまくいきましたわ
サンプルも同じでVC6用の奴を変換してビルドすると正常にビルドできました
悪口いってすまん、けどビルドできないVC2008用プロジェクトファイルって罠じゃないのか
-
- 225
- 2011/09/03(土) 10:36:44.01
-
普通makefileの方使わない?
-
- 226
- 2011/09/03(土) 11:45:57.63
-
nmakeしたらいきなりエラーで止まったし、ぐぐるとnmakeよりもVC++上でコンパイルする記事が多かった
ので、そうしてました。
お騒がせして申し訳ないついでに実は開発版の2.9.2をビルドしようとしてたみたいで、俺死にたい...
というより氏ね>俺
-
- 227
- 2011/09/03(土) 12:10:03.39
-
VC使わないといけない理由があるんなら仕方ないけど
gccの方がすんなり行くんじゃないかなぁ。
-
- 228
- 2011/09/03(土) 18:49:10.70
-
WinでgccというとMinGだよね?
たまたまVC入ってたからVCでやってたけど、MinGの方が捗るの?
-
- 229
- 2011/09/03(土) 20:59:18.77
-
wxWidgetsの開発はLinuxのgccで行われてるだろうからMinGW+gccだと環境づくりが楽かも?
VCのことは知らないけどMinGWだと普通に2.9.2コンパイルできたし
コーディングの効率を考えるとVCのオートコンプリート機能が使えたら楽かもしれんが、たぶん出来んだろうしな
-
- 230
- 2011/09/03(土) 21:56:21.73
-
winでわざわざMinGなんて使う必要ないよ。
VCでいい。
-
- 231
- 2011/09/04(日) 17:11:05.31
-
MinGWだとEXEサイズ小さくなるかなと試してみたが、makeしてもlibができないなぁと1時間も
悩んでた、.aで正しいのにwww
アホすぎる俺
しかしwxWidgetsいいね、コントロールは揃ってるし、ドッキングもできる、開発版にすればリボンもどきも
使えるし、wxFormBuilder使えばGUIで画面組み立てられるし、とりあえず満足できる環境だし
-
- 232
- 2011/09/04(日) 19:07:07.57
-
MinGWでビルドした奴とVC++2008でビルドした奴を比較してみたけど、
VC++2008でビルドしたサンプルauidemo.exeは6073KB、MinGWでは9761KB、stripかけて6645KBだった
どちらもデバッグなしのリリース版なんだけど、MinGWの方がでかくなるのね
Dumpbinで依存DLL調べてみたら、VC++2008の方は標準DLLのみでVCランタイム依存もなし
かたやMinGWはやり方が悪いのだろうけどlibgcc_s_dw2-1.dll、libstdc++-6.dllに依存してた
VC++2008の方が優秀な気がする
-
- 233
- 2011/09/04(日) 19:22:45.46
-
>>232
MSYS上から、
g++ -static -o test.exe test.cpp `wx-config --cxxflags` `wx-config --libs`
こうかな?
-staticオプションつければOKのはず。
以下、wxをビルドしたときの設定。MinGW-w64でもいけました。
./configure --with-opengl --enable-ipv6 --disable-shared --disable-monolithic --enable-unicode --enable-official_build --disable-threads --prefix=/mingw
-
- 234
- 2011/09/04(日) 19:51:43.28
-
ちなみにgccは-sオプションをつけると結構ファイルサイズは小さくなる
-
- 235
- 2011/09/04(日) 19:52:42.86
-
あ、既出だった
-
- 236
- 2011/09/04(日) 21:11:45.91
-
>>233-234
アホな俺にわざわざありがとう!
もう1回試してみます!
-
- 237
- 2011/09/04(日) 22:39:22.73
-
>>230
なるほど人によるなあ。
俺なら「わざわざVC使わんでも、MinGでいい」って発想になるわ。
-
- 238
- 2011/09/04(日) 23:30:54.03
-
>>233
ライブラリも作成し直し、サンプルもビルドし直しましたがサイズは6621KBでした
あとDLL依存はとれないのですね
-
- 239
- 2011/09/05(月) 00:04:36.25
-
>>237
同意。
UNIX文化的には、gccが「標準」でVCは「非標準」って認識だからなぁ。
自分で何か書く時とか、「自分はgccしか使わないけど、Win使いのためにVCもサポートしてやるか」ってレベル。
-
- 240
- 2011/09/05(月) 00:32:26.75
-
結局どっちの文化に属してるかによって
何がデフォで何がわざわざなのかが違うってことで。
で、wxそのものがUNIX文化なんだよな。
-
- 241
- 2011/09/05(月) 12:01:41.27
-
>> 238
サンプルはそのままビルドするとDLL依存になるとおもう。
cd samples
make "LDFLAGS = -static"
こんな感じでいかかでしょ。
-
- 242
- 2011/09/05(月) 19:03:01.60
-
>>241
いや、自分でmakeファイルに-static直書きしたけど駄目でした
まぁ、なんか勘違いしてるか頭がアホなんて理解できてないだけでしょう
とりあえずVCでも問題ないのでVCでやります、いろいろありがとうございました
-
- 243
- 2011/09/05(月) 19:16:34.99
-
>>242
がんがれ。
ただ、オープンソース系のライブラリを今後使っていくんなら
いずれにしてもgcc系の流儀とかも覚えておいた方がいいと思うよ。
このページを共有する
おすすめワード