【GUI】wxWidgets(旧wxWindows) その4【サイザー】
退かぬ!! 媚びぬ 省みぬ!!
>3 省みるからバグフィクスが出るんじゃまいか とマジレスしてみる そして>1乙
5 :
デフォルトの名無しさん :2008/06/29(日) 09:11:25
昔、ソース覗いたけど、今ってどうなってんだ
今でも、ソース覗いたよ
wxMSW2.8.7 のwxTE_RICH を指定したwxTextCtrlのインターフェースで、 縦スクロールバーが出るぐらい文字を入力して、適当な位置にキャレットを動かしてEnterを押すと、改行される毎にキャレットがある行がインターフェースの先頭に行ってしまうというバグがあったんだけど、2.8.8でも直ってない・・・ですね。。 wxRichTextCtrlもなんか変なままだし・・泣
どんどんでかくなってくよぅ もっと小さくして下さい
>>7 >>改行される毎にキャレットがある行がインターフェースの先頭に行ってしまうというバグ
sample の wxMSW widget を実行してみたけど、現象がよくわかりません。
普通に動いている気がするのですが…
10 :
デフォルトの名無しさん :2008/06/30(月) 23:31:47
>2.8.8でも直ってない 報告した?
11 :
7 :2008/07/01(火) 22:07:46
>>9 >>10 すいません自分の勘違いかも??
もうちょっと調べてみます。。
最近になって本格的にWxWidget触り始めたんだけど サイザーって理解するのに時間かかるな。特にStaticBoxSizer addで追加するオブジェクトを間違えると、即座にレイアウトが崩れて……
>>12 wxGlade あたりでレイアウトしてみて
確認してコーディングしてみるのも
いいかもしれませんよ。
14 :
7 :2008/07/07(月) 12:40:49
>>7 なんか、EVT_TEXTイベントのタイミングでwxTextCtrl::SetDefaultStyle()を使うとキャレットの位置がおかしくなる、ということのようです。
また、別件になるのですが、EVT_TEXTのタイミングで入力されたマルチバイト文字列をwxTextCtrl::SetStyle()を使ってスタイル変更しようとすると、なぜかfalseが返ってきてしまうのです・・。(ASCII文字なら成功する)
仕方がないので、テキストコントロールの中の文字列が変更される時のイベントで、EVT_TEXTよりあとに発生するイベントのタイミングでSetStyle()を使いたいのですが・・EVT_TEXTより後に発生するイベントって何かあるでしょうか??探しても見つかりませんでした。
Timer使うとまた色々不都合があるんですよね・・
15 :
7 :2008/07/07(月) 12:47:02
>>キャレットの位置がおかしくなる、ということのようです。 おかしくなることがある、ですね。縦スクロールバーが出ている時に改行すると自分のところではおかしくなりました。 Windows XPです。
バグレポート
17 :
7 :2008/07/07(月) 18:33:04
英語自信ないっす。。
>>14 使っているライブラリオプションは UNICODE でしょうか?
19 :
7 :2008/07/08(火) 00:24:01
20 :
18 :2008/07/08(火) 13:23:29
>>19 調べてみるけど、ちと時間くださいな。
あと、そういう時は再現できる簡単なソースを書いておくと
調べる人が多いかもしれません。
21 :
18 :2008/07/09(水) 15:51:13
>>19 調べてみました。
結論から言いますと Windows の問題で wxWidgets 側でなんとかできる
問題ではないですね。(同じようなコードを MFC で書いてもエラーになる)
Microsoft あたりに文句を言えば、いつかは直るかもしれません?
22 :
7 :2008/07/09(水) 23:24:43
>>20 >>21 (多分前スレからお世話になりまくっていると思うのですが・・)本当に何度もご親切にありがとうございます。
もしかしてwxWidgetsの開発に関わっている方だったり・・?違うか。
Windows自体の問題とのことなのですが、すいません、
>>14 では質問していることが2つあったのですが、どちらがWindows自体の問題だったのでしょうか?
23 :
7 :2008/07/09(水) 23:45:39
あとすいません、また追加で質問で恐縮なのですが・・IMEの変換状態が変化したときにricheditが送出するEN_IMECHANGEというイベントマスクをwxWidgets側で捕まえたいのですが、 Win32APIが送るイベントマスクをwxWidgets側で拾いたい時はどうすればよいのでしょうか?? IMEの変換状態が変化した時のイベントのようなものは既存のwxWidgetsにはなさそうなので、自分で書き足さなければいけないと思うのですが・・。
24 :
18 :2008/07/10(木) 10:49:04
>>22 残念ながら違います。
こういったライブラリで遊ぶのが好きなだけです:-)
で、
>>14 の質問の
>また、別件になるのですが、EVT_TEXTのタイミングで入力された
>マルチバイト文字列をwxTextCtrl::SetStyle()を使ってスタイル変更
>しようとすると、なぜかfalseが返ってきてしまうのです
この件は Windows の仕様のようです。(MFC でも同じことが起きます)
EVT_TEXT(Windows の EN_CHANGE)で、SetStyle(MFC の
CRichEditCtrl::SetSelectionCharFormat 等)でも同じエラーになります。
ですので、現状では Windows の仕様なのでいかんともしがたいかと。
EVT_TEXT(EN_CHANGE)の後に飛んでくるメッセージは特にないようです。
25 :
18 :2008/07/10(木) 11:53:44
>>23 独自のメッセージを持ってくる方法があった気がしたけど
きれいさっぱり忘れましたorz
一番手っ取り早い方法は wxTextCtrl::MSWCommand の
継承メンバを作っちゃう方法かな?
ていうか 7 さんはそこまで Windows べったりのことをするのなら wxWidgets である必要がない気が...
>>27 >しかし、一回手を出してしまった以上他のに乗り換えるのはいやだなと・・
世の中見切りの付け所ですよ。
今の時代の見切りは、Winモンリー開発を見切るんであって、 クロスのWxWidgetsに手を出すのは正しい。 他に乗り換える場合でもクロスGUI。
30 :
18 :2008/07/11(金) 10:53:29
>>27 何か理由(納期とか…)が無い限り、楽しみながらやるのがいいかと。
>どうも wxTextCtrl::SetStyle() とか GetStyle() を使うと、
>該当箇所の文字列が一瞬青く反転してしまうようです・・
>(一瞬選択状態になっている?)
wxTextCtrl::SetStyle() 内部では、
1 指定範囲を選択
2 EM_SETCHARFORMAT を SCF_SELECTION で SendMessage
3 指定範囲を戻す
という動作をしているからです。
EM_HIDESELECTION を SendMessage してやればいいだけなので
がんばって本家にレポートしてみるとか。
31 :
18 :2008/07/11(金) 10:59:25
>>27 順番が逆になってしまった。
>
http://docs.wxwidgets.org/stable/wx_eventhandlingoverview.html#customevents >この辺りよんでるんですが・・なかなか書いてあることが理解できません。難しいですね・・
wxEvent 関連を使った方法は私もよくわかりません:-p
そっちではなくて、wxTextCtrl を継承したクラスを作って、MSWCommand を
継承しちゃえばいいかな?ってことです。
class myTextCtrl : public wxTextCtrl
{
public:
virtual bool MSWCommand(WXUINT param, WXWORD id) {
if ( !wxTextCtrl::MSWCommand( param, id ) ) {
switch (param) {
case EN_IMECHANGE:
〜
break;
default:
return false;
}
}
return true;
}
こんな感じ?
やってみたことないからあっているかどうかの自信はないけど。
wxMSW以外でもコンパイル通るのかそれ?
>>32 そりゃ当然 #ifdef とかで囲むんだろう
34 :
18 :2008/07/12(土) 18:50:28
>>32 EN_IMECHANGE をキャッチしたいとのことだったので
Windows 専用で大丈夫かと思いました。
X や MacOS だと IME 系の処理ってどうやるんでしょうね。
35 :
27 :2008/07/14(月) 02:20:06
毎度ありがとうございます。。。 >>何か理由(納期とか…)が無い限り、楽しみながらやるのがいいかと 特に納期などはないんですが、なんとしても作りたいものがあってやってるんですがはかどらなくて悶絶してます泣 IMEに入力された文字列のフォントを毎回設定するために渋々win32apiをいじっているのですが、ウィンドウのハンドルを取得するFindWindowW()関数でウィンドウのハンドルがうまく取得できたなくてはまっています。。 (このハンドルがないとIMEにアクセスできないようなのです。) FindWindowW()の第一引数に該当ウィンドウを生成する時に使っているクラスを指定しなければいけないみたいなんですが、 wxTextCtrlとかではだめで、もっと深い階層にあるwin32apiウィンドウ生成クラス?を指定しなければいけないみたいなんですが、それが何なのか分からなくて止まってます。。 >> 2 EM_SETCHARFORMAT を SCF_SELECTION で SendMessage >> がんばって本家にレポートしてみるとか。 これはライブラリがそういう仕様になっているということなんですよね。 これを直すのもまた大変そうですし、直してもちゃんと本家でパッチあててもらって公開してもらわないと使えないんですよね。。 なんかもう作りたいプログラムの完成が果てしなく遠いような気がしてきました。 そもそも楽するためにwxWidgetsっていうフレームワークを使っているのにいつのまにかwin32apiをいじる羽目になっているし・・ なんのためにラッパーを使っているのか分からなくなってきました。 悲鳴に近い書き込みすいません。 Visual C++ に呼ばれている気がします。。。
> なんのためにラッパーを使っているのか分からなくなってきました。 そりゃ根本的に使うものが間違ってるからだろ。 WindowsべったりでWindowsでできることは全部できなきゃダメとか思いながら使 うもんじゃねーよ。
こういうクロスプラットホームので日本語入力周りが細かく操作出来ると思うのが甘いんじゃないかと思います ... 開発者の大多数が英語環境なわけでね。 とにかくあなたのやりたい用途には日本語周りのサポートの厚いフレームワークをつかわないとだめそう。べつに急に Win 32 API までおりる必要はないわけで。 Windows なら .Net とかつかったほうがいいんじゃない? Delphi とかも昔はよかったのかも。
Lazarusもなんか微妙なんだよねぇ。 BorlandがKylixを見捨ててなければ、クロスプラットフォームアプリの 大本命になれたかもしれないのに。
>Windows なら .Net そ・れ・は・ない
40 :
18 :2008/07/14(月) 10:56:40
>>35 wxWidgets の話題から外れるので、軽くだけ。
何をやりたいかよくわからなくて想像だけど、
そういうことをやりたいときは WM_IME_COMPOSITION をとらえて
ImmGetContext から HIMC を取得し、Imm* 系の API を使うんじゃ
ないかな?
wxTextCtrl のようなコントロールを駆使してやるのは難しいと思いますよ。
>>39 37 ですが、見当外れだったらすいません、日曜 Cocoa 屋さんなもので ...
42 :
35 :2008/07/14(月) 13:16:44
レスありがとうございます。 >wxWidgets の話題から外れるので、軽くだけ。 すいません、そうですよね。。ありがとうございます。 >wxTextCtrl のようなコントロールを駆使してやるのは難しいと思いますよ。 やはり・・ >> Windows なら .Net > そ・れ・は・ない いまさらVisual C++ とかはあんま賢くない選択肢なんでしょうか。 > こういうクロスプラットホームので日本語入力周りが細かく操作出来ると思うのが甘いんじゃないかと思います ... 開発者の大多数が英語環境なわけでね。 それに気づくのが遅すぎました泣 QTなんかはどうなんですかね・・日本での実績もあるのでwxWidgetsよりはマルチバイト文字周りも大丈夫そうですが。 結局開発環境で何を採用すればいいのかという導入部での問題にまたぶつかってしまいました。 最初は、これからはマルチプラットフォーム対応じゃないとと思ってwxWidgetsを選んでみたんですが、結局まだほとんどの日本人はWindowsを使っているわけで、まだしばらくはWindowsをほとんどの人が使っていくんじゃないかとも最近思うので、 素直にVisual C++ から入ればよかったのかなとか思い始めてるんですが・・ こういう話題NGだったらスルーしてくださひ。
>素直にVisual C++ から入ればよかったのかなとか思い始めてるんですが・・ Windowsソフトを作るにしてもVC++はやめといた方が良い。 M$社内でも使われなかった該吉設計MFCを使うか、 ドトネトとC++を混ぜるというそれだけでウンザリ、 といった環境しかない。
>>42 >最初は、これからはマルチプラットフォーム対応じゃないとと思ってwxWidgetsを選んでみたんですが、結局まだほとんどの日本人はWindowsを使っているわけで、まだしばらくはWindowsをほとんどの人が使っていくんじゃないかとも最近思うので、
会社の仕事でソフトを書いてるなら他の人が何を使ってるかは重要だけど、
自分ひとりで使うなら何で組んだって勝手だよね。
wxWidgets がすきならそれをつかえばいいし、プラットフォームべったりでも好きなフレームワークがあればそれを使えばいいんだと思うけども、
どうも 35 さんは日本語入力周りをいじりたいというクロスプラットホームには不向きな題材をやりたいようだから...
やっぱやりたいことに即した言語/フレームワークを使うべきだとおもいます。
でもVisual C++ はよくないと思います。C++/CLI は変態で面白い言語だとは思うけど。
>思ってwxWidgetsを選んでみたんですが この苦難を乗り越えてこそ、 アプリとかのすぐれたデザインパターンを発見できるだろうし、 ソフトウェア資産になると思うんだが。 それが”WxWidgetsを組み込んだ場合の優良なデザインパターン”となるか、 ”質問者の作成するはソフトウェアの要素からWxWidgetsが外される”ことと落ち着くか、 それは自分で決めることだけど。前者も無理じゃないと思うぞ。
46 :
35 :2008/07/14(月) 14:24:32
どもです。
Visual C++ 人気ないですね。。MFCとか.NETが人気ないってことなんでしょうか。
ATL/WTL ってのがVisual C++ で使えるみたいなんですがこれはけっこう評価が良いような??
あとはVisual C# とかですかね。。
>>45 まだ自分はデザインパターンとか見つけられるレベルではない気がします。。
別にVC++で問題ないよ。SDKでガシガシ書け。 どうせどんなGUIライブラリ使っても、細かいところはAPI直に触らなきゃならないんだから。
VC++/SDKなら問題無いかも。 それならその中にWxWidgets使っても無問題。 MFCはやめとけ。 1回生成されたダイアログを使ったソースを見てみれば、 ”これ何語?”って感じであきらめることになるだろう。 ドトネトもやめとけ。作るものに限界があるし、そうだと、作っててつまんない。
>まだ自分はデザインパターンとか見つけられるレベルではない どっちにせよ、アプリの構造はつねに意識してないとね。 どういう構造が良いのかわかってないと、プログラム修正して良くなったのか悪くなったのかわからんだろ。
自分か身内だけで使うようなちょっとしたものだと、 C#に.NET3.0↑で書くのが楽すぎる Windows専用になっちゃうんだけどさ ってスレ違いだな
>>46 ,35
以前に少し使った程度だけど、WTLは結構いい感じだったよ。あとwindowsで
コード組むなら、やっぱりVC++がいいと思う。単純にwindowsとの相性がいいのと
windowsで実行する場合、実行速度が速い。(独特な部分もあるので、注意が必要だけど)
将来移植するかもしれないけど、当分windowsメインなら自分でラッパークラスを作って
移植の時楽になるようにしておくのがいいんじゃないかな。
MFCはやっつけで作るには楽だけど、腰を据えて作る場合はなんか
いらいらすることが多くて、自分はあんまり使いやすく感じなかった。
構造覚えるのも労力かかるし、わざわざ使うことないんじゃないかな。
C#(というか.NET)は、細かいところにこだわりを持つ性分なら薦めない。
使いやすいけど、細かいことにこだわると、結局API叩くことになるから。
あとやっぱり、もっさりした感じになりやすいね。
ついでに書くと、Qtはフリー版で作ったものは、ライセンスがGPLになるのと
バージョンがあがった時に互換性がなくなった、変なプリプロセッサを通して
コンパイルするなどが嫌で、使うのやめたことがある。作り易そうではあるんだけどね。
そういえば、ここはwxのスレだった。 wxは以前に調べた限り、C++でクロスプラットフォームの開発をする場合は 一番妥当なライブラリだと思うよ。 日本語の入力が使えて、継続的に開発されていて、GUIの見た目がOSと 同じようになる。ある程度の実績があり、ライセンス的にもあまり 縛りが強くないってなると、wxしかなかった。 IME周りや日本語フォントなど細かいことをやるには問題があるかもしれないけど。 自分はクロス開発する必要があるものはwxを使って、api叩く必要がある場合は ラッパークラスを作るようにしている。 あと日本語周りを細かく操作したいなら、どうせAPIを使うことになるから、 それが楽になるライブラリを探すよりは、そのあたりのAPIの使い方を 調べたほうが近道だし、応用が利くと思うよ。
そうだね
55 :
デフォルトの名無しさん :2008/07/19(土) 21:07:43
57 :
デフォルトの名無しさん :2008/07/25(金) 16:02:55
ほしゅ
58 :
35 :2008/08/01(金) 15:58:28
ご無沙汰です。挫折してしばらく何もしていなかったのですがまた最近やり始めています・・。
結局VC++はIDEの使い方を覚えるのが面倒で、またwxWidgetsに戻ってきてしまいました。
>どうも wxTextCtrl::SetStyle() とか GetStyle() を使うと、
>該当箇所の文字列が一瞬青く反転してしまうようです・・
この問題は、
(void) ::SendMessage(GetHwnd(), EM_HIDESELECTION, 1, 0) ;
wxTextCtrl::GetStyle(position, style);
(void) ::SendMessage(GetHwnd(), EM_HIDESELECTION, 0, 0) ;
こんな感じでGetStyle()をオーバーライドしたら解決しました。win32APIを直書きすればこれぐらいの問題ならば解決できたようです。
今まだ悩んでいるのがEN_IMECHANGEやWM_IME_COMPOSITION を捕捉するところです。
>>31 さんに提示して頂いたように
class myTextCtrl : public wxTextCtrl
{
public:
virtual bool MSWCommand(WXUINT param, WXWORD id) {
if ( !wxTextCtrl::MSWCommand( param, id ) ) {
switch (param) {
case EN_IMECHANGE:
〜
break;
default:
return false;
}
}
return true;
}
みたいな感じで色々試してみているのですが、このやり方だとどうもうまく捕捉できません。 これらのイベントの捕捉のしかたが分かるかたいらっしゃいましたらご教授頂けると幸いです・・m(_ _)m
59 :
35 :2008/08/01(金) 16:00:52
>>47 >>48 >> 49 >> 50 >> 51
ありがとうございますm(_ _)m お礼がめちゃくちゃ遅くなってすいません。
結局VC++とかWTLじゃなくてwxWidgetsをまだ使ってます。。
60 :
18 :2008/08/02(土) 16:36:53
>>58 あれ?駄目なのかな。
ちとしばらく忙しくなるので、気長に待ってみて…
61 :
デフォルトの名無しさん :2008/08/02(土) 21:37:47
>>58 MSWCommand の先頭で、処理してもだめなのか?
wxStyledTextCtrlの場合でやったときは、
WXLRESULT wxStyledTextCtrl::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
{
WXLRESULT ret;
switch(nMsg)
{
case WM_IME_・・・・
//じぶんでつくった処理
break;
default:
ret = wxControl::MSWWindowProc(nMsg,wParam,lParam);
break;
}
return(ret);
}
なかんじでできたよ
62 :
35 :2008/08/04(月) 13:01:51
レスありがとうございます。 MSWWindowProc()の方を試してみたら、VM_IME_COMPOSITIONを捕捉することが出来ました!ありがとうございましたm(_ _)m EN_IMECHANGE、VM_IME_CHAR、VM_CHAR はなぜか捕捉出来ず。 いまやりたいことが、「VM_IME_COMPOSITIONのタイミングで、IMEで編集中の文字列のフォントを変更する」ということなのですが、 VM_IME_COMPOSITIONを捕捉できてなんとかなったと思ったのですが、VM_IME_COMPOSITIONのタイミングでwin32APIの ImmSetCompositionFont(hIMC, lf) を使っても、フォントが変更されませんでした・・。 1が返ってきているので関数自体は成功していると思うのですが・・。 例えば、テキストインターフェース上で、太文字で強調表示させた文字列の直後にキャレットを置き、そこでIMEをONにし、キーストロークによって文字を打ち込むと、 直前の強調表示された文字列のフォント(太文字)がIMEのフォントにも継承されてしまうようで、 それをどうにかしたくてVM_IME_COMPOSITIONのタイミングでIMEの編集中の文字列のフォントを強制的にデフォルトのものに変えてしまおうという考えだったのですが・・ アドバイス頂けると幸いです。
63 :
35 :2008/08/04(月) 13:56:38
> wxStyledTextCtrlの場合でやったときは、 wxStyledTextCtrlって、IMEをONにしたときの入力が正常に動かなくなかったですか? 自分の環境では変換待ちの文字列が常に一番上の行に出てしまって、それが嫌でwxStyledTextCtrlを使うのはやめたという経緯がありました。
「自分の環境」とは?
65 :
デフォルトの名無しさん :2008/08/05(火) 00:14:39
>>63 ああ、IMEの処理は実装されていないから、そうなる。
そもそも、IME関係はOS依存?FEP依存?のようで、wxWidgets に対応するものはない。
Scintilla の場合は、Plat??.cpp でマルチプラットフォームを実現してるのだが、
(wxStyledTextCtrlでは、PlatWX.cpp がそれに該当する)
マルチプラットフォーム化する必要のために、IMEの処理を移植できなかったのかと思う。
66 :
65 :2008/08/05(火) 00:19:11
あと、EN_IMECHANGE、VM_IME_CHAR、VM_CHAR の処理はwxWidgets のソースを見たほうがはやいな。 wxWidgets のソースは簡単だから、そっちをあたることをお勧めする。
wxJoystickを使うと、レジストリのHKLM\SYSTEM\.. というのを読みに行って失敗する・・・。 HKLM\ってうちのマシンには見当たらない。またwxJoystickEventがEVT_JOYSTICK_EVENTSで拾えない。 GetNumberJoysticksはなんか値が返ってきているから何かしらJoystickは見えているはずなんだけど。 コンパネのゲームコントローラはちゃんと認識しているのでHWの故障でもない。 さぁどうしよう。 飛ばしてwxMediaで遊ぶか。
HKLMってHKEY_LOCAL_MACHINEのことだけど
何でだろう、EVT_PAINTを登録するとCPUがブン回る・・・ samplesのプログラムはそうならないけど、何が違うのか分からない。 頭悪いな俺。
wxPaintDC使ってないだろ
71 :
69 :2008/08/21(木) 10:01:31
wxPaintDC dc( this ); とするべきなところを wxPaintDC dc; と書いていました・・・。 直したら、ちゃんと動きました。 スレ汚ししてすみませんでした。
72 :
デフォルトの名無しさん :2008/08/23(土) 16:37:06
質問です wxGridはデフォだとマルチセレクト且つダブクリで編集モードになりますが、 シングルセレクトにしてワンクリで編集モードに移行するようにできますか? IDEとかRADのプロパティ表示みたいなことをやりたいんです。 DialogBlocksが多分wxWidgetsで組まれてると思うのであれがそのまま使えればいいんですけど そのまんまのクラスって無いですよね?
73 :
72 :2008/08/25(月) 22:14:35
探してみたらwxPropertyGridっていうまんまのコンポーネントが見つかりました。 wxCodeに載ってなくても探せば使えるコンポーネントって結構ありますね
74 :
デフォルトの名無しさん :2008/08/28(木) 17:27:01
で、クロス開発する場合、IDEはどれが一番良いの? wxDev-C++を使ってるけどバージョンうpされないorz
とりあえず、wx-Dev C++ と Code::Blocks は、どちらが良い?
GUI作成できるのは、 ・wx-Dev C++ ・Code::Blocks ・wxGlade だけでつか?
78 :
74 :2008/08/29(金) 10:07:05
>>77 え”、更新ですか!wx-Devは大好きなので嬉しい。
そのページ凄すぎ。
結構1年近くググルでwx系を検索してたんですが3つ4つしか把握できなかったのに、
そのページで全部そろうじゃん。
こんなにいっぱいあるとは。。。
商用のは一旦除いて(商用でもC++ Builder並に良いものなら買うけど、決定打が無さそうなふいんき)、
使ってないやつで良いのがあるかもしれないのでまた調査。
79 :
61 :2008/08/29(金) 21:03:27
dialogblocksが挙がってないのは有料だから?
すでに72で挙がってるからですな・・・スマソ。
82 :
76 :2008/09/01(月) 09:19:29
>>79 VisualWxってえらい変わりましたね。
以前はコンパイラ起動できなかったような。
どれが良いか投票とか、 使える・使えないレビュー、 きぼんにゅ。
どのIDEが好き?
85 :
デフォルトの名無しさん :2008/09/03(水) 00:19:27
まだ、これってIDEやRADがないんだよねー。残念ながら。
俺は今、MinGWのCodeBlocksを入れようと思ってんだけど、
wxmsw28??_core.lib(libwxmsw28??_core.a)や、
wxbase28??.lib(libwxbase28??.a)がないって怒られる
んだけど、下のサイトのようにwxWidgetsをビルドしても
ライブラリが生成されないんだけど。なんで?
http://python.matrix.jp/apps/code_blocks.html もっと簡単なクロスなIDEはないもんかね?
趣味プログラミングでしかないけれど、wxFormBuilder 3はフォームデザインのみとはいえ使い勝手いいよ。 自分で書くコードと、wxFormBuilderが生成するコードが、完全に分離されるところが好き。 Makefileは手書き、ソースコードエディタはVim。開発は主にLeopardで行い、一回のmakeでWin/Mac用バイナリを生成……という感じ。 IDEって、突然バージョンアップが止まったり、なんだか変なものを導入したのか 不安定&低速になったりとあんまり信用できない感じ。なんていうか、Delphiで懲りた。
>>85 そでだけだとよくわからんけど、
debugのバイナリ作ってないのに
デバッグビルドしようとして同じようなことになったことはあるな
Code::Blocksよりdialogblocksのほうが使い易いと思う
タダ版だとカスタムクラスが1つしか登録できないとか
RADツールで使えないクラスがあったりするけど
その辺は勉強もかねてエディタで乗り越えようとすれば問題なし
wxWidgetsで非矩形ウィンドウや半透明ウィンドウは扱えるのでしょうか。 また扱える場合は関連するメソッドを教えていただけると有り難いです。
>>88 リージョンは使えるよ。
半透明ウィンドウは、以前そんな話があったみたいだけど、
Windows以外のプラットフォームで出来ないのもあるみたい
なので、実装されなかったみたい。
90 :
88 :2008/09/11(木) 22:38:14
>>89 なるほど。どうもありがとうございます。
対応プラットフォームが多いと実装もやっぱり大変なのでしょうねぇ。
IDEランキング調査スタート!
,. -‐ ' ´  ̄ `` ' ‐- 、 ,. -─ ‐- 、 / ``' 、 ∠-‐' "´  ̄ ` `'‐- 、 `'‐、 /´ ヽ、 `'‐ 、__ , ‐' (⌒'‐- 、 \ -='´ ='イ ヽ. ヽ / ヽ、=_,‐''´ 、_,ノ ヽ . i 、 ヽ、_, /,. _-,=‐、ゝ' ', .{ ゞ_=、<. ヽ-' ,、r‐;、彡‐==/ニ.ヽ }-‐- 、 / \ ', 、y=;'、 ´ゞ=''_,.´ / F、ヽ ', ./ \ / \ヽ`ゞッ /  ̄ { |´ノ / ∠ \ ,/ `}  ̄〈,. -‐、 ! ヽ/ / `、 `'‐-、ニ、_,./ ! ` '、 ヽ. / `'‐- ..,,j-‐'"´ ヽ. ' ´ ̄` ヽ ∨ . \ '" ,. } ∧ ヽ. ____, ,-‐'" / ,./ ‐ヘ )_,,.ハ <_,. -' \___,,,.. ..,, ´ ト、 | | /´ ``ヽ. _,. -‐'´j ヽ! ィ /´ ト、 /´| i. ヽ! /// _,,,.. ....., 、 |i | | |\ __ ./ / {,. -‐´ __ ` !.} ,-ソ ! ! / Y´ /くン-─/´ _,,.. - / | ,. へ'´ 、 リ ! />-<ヽ. ∠ノ  ̄``'´ / i ‐ 、_ 、_ ヾ ノ !' ´ `/ / !
_ _, - ' ´ ̄ ̄  ̄ ヽー -、_ / `ー 、_ / _ `ヽ / /´ `ヽ, `i / l i ヽ i ヽ、 (_).ノ ヽ | l l | /l /l | ハ /l  ̄ ヽ ', l ヽ. ハ |ヽ| ヽ 、 l ヽ、 l ヽ ', ヽヽ、 _-ヽヽヽヽ、 >_ニ==`ー-、j i 冫、 _v ーテ、 - 'テtァ- ', | / ヽ .,ヽ゚ノ ヽヽ=゚'´ ヽ ! i ! / / ̄ i / ', ー / l ! ヽ ー - - ! / \ \ _ ヽ _ / `ー --'-'- `ー -‐ i ´ `ー'- -'-'-'-'‐'´ | | | ヽ、 _____ノ `ー - -、_ ヘ _, - ' `ー、 / \ , - ‐ ' ´ /  ̄ ̄ ヽ l ヽ 、 _ , - ‐ ' ´ / i y / | / / l / / / / ( ` y ´ / / /
Libファイルを作成後に sampleをコンパイルしてみようと思ったんですが 未解決の外部シンボル だらけになってしまいます。 どうもまったくlibファイルを認識していないのか何なのか。 sampleはそのままの状態でコンパイルしてはいけないんでしょうか?
あのさ、こっちだってエスパーじゃないんだから、 自分がどういう環境で何をやってるか相手に判ってもらおうっていう気はないわけ?
原因を追求する気があるならあんな書き込みはしないだろ。
wxwidgetsのストリング関係のクラスは 日本語使える(漢字)?
>>97 使える。Unicode モードと、環境依存エンコーディング決めうちモード(なぜかANSIモードとよばれる)があるよ。
後者は基本的にユニバイト環境しか考えていない。 たとえばファイルのパス操作など、セパレータが \ かつ文字コードがCP932な 変態環境では問題が生じうる。
94です すいません。8時間ぶっ通しで1つの進展も無く悩みすぎて色々おかしくなってました。 2日寝てようやく冷静になりました。 wxMSWのセットアップを使用して、WindowsXpにxwWidgetsをインストール後 VisualC++2005Expressに、\build\msw\ws.dswを読み込ませ各種libファイルをビルドしました。 この時点でエラーはありません。 その後、サンプルをビルドしてみようと \samplesフォルダにある、samples.dswを読みこんでそのままビルドしてみましたが、 すべてのlib内の関数が「未解決の外部シンボル」と出て認識してもらえませんでした。 試しに、他の\samplesフォルダ内の 各サンプルの.dspファイルを直にVC++2005Expressに読み込んで、同じ様にビルドしてみましたが すべて同じ症状でした。 生成したlibファイルの存在する\lib\vc_libにはリンク設定はしてるようですし、 インクルードディレクトリの設定にも問題があるようには思えませんでした。 sample内の.dspファイルはそのままの状態でコンパイルしてはいけないんでしょうか?
101 :
デフォルトの名無しさん :2008/09/15(月) 23:45:58
Libのモード(リリースビルド、デバッグビルドとか)が、 sample のがあってます? それと、wxwidgetsのversionは、2.8.8だよね? とりあえず、VC2003とVC2008の場合は、動作しますよ
94です。
助けありがとうございます。
wxwidgetsのversionは、2.8.8です。
Libのモード(リリースビルド、デバッグビルドとか)
のパスや名称は合っているようです。
http://forums.codeblocks.org/index.php?action=printpage;topic=7140.0 にあった事例のようです。
I now compiled wxwidgets with VS2005 and
I am now able to build the samples,
but with new projects I still have problems.
It seems that the wizard does something wrong
- the linker wants to have wxmsw28d.lib
but I cannot find it on my system.
I have a lot of wxmsw28d_xxxxx libs...
という話しで
解決方法は
wxmsw28d.lib is for Monolithic debug builds;
you seem to have a Multilib build.
MultiLib is the opposite of Monolithic.
In the wizard un-check Monolithic or you need to build wxWidgets
as a Monolithic build.
とのことです。
つまり、wxmsw28d.libが生成されなければならないのに、
複数に分かれたwxmsw28d_xxx.libが生成されてしまうという問題です。
1つのwxmsw28d.libにまとめられれば、この問題は解決しますが
話が理解できません。
チェックを外すべきMonolithicとは何なのでしょうか?
どうすれば1つにまとまるんでしょうか?
94 氏とは別件だけど、2.8.8をMinGWでコンパイルで、ライブラリ(〜.a)を 作成したまでは良いんだけど、リンクエラーが出ます。 ヘッダが無いとかが、原因ですかね? 〜\wxWidgets\lib\libwxmsw28d_core.a(corelib_imagjpeg.o):..\src\common\imagjpeg.cpp|238|undefined reference to `jpeg_std_error'
>>102 ビルドが出来るってことは、WindowsSDKは大丈夫なんだね。
スタートメニューから、Visual Studio Tools でコマンドプロンプトを開ける?
開いたら、cd wxWidgetsのディレクトリ\build\msw して、
nmake /E MONOLITHIC=1 makefile.vc
してみて。
>>103 undefined referenceが出る場合は、そのシンボルの実態が無いって事だから、とりあえずリンクするライブラリ不足を疑うと良いよ。
jpeg_std_errorでググると、libjpegの中の関数だってわかるから、g++のコンパイルオプション(というかリンクオプション)に -ljpeg を
付けて再チャレンジして見て。
>>103 があと数回は同じ質問を繰り返す様が見て取れるようだ。
>>104 94です。
たびたび助かります。
104を試したところ
しばらくコンパイルが通った後、
..\..\src\msw\utils.cpp(173) : error C2143: 構文エラー : ')' が '__stdcall' の前
にありません。
..\..\src\msw\utils.cpp(173) : error C2059: 構文エラー : ')'
..\..\src\msw\utils.cpp(175) : error C2143: 構文エラー : ';' が '*' の前にありま
せん。
以下エラー略〜〜な状況です。
この173行目は
typedef int (PASCAL *WSAStartup_t)(WORD, WSADATA *);
こんな内容です。PASCALかWORDかWSADATAのどれかが、定義されていないと思われるんですが、
VCのオプションでも、SDkへのパスは設定してありますし、
Microsoft Platform SDK\SetEnv.Cmdは実行済みなので(試しに直前にもやってみたけど結果は同じ)、
SDKのパスが通っていないとは思えないです。
おそらく、これが最後の関門だと思います。
どうかもう一度よろしくお願いします。
>>107 __stdcallは、PASCALというマクロが展開された結果。
その前に ')' が必要といわれてるんだから、問題になってるのはそこより手前
本当にそのコンパイルエラーの手前にWarningかエラーない?
>>107 というか、MONOLITHIC=0がデフォルトなんだから、MONOLITHICじゃないライブラリ使えば良いじゃない。
1. wx_dll.dswを開いて、構成をDLL Unicode Releaseを選択してソリューションをビルド
2. samples.dswを開いて、構成をDLL Unicode Releaseにしてソリューションビルド
で、普通にいけるぞ?
94です。
>>108 warning C4068: 不明なプラグマがありました。
というwarningが大量にありました。
>>109 >1. wx_dll.dswを開いて、構成をDLL Unicode Releaseを選択してソリューションをビルド
この時点で未解決の外部シンボルの嵐で全然ダメです。
wx_dllは他の構成でも全然ダメでした。
もしかして、何かおかしなことが起こってますか…??
>>110 とりあえず、WindowsSDKとVC++2005消して、新しい環境を構築しなおせ。
VC++2008Express SP1
Windows SDK for Windows Server 2008 and .NET Framework 3.5
そうします。 やっぱり何か異常な状態なんですね。
すいません。Code::Blocks+MinGW+WxWidgets2.8.8の環境構築について 解説しているサイトはないですか?ググったのですが見つからなくて 困ってます。
wxPythonでのトラブルですがwxWidgets絡みなので ここで質問させてください。 wxWidgetsのDLLをUPX圧縮した状態でwxを使うツールを 2重起動するとOS毎固まる症状が出ています。 調べた限りではwxのどのDLL,pydを圧縮しても 同じ症状が出るようです。 OS Win98 WxWidgets 2.8(wxPython2.8.7.1 本家のWin版) UPX 2.0.3 AVSP(1.3.6 python2.4 wx2.6)ではUPX圧縮してあっても 多重起動できているのでバージョンの問題かも しれませんが、ツールを一纏めにして配布する 予定なので出来るだけ圧縮して使用したいのです。 御教示お願いします。
ツールを一纏めにして最後にZIP圧縮して配布すればよい。UPX圧縮したのを一纏めにするのとほぼ同等の効果がある。 というより何形式であれ圧縮されたファイルはそれ以上ほとんど圧縮されない。何故なら圧縮されているからだ。
wxWidgets 2.8.9 リリースされたみたい。
コンパイルするのまんどくさいんで 誰かランタイムとヘッダだけまとめて配布してくれ
>>115 圧縮されてるから圧縮されないんじゃないよ
均一にどの視点から見ても完全にランダムなデータになってるから圧縮出来ないんだよ
同じデータでも圧縮する前に可逆な方法でランダムに入れ替えたデータでやるとまったく圧縮出来ないよ
圧縮率の上下はいかにランダム性を生ませないような構造にデータを持っていくかが味噌なんだ
最近の圧縮アルゴリズムなんてとっくの昔にエントロピーなんて越えてるし
119 :
114 :2008/09/23(火) 17:35:09
>>115 pythonの場合はスクリプトなので起動時のロード時間が
非常にかかります。wxWidgetsのライブラリは
テキストが多く含まれているので圧縮すると半分くらいの
大きさになりロード時間がかなり削減できます。
今回は圧縮率よりもロード時間を気にしています。
念のために。UPX圧縮による実行時のメモリ浪費は
気にしなくて結構です。
スレ違いで申し訳ないのですが、widestudioを使ったことがある方っていますか? IDEも付いている至れり付くせりな感じなのでいいんではないかと思うのですが、あまり稼動実績が見当たらないのですよね。 wxWidgetsと比べてどんな感じかとか、使ったことある方いらっしゃったら教えて頂けると嬉しいです。
121 :
120 :2008/09/23(火) 18:02:58
すいませんwidestudioのスレあったのでそっちいきます。。 と言ってもここでも色々意見頂けるとありがたいのですが。
widestudioはwx以上に使われてない感があるな〜 見た目がOS標準じゃないのがちょっと・・・ OS標準よりもかっこよければ、非ネイティブでも許せるんだけども
123 :
デフォルトの名無しさん :2008/09/25(木) 13:45:50
>>116 おっ、まじですか
そろそろ汎用的なXMLPerserキターかな?一寸見てこよ。
つか、
>>91-93 が完全に空気になっているのに吹いた。
>>122 ありがとうございます。
うーん、やはりそんな感じなんですね・・
WxWidgetsについて質問させてください。 Windows上で、WxRubyを使ってアプリケーションを作っているのですが そのアプリケーションの中で、時間のかかる作業(多くのファイルのコピー)を始めると 作業中にウインドウが固まってしまいます。 (ウインドウ上のボタンが押せない&他のウインドウをアクティブにすると、元のウインドウを表示できなくなる) 定期的にupdateメソッドを実行してみたりもしたのですが 表示が更新されるだけで、固まる問題は解決しませんでした。 WxWidgetsにおいて、時間のかかる作業をやりたいときの 定石のようなものはないでしょうか?
処理を分割してタイマーか何かで少しずつ進めるか、処理を別スレッドにする。 wxWidgetsに限らず大抵のウィンドウシステムではこうなるわな。
127 :
125 :2008/10/01(水) 15:40:25
ありがとうございました! Rubyスレッドの中で処理を実行して、WxTimerで10msおきにスレッドに処理を回すことで 余裕を持って動くようになりました
MinGWでwxwidgetsをコンパイルして使えるところまで来たと喜んでいたんですが、 簡単なサンプルで C:/wxWidgets-2.8.9/include/wx/chkconf.h:103:9: #error "wxUSE_DYNLIB_CLASS must be defined." C:/wxWidgets-2.8.9/include/wx/chkconf.h:111:9: #error "wxUSE_EXCEPTIONS must be defined." C:/wxWidgets-2.8.9/include/wx/chkconf.h:119:9: #error "wxUSE_FILESYSTEM must be defined." C:/wxWidgets-2.8.9/include/wx/chkconf.h:127:9: #error "wxUSE_FS_ARCHIVE must be defined." C:/wxWidgets-2.8.9/include/wx/chkconf.h:140:9: #error "wxUSE_DYNAMIC_LOADER must be defined." C:/wxWidgets-2.8.9/include/wx/chkconf.h:148:9: #error "wxUSE_LOG must be defined." ・・・ というようなエラーが出てします。原因は何が考えられますか? ちなみに付属のサンプルはmakeコマンドでビルド出来ました。コンパイル時の オプションの問題なのでしょうか?
>>128 MinGW 使ったことないから外しているかもだけど
setup.h は include している?
`wx-config --cxxflags --libs`とか?
>>128 samplesフォルダのminimalはコンパイルできる?
ああ、makeで出来たって書いてあった、すまん。 コンパイル時に打ったコマンドをさらした方がよいと思われ。
133 :
128 :2008/10/02(木) 14:05:05
134 :
128 :2008/10/02(木) 14:15:34
連投すみません。setup.hが原因の場合、includeパスにwx.hがおいてあるフォルダを 設定していたら、そこにsetup.hを放り込んでおけば良かったのでしょうか? サンプルのminimalをmakeは出来たのに、自分でコンパイル出来なかったということは、 インクルードパスの設定が不十分でsetup.hが見つからなかったことですよね。たぶん
>>134 wxは複数のバージョンや条件(Unicodeだとかデバッグだとか)でビルドしたライブラリ
を置いといて、wx-configにオプションを与えることで設定通りの条件のsetup.h
だとかライブラリだとかが使われるコンパイラ引数を出してくれるようになってる。
なのでsetup.hを手前で適当に放り込むなんてのはしない方がよい。
ファイルがどこにあるか調べ上げて自分でパスを列挙するなんてのとは違う。
136 :
134 :2008/10/02(木) 19:11:22
>>135 wx-configはちょっとしたプログラムを作るためのもので、まともなプログラムを
作る場合はmakefileにインクルードパスなどを細かく書くものだと思っていました。
`wx-config`はcygwin,linuxあたりでは使えると思うのですが、windowsの
開発環境(VC++,eclipse,netbeans等)で、コンパイルオプションに指定して
動くものなのですか?
もともとMinGWって言ってるじゃねーか。 なんでVCが出て来るんだよ。
> まともなプログラムを作る場合は もっとマシな人間をアサインする
>>137 確かに、それは私が悪いんですが、wxwidgets自体がクロスプラットフォームな
ライブラリじゃないですか。そうすると、VCで使う人もいるだろうし、
VCの場合はどうするのか気になったんです。
結局、'wx-config'はcygwin上からでしか使えないのですか?
140 :
132 :2008/10/02(木) 19:51:52
wx-configは、makefileに細かく設定するのがめんどくさいから使うもの。 wx-configはWindowsのコマンドラインからは使えないので、使えるようにするためのツールがMSYS。 MSYSからwx-configを使ってコンパイルしてみなされ。 ちなみにwx-configをくくってるのは半角のバッククォートだよ?Shift+@で。コマンド置換とかで調べてみ。 gccのオプションとかについても調べましょう。
>>140 回答ありがとうございます。
バッククォート間違ってたorz
どうもいくつか腑に落ちないことがあって、ヘッダファイル除いてみたり
してたんですが、根本的に間違えてるかもしれないです。足掻いてみます。
お騒がせしました。
>>139 VisualStudio の場合、基本的には.dspなんかを使うんだけど
それが build/msw フォルダに入っている。
で、その中で include パスの設定なんかが入っているので
そのままコピーするなり好きなように設定すればOK
WxWidgetsってIDEで使うの難しいよ。 私のスキルがないのもあるけど、今までEclipse+CDTやCode::Blocksと 環境づくりができなかったよ。もっと簡単にできないと普及しないんじゃ ない?wxDevC++は簡単だったんだけど、デバッグに難ありじゃ使えない…。
今、wxDev-C++のサイト見てきたけど、Web Update したら Ver7相当になるのかな? そろそろ、バージョンアップの日は近い??
145 :
デフォルトの名無しさん :2008/10/06(月) 22:31:49
いや、普及しないのはきっとバイナリが馬鹿でかくなるせいだ。 ちょっとしたアプリでも2M以上になるんじゃ恥ずかしくて公開できない。
今時実行ファイルがでかいぐらいで恥ずかしがることもあるまい .NET Frameworkが必要と言った瞬間に文句を付けてくるような奴がいる世の中だ 別途インストールが必要ないのは利点だぜ
.NETの必要な400KBのプログラムよりは 単体で動く4MBのプログラムの方が良い
.NET嫌いのエンドユーザーって、実際的なことではなく、 「こう言っとけば"わかってる奴"みたいに響くらしいぞ、うひひ」 的な動機で文句言うからなぁ。 毎度文句を言うくらいならランタイムをインストールしたほうが早いのに、 意地でもそれをせずに「.NET対応だと困る自分」を死守してるだろ、彼らw
>>148 そのインストールが面倒だから文句言ってるんだよ、分かれよそのくらい
インストールだけで時間かかるし
バージョンアップが必要になることも多いし
別PCで動かそうとしたときに面倒だし
>>149 インストールより「.NET対応だと困る状態」を維持して
毎度毎度困り続けるほうが面倒だろって言ってるんだよ、分かれよそれくらい。
初回起動が遅いのが.NETの最大の難点だと認識している 二番が移植性、インストールの問題は三番目
.NETの要る要らないでソフトの作者を叩いたり ネットで喧嘩したりする時間とやる気はたっぷりありますが、 インストールする時間とやる気はまったくありません、それくらい分かってください。 とか言われても、「分かりません」としか言い様がないんだよね。
>>151 初回起動の問題が圧倒的だよね。
そういう「実際的な問題」なら話はわかるし、俺もそれは好きじゃないから、
.NETは趣味の開発では避けてるよ。
>>150 仮にWindowsユーザー全員がインストールしたところで、.NETの方がバージョン上がるから同じ事だ
それが同じじゃないことに気付かないのは
>>148 の内容の人ですね、キミは
もう既に、この会話のほうが、インストール作業より時間的にも長く キーボードを叩く量=人間側の労働コストも多くなってるからね。 これは自発的にやれるけど、インストールはやれません、は通用しないよ。
>>152 何でマイクロソフトは Windows Update で強制的に .Net をインストールさせないんだろう?そしたらこういう文句もでなくなるはずだよね。
ヒント:M$は製品にドトネトを使わない、MFCを使わない、VBを使わない
>>157 Vistaでプリインストールされているので自然に普及するという計算だった
しかしそのVistaがあんまり・・・
先ずはM$に製品にドトネトを使うように説得してみてはどうだろうか? 話はそれからだ。
誰も勧めちゃいないと思うんだが
たしかにドトネトを勧めるなんてテラ悲惨すぐる。 そんな痛い香具師いねーかw
なんか本題からずれてきてるぞ 問題はWxWidget使った実行ファイルのサイズだろ
なんでこんなに盛り上がってるんだw
167 :
デフォルトの名無しさん :2008/10/09(木) 19:02:42
>>143 NetBeansで出来た。他のIDEでもいけると思う。コンパイラとリンカのオプションに
wx-config --cflags と wx-config --libs で出力される文字列コピーしてウマー
NetBeansの場合、Runで実行するときにはLD_LIBRARY_PATHに共用ライブラリしていしないといかんけど
>>165 wxTNGの完成予定時期ってどっかに書いてる?
169 :
165 :2008/10/10(金) 07:52:16
>>169 しばらくは現状の仕様のままということですか。
3年後くらいには出てるかもしれないね。
まあ、今のままでも若干MFC臭がするくらいで、そう不便でもないとも思うが。
>>167 すいません。wxのコンパイルから、NetBeansの環境設定まで
初心者に分かり易く書いてもらえないでしょうか。
実行ファイルのサイズが大きくなるのは全然平気。使う側も意識しないだろうし。
172 :
167 :2008/10/11(土) 17:41:22
>>171 どこら辺が分からない?
全部書いてもいいけど、長文になるだろうから質問に答えていく感じの方が
173 :
171 :2008/10/13(月) 01:11:57
NetBeans wxwidgets でぐぐったら良い記事見つけたので 良いや。それ見て、eclipse+CDT+MinGW+msys+WxWidgetsで 環境できたし。
174 :
デフォルトの名無しさん :2008/10/13(月) 08:34:47
NetBeansじゃねぇw NetBeansはMakefile書かなくていいから楽だけどなぁ
>>173 結局、お前には
「ググレカス」
って返事しとけば良かったってことだな
176 :
デフォルトの名無しさん :2008/10/19(日) 14:13:35
wxglade使って、骨組みだけパパッと作りたいんですけど、 ボタンなどの部品をフレーム一杯に配置するにはどうすれば いいですか?サイズに-1,-1を設定するとOS毎のデフォルトサイズが 適用されるみたいですけど、パネル・フレーム一杯に配置する 特定のパラメータってないんでしょうか?
>>176 サイザー内の部品について
proportionを1以上にすると、サイザーの方向に伸びる
(サイザー内に複数の部品があれば、proportionの値が大きいほど幅を取る)
Alignment - wxEXPANDをオンにすると、サイザーの方向と垂直に伸びる
178 :
デフォルトの名無しさん :2008/10/19(日) 16:03:11
>>177 出来ました。ありがとうございます。
wxGladeって書いてましたが、よく見たらwxFormBuilderでしたw。
ubuntuで適当に入れたから、wxgladeと思い込んでたけど、
今はwxFormBuilderの方がメジャーなんかなぁ
自分はDialogBlocksが一番好き
180 :
デフォルトの名無しさん :2008/10/22(水) 12:55:03
wxWidgetsアプリのファイルサイズはまあ許容できるけど、 minimalサンプル実行時のメモリ使用量が40MB近くってどういうことだ? $ wx-config --list Default config is gtk2-unicode-debug-2.8 だけど、debugビルドだから?
181 :
デフォルトの名無しさん :2008/10/22(水) 22:43:01
DialogBlocksいいよな 軽いしコメント消せば余計な補完しないし 最初はテキストエディタで直接弄った箇所を 消されたりしてその良さがわからんかったけどな
DialogBlocksの宣伝するのなら、環境構築のやり方教えてちょ。
183 :
デフォルトの名無しさん :2008/10/23(木) 10:12:52
>>182 今、試してみた。
環境がwindows+visual C++なら、dialogblocksインスコすれば
勝手にコンパイラとかの検知はしてくれるみたい。あと手動で、
Settings->Path->WXWINに、公式サイトから落としてきたwxMSWを
解凍したフォルダを設定すればいけたよ。ただ、ビルドオプションが
ReleaseとDebugしかないってのは…。Unicodeを設定する方法とかあったら
補足よろしく
>>182 おう、興味をもってくれる人が出てくるのを待ってたぜ
ttp://www.anthemion.co.uk/dialogblocks/download.htm で、
DialogBlocks 4.27 Developer Bundle for Windows NT/W2K/XP/Vista (Unicode).
を落としてインストールだ。
DialogBlocks、wxWidgets、MinGWがいっぺんにインストールできる
wxwidgetsとMinGWは共にデフォルトのパスにインストールを推奨
MinGWはG++とMinGW-Makeを選択すること。
Webインストールで、たまにファイルが落ちてこないことがあるが
何度かリトライすればインストールできるのでキャンセルはしないこと。
DialogBlocksからwxWidgetsをコンパイルできるのでMSYSはいらない。
すでにwxWidgetsとMinGWをインストールしている場合は
DialogBlocks初回起動時にウィザードがでてくるのでそれに従って
それらのパスを指定するだけ
Bundleをインストールした場合は自動的にパスが検知されてる
細かい選択肢がインストールの間にいくつか出てくるのでダレないこと。
知ってるかもしれないがwxWidgetsのコンパイルもえらい時間がかかるので
やっぱりダレない事。
あとDialogBlocksは言語が選べるけど英語かドイツ語しかない
だけど基本的なことは他のIDE(Visual Stadioとか)とほぼ似通っているので
なんとなくで判るはず。
これでProjectを作れるところまでいける。正味2時間ぐらい。
>>183 View→Settings→Configration→Add でいけない?
185 :
デフォルトの名無しさん :2008/10/23(木) 17:45:16
>>184 unicode設定できたサンクス。
にしても、高機能過ぎない?コンパイル出来ることにビビッたんだけどw
結局簡単な設定とかだけで日本語が通るwxWidgets向けIDE/RADはないってことでFA?
ないんじゃね 意味が二つ取れるけどとりあえずないんじゃね
gccは--input-charsetと--exec-charsetで、 windresは--languageでASCII以外が通るってことみたいだから あとはIDE/RADがSJIS or UNICODEで編集・出力できるか、 にかかってるんじゃないかと思ったのよ
>>184 一回、インストールしてみるわ。
誰か、DialogBlocksを日本語化してくれ。
つかさ、クレクレばっかじゃなくてもっと話題が広がる振り方ないの? まあバリバリのwxプログラマはwxcomunityで英語で意見交換してんだろうなぁ
してる人いるのかなぁ。 個人的にマルチバイト周りの強化して欲しいと思ってるが英語でメールするのが億劫でいまだしていない。
>>194 「して欲しい」というのがまず間違ってるんでないの。オープンソースなのに。
べつに間違ってはいないと思うけど オープンソースだからパッチ書かずに要望出すな、ってことはないでしょ パッチ出した方が早いってだけで
197 :
194 :2008/11/02(日) 01:40:50
今んとこそこまでやれるレベルのプログラマではないので^^:
具体的にマルチバイトのどのあたりを強化して欲しいの?
>>197 ユニコードでやっとけばとりあえず問題ないとおもうんだけど。
ユニコードが使えない環境で今更作りたくないな
話題が広がらないのは、もうwxWidgetsが枯れてるからじゃない? MFCからの蓄積があるから、基本的なデザインで悩むとこなんてほとんどないし、 個々のクラスの使い方もドキュメントを見れば一発だから。 wxTNGは熱くなれそうだけど、一部でしか盛り上がってないからどうしようもない。 MFC上がりのおっさんが、クロスプラットフォームな何かを 経験を生かしてさくっと作るライブラリってことでいいじゃない。
ML読んでればわかるけど、文字を表すのに1バイトで足りない文化圏の人は素直にUnicodeビルド使ってねというのがVZたちの基本的スタンスよ。
VZってVadim Zeitlinのことだよね Samplesでよく見かける 関係ないけどこの人たちが8年前に書いたソースで勉強してるんだなあと思うと 先駆者との距離の開きに焦りを覚えるよ
まあUnicode使用は妥当だろうな。 ShiftJISはダメ文字問題が面倒臭すぎる。
204 :
デフォルトの名無しさん :2008/11/04(火) 02:27:04
Unicode問題、よく言われてるけど、 正直、いまのままでもあまり困ってない。 (wxString て言ったって、setup0.hを変更すれば std::stringになるのだし・・・。) 具体的に、何に困ってるの?
ライブラリのビルドで--disable-threadsをつけるのが常みたいですが スレッド作らなきゃいけない場合どうしてますか?
結局Mac OS X でwxする場合、どの開発環境が良いんだろうね?
正直ほかの環境で wx で書いて出来たものを持ってきてからコンパイルして 微妙にいじるのが正しい気がする。 OS X 専用なら wx で書く必然性が全くない。 wxPerl と wxPython は標準の OS X にインストールされているのでそれを使うのが正解かもしれない。
208 :
デフォルトの名無しさん :2008/12/07(日) 03:36:00
パソコン変えたので新しくwxWidgetsインストールしようとしたら./configureで失敗します・・。 windows xp professional msys 1.0.10 mingw 5.1.3 wxMSW 2.8.8 で、MSYSから ./configure --disable-threads --enable-monolithic --enable-unicode を実行すると please set CFLAGS to contain the location of windows.h というエラーが出て止まってしまいます。。 どなたかお助けください。。m(_ _)m
209 :
208 :2008/12/07(日) 03:38:10
MinGWはc:/msys/1.0/mingw にインストールしています。 CFLAGS=c:/msys/1.0/mingw/include とかやってみてから./configure してみても変わりませんでした。
w32apiは正しくインストールされてるのか #それに CFLAGS はコンパイラオプションで直接ディレクトリを代入しても認識しないと思うがたぶん
mingwを後から入れたってことだからmsysから/mingwへのパスが通ってないとか? c:/msys/1.0/etc/fstabに c:/msys/1.0/mingw /mingw って入れとけば間違いないかも mingwはインストーラーで全部チェック入ってれば問題ないと思う あとビルドするときはビルド用のディレクトリ作って、その中から../configureした方がいいよ
212 :
208 :2008/12/07(日) 13:45:21
ありがとうございます。 いろいろ試してみているのでがまだ解決しません。 msysからgccとかでコンパイルはできるので、mingwのパスは大丈夫そうです。 ./configure 途中の出力見てると、どうもSegmentation fault がでまくっている感じのようです。 これのせいかなと思うのですが、Segmentation fault ってのは要は他のプログラムと競合しているということなのでしょうか?? バックグラウンドで動いてるプログラムを停止したりしてみながらいろいろ試しているのですが・・
213 :
208 :2008/12/07(日) 14:18:59
./configureを走らせるタイミングによってエラーの結果が変わります。 一回 segment fault 吐きながらも最後まで./configure が終わったのですが、案の定make でエラー終了しました。 どうしたものか・・
そのエラーメッセージを書かないことには・・・。
215 :
208 :2008/12/07(日) 15:31:27
エラーの内容毎回変わります・・
216 :
215 :2008/12/07(日) 23:47:45
エラー吐きまくりつつもなんとか簡単なプログラムはビルドできるようになりました。 ありがとうございました。 しかしMSYSがなんかおかしいのか・・
>>216 それはビルドできるようになったとは言わない
>>216 ハードディスクがいかれているんじゃない?
chkdsk してみた?
Segmentation fault ってのは例外が発生しているんだけど
普通は起きないようなエラーだから、ハードウェア的なトラブルなんじゃない?
configureを使用しないという選択はないのか…
220 :
215 :2008/12/08(月) 16:40:27
ご親切にありがとうございます。 >それはビルドできるようになったとは言わない wxWidgetsのインストール時にエラー吐きまくっているが、簡単なプロジェクトのビルドはできるようになったということです。 たぶんコンパイルできなかったスタティックリンクライブラリがかなりたくさんあるのでもちろんどうにかしなければと思ってはいるのですが・・ >>chkdsk してみた? chdsk 知らなかったのでやってみたところ、破損ファイルを回復しています・・みたいのが一つでたのですが、 その後./configureしてみてもやはりSegmentation fault は出ました。 ハード的になんかおかしいってことなんでしょうか? そもそもMSYSのインストール時点で Couldn't reserve space for cygwin's heap という変なエラーが出てるんですよね。 この症状は報告例があって、調べてなんとかMSYSは動くようになったんですが、 もしかしたらそのせいでMSYSが完全に正常には動かないような状態になっていて、それでwxWidgetsの./configureでSegmentation fault が出まくるのかなと思ってたのですが・・関係ないでしょうか? >configureを使用しないという選択はないのか… そんなことできるんですか??
ドキュメントにmakefileを直接使う方法ってのが載ってるじゃん 俺はむしろMinGW環境ではこっちが標準だと思ってたんだけど MSYSからじゃなくてコマンドプロンプトからになるけど mingw\binに環境変数でPATH通してから > cd c:\wx\build\msw > mingw32-make -f makefile.gcc BUILD=release SHARED=0 MONOLITHIC=1 UNICODE=1 USE_THREADS=0 みたいにビルドできるよ つか、install-msw.txtくらい読むものじゃないの…?
結局どうなったんだ…? つかmakefileを直接使う俺は異端なのか…?
wxHtmlWindowに日本語を含むHTMLを読み込ませて、 マウスドラッグで日本語を選択するときに場所によって文字が化けるんですが、化けないようにする方法はありますか?
ユニコードビルドにしたら改善しない? それで駄目なら wx のソースをいじらないとどうしようもない気がする。 というか wx で日本語がきめ細かく動くことを期待してはいけない。
DialogBlocks固有の問題だと思うんだけれども、 wxTextCtrlの初期値に"_"が含まれてると、"%"になっちゃう。 使わなければ良いだけなので回避してるんだけど、ちょびっと気持ち悪い。
227 :
デフォルトの名無しさん :2008/12/25(木) 05:08:59
こんなに至れりつくせりなライブラリなのに 日本では全然盛り上がらないな。
>こんなに至れりつくせりなライブラリ どこが? >日本では全然盛り上がらないな 海外では流行ってるのか?
Ubuntu 8.10 で、 wxGTK ダイアログ中のテキストボックス上で Atok X で変換すると、 確定するときに Enter キーを押すと OK ボタンが押されてしまう。 GTKアプリではこんなことが起こらないから、 wxGTK の input method あたりが 何かおかしいんだろうけど、何が悪いのかさっぱり判らない。
>>228 C++
オープン
クロプラ
日本語可
GUIウィジェット網羅
非GUI系ラッパも豊富
豊富なドキュメント
RADの充実
スタティックリンク可
多ビルド
これだけのものは他にないな。
>海外では流行ってるのか?
はい。
>これだけのものは他にないな。 Qt ...
流行らないのは、「クロスプラットフォームなGUIアプリ」のニーズが 少ないから ポータブリティがタダで(犠牲なしに)手に入るのならいいが、残念ながら そうではないしな
宣伝してないのと日本語資料が無きに等しいからだろう
>>231 やっぱ、Qtってメチャクチャ良いの?
クロスプラットフォームの開発にwxDev-C++でやってるんだけど、
C++ Builderには遠く及ばない感じがして。。。
230に ライセンスがうざくない OSネイティブのTKで動く も入れるとQtは却下だな。
>>235 Mac OS X 上では ネイティブ度?は Qt のほうがマシだベ。
まあ誰も wxMac をつかってなさそうでメンテされてないからだろうけど。
VCL ○C++(少しDel臭いがMFCよりはマシ) ×オープンソース ×クロスプラットフォーム ◎GUIウィジェット ◎非GUIラッパ ○ドキュメント ◎RAD ○スタティックリンク可 MFC ○C++(かなりインチキ臭いマクロとか多いが) ×オープンソース ×クロスプラットフォーム ×GUIウィジェット ○非GUIラッパ ○ドキュメント ×RAD ○スタティックリンク可 WTL ◎C++ ◎オープンソース ×クロスプラットフォーム ×GUIウィジェット ○非GUIラッパ ×ドキュメント ×RAD ○スタティックリンク可
誤爆った
なんでスタティックリンク可不可って問題なの? Windows でもインストーラ書けばいいのでは? Linux だったら .rpm とか .deb でいいし、 OS X なら .app パッケージに全部つっこめばいいよね...
ある時見つけた便利そうなソフトがインストーラしかないと知ってスルーした経験ない?
できないよりはできたほうがいいな。
>>240 ないけど...
ていうかインストーラ無いやつは Program Files 内に入らなくて
自分でフォルダ管理しないといけないからウザイ
243 :
デフォルトの名無しさん :2008/12/27(土) 15:19:17
会社とかで、さっくりと作ったアプリを もらった時とかに、インストーラーがあると逆にうざくて しょうがないときとかない? 何で、わざわざインストールが必要なんだ?とか
そんなことより Windows Update がうざい
ちょっと試してみるだけだったり、気に入らなければすぐアンインストールする つもりのことが多いから、インストーラ無しのほうがいいな フリーウエアでインストーラ付きだと、インストールするのをやめることもある いやな予感がするときとか
インストーラが本当に必要なレベルの大型ソフトなんて個人では作らんよ
あとスタティックリンクできないと なんのライブラリつかってるかもろばれじゃん。 有用なライブラリは同業者に教えたくないし。
そうか、インストーラ拒否症のひとって多いんだな。 自分がそうでないからわかってなかったが、 今後はスタティックリンクするようにしよう...
それにしたって、実行ファイルと同じフォルダにdll詰めてzipで配布すりゃ良いんじゃないの?わざわざスタティックリンクしなくても。
>>247 さすがにそれはねーよwどんだけ情報弱者の同業者想定してんのw
そのしょぼい独占欲で守られる利益なんて大してねーよw
やたら巨大なライブラリの一部の機能しか使わない時なんかは、 サイズ的にスタティックリンクの方が効率いいかもしれん。 まあ、そんなにサイズを気にするご時世じゃないけどね
252 :
デフォルトの名無しさん :2008/12/28(日) 01:48:53
スタティックリンク最大の利点は精神衛生上 ちょっと一端のプログラムを一人で作りあげた感を得られることだろう。 Windows慣れしてると、なんか変なdll置いてあるだけで どことなく「ライブラリ頼りのトーシロ」感がかもしだされてしまう。 それよりはやっぱり実行ファイル一つ、のほうが気持ちいい。
Windows自身がライブラリの塊じゃん
実行ファイル一個で済む方が気分が良い
動的リンクなら、ライブラリに脆弱性が見つかったときに そのアプリがメンテされて無くても対応できる可能性が! いや、まずないけどね
>>252 ひとによって考え方が違うのは承知の上で聞くが、
全然わからん。プログラム書いた本人は
何のライブラリ使ったか覚えてるわけでしょ?
見た目だけちがうだけでなんで気持ち良かったり気持ち悪かったりするの?
windowsユーザーの意見だけど…… dll使用が嫌われるのは「俺のPCのシステムに変なの仕込むな」つうことだけでしょ? dll hellとかも嫌だし、アンインストールするときにキレイになるか判らんし。 exeと同じフォルダに仕込んどけばシステムにインストールする必要は無くなるけど、 dllのメリット無くなるしね。
動的リンクで後から脆弱性が直せる可能性があるなら 同じように後から脆弱性を作り出せる可能性もあるのかな?
最近はサイドバイサイドとかマニフェストとか色々めんどくさい
260 :
デフォルトの名無しさん :2008/12/29(月) 22:37:21
>>250 いやあ、それが気になるのですよ。
うちの場合、
「ダイナミックでいれたランタイムを他のアプリが勝手に入れ替えた場合の保証がとれない。」
という理由で、お試しに作ったソフト・出荷ソフトの区別なく
一切ダイナミックリンク禁止になってます。
ちなみに、うちでは工場系のソフト(VC6 MFC製)を扱ってます。
工場のマシンに勝手にアプリを入れる馬鹿がいるとは思えないので、
ダイナミックだろうがスタティックだろうが、関係ないはずなのですけど・・・。
もしかして、OSのサービスパックが勝手に更新する、Cランタイム/MFCライブラリ
に対しての評価のことを気にしてるのか?
全然素人なんだけど、工場って WIndows つかってるの? でかい機械をコントロールしてるときに Windows がブルースクリーンになったら どうするんでしょう?危険でない? Windows ベースのタッチパネル端末で良く異常終了して エラー画面になって止まってるのをみるんだけど...
監視端末(Windows)と機械のファームは別だろう。 端末からの信号が途絶えたとしても、安全動作するよう普通考えるはず
263 :
デフォルトの名無しさん :2008/12/30(火) 00:23:35
>>261 >>262 もちろん、機械のファームはWindowsではないですが、
監視端末はWindows2000です。XpやLinuxにするだけのメリットがないので。
枯れた技術(STLですら新技術扱い)・枯れたコンパイラーしか(いまだに、VC6だぜ)使わせてくれないから、ブルースクリーンになることは、まずないよ。
>端末からの信号が途絶えたとしても、安全動作するよう普通考えるはず
のように設計指示はしてるのだけど、実際に作ってるのがFSIの新人だから、
評価だけはしっかりやらせてる。
なるほど!安心しました。まあ従業員の命がかかってるからそりゃ対処してるでしょうね。
265 :
263補足 :2008/12/30(火) 01:05:15
EXEが使用するDLLが、何らかの拍子で規定の場所から消えて、 同じDLL(Version違い)がWindowsディレクトリにあった場合に、 動作してしまう可能性がある。 DLLのVersionチェックとかできればいいのだけど、 Versionチェックそのものがバグってた場合や、Cランタイム/MFCランタイム に問題が合った場合、評価したDLLのVersionと違う環境で動作してしまう。 Version差分によって修正されたDLLの場所に、 競合とかリークとか実装上のミスがたまたま引っかかって、 1%の確率で落ちたりしたら、だれが責任とるんじゃ?という問題があるのよ。 100万個作る場合、1万個の不良が出てしまう。。。 だったら、最初からスタティックにしておけば、DLLの外部要因をOSのDLLだけにしておける。 リスク軽減。その辺ってかんがえてる?
ダイナミックリンカのバージョンが変われば問題も起こるからなぁ。 プロトコルが決まっていればいいんだが、 プロトコルが一定でない関数呼び出しみたいなものは出荷検査みたいなのに対応できない。
>>265 まず言っとくけど、安全側に倒すってのもわかるし、DLLを強制するわけでもないぞ。
>EXEが使用するDLLが、何らかの拍子で規定の場所から消えて、
>同じDLL(Version違い)がWindowsディレクトリにあった場合に、
>動作してしまう可能性がある。
これはそういう風に依存するDLLを自動検索するよう作ってるからであって
.localファイルなりDLLを絶対パスで指定するなりすればいいんでないの?
>DLLのVersionチェックとかできればいいのだけど、
>Versionチェックそのものがバグってた場合や、Cランタイム/MFCランタイム
>に問題が合った場合、評価したDLLのVersionと違う環境で動作してしまう。
バージョンチェックがバグってたら、てそれはバージョンチェックするのはDLLホスト側なんだし
そんなバグ出るかもなんてレベルでホスト側のテスト通してるんならスタティックリンクしようがダイナミックリンクしようが
バグ埋め込みそうなものだけどなぁ。
Cランタイム/MFCランタイム側まで問題があった場合なんて言ったらそれこそスタティックリンクしようがダイナミックリンクしようがどうしようもないじゃないの。
ちなみにDllGetVersion()とかCOMとかCOM相当の自前でインターフェイスベースでコンポーネント作るとかやれば
バージョン違いでのDLLを使用することはそれなりに避けられるんじゃない?
>だったら、最初からスタティックにしておけば、DLLの外部要因をOSのDLLだけにしておける。
>リスク軽減。その辺ってかんがえてる?
その代わりテストするのは一塊の実行ファイルなりモジュールなりになるわけで、工数もテストの規模もでかくなると思われ。
全てのフローを網羅するとなったら個々のモジュール間が全て統合された場合の状態を全部網羅しなきゃならないし、
一部だけテストするとなったらなったでカバーしなきゃならない状態のテスト漏れとか起こりそうだし、
DLLでモジュールを細かく分割統治するより別側面でのリスクが増大しそうな気がする。
268 :
267 :2008/12/30(火) 18:17:14
今気づいたがぜんぜんwxWidgetsと関係ない話に脱線してるな。ゴメンナサイ。
いや、おもしろいよ。どうせ閑古鳥スレだし。
wxWidgets の場合、公式バイナリのような dll が無いので、 dll をほかの wxWidgets アプリと 共有しようとしたら違うconfigやコンパイラでビルドされた dll を使ってしまう可能性があって危険。 (C言語の場合ABIが決まってるけど、C++だとコンパイラのバージョンそろえないと怖い) だから、wxWidgets の dll を system32 とかにぶち込む気にはなれない。 dllを共用できないのであれば、スタティックリンクにした方がいらない関数をリンクから外すとか できるのでサイズが縮む。起動時間もダイナミックリンクがいらない分早くなるはず。
>>267 単純に疑問なんだけど、リンク形態によってテスト工数が変わる理由がわからないんだが
単純に配布のファイルフォーマットの話じゃないの?
どっちにしろテストは全部しなきゃならんわけで
272 :
263 :2008/12/31(水) 17:17:47
>>267 たしかに、評価工数とかを考えると、フツーにモジュールを別にしますね。
>その代わりテストするのは一塊の実行ファイルなりモジュールなりになるわけで、工数もテストの規模もでかくなると思われ。
ええおかげさまで、ひどい目に遭いましたよ。帰れない日々が・・・。
COM形式なら、最悪IFクラスそのものを切り替えてしまえばいいので
それもありですね。
やっぱ、状況しだいなのかな。
>>271 前に、 モジュール(DLL←→EXE)間の、
「構造体メンバのアライメント指定」が不一致が原因でメモリ壊してる
バグがあったです。と言うのは関係ないか。
どっちかというと、バイナリとしてのモジュールが違うから、
別の担当者に作業を割り当てることができるから、というのも違うな。
LIBにするのだから、IFでわけるわな。
納品される側から考えたら、DLLでもLIBでも対して違いはないですな。
作る側から考えたら、DLLの概要仕様から作らなきゃならんわけで、
めんどくさいてのはあるかも。
外注に、「DLLの要求仕様を出してないんかい」てのは、なしの方向で。
DLLは基本的に「そうせざるを得ない」場合にしか使わないなぁ
お前ら完全にスレ違いだが いいぞもっとやれ
そもそも、ネタがない・・・。 無理矢理作るか? 「wxwidgets乗ってたはずのC++Builder X ってどうなったんだ」とか? これからやろうとしてるのだけど、 MFC製Dialogベースアプリを、 wxWidgetsのMDIの一画面にしてまともに動くのかとか?
mfcのdllとか危険過ぎる。
ちょっと気になった&連絡。 あけましておめでとうございます。 SVNのVCプロジェクトファイルなんだけど、 今までマルチバイトのはずだった(Debugと、ユニバーサルじゃない方)設定 が全部、Unicodeビルドになってる。。。 2.9に更新する場合は、wxString → char*変換周り、全部直さないとだめぽ。
>>278 それ以前に、ASCIIで事足りる文化圏の人間じゃないなら、最初からUnicode使っておけよ。
wxとboostがあればもう何もいらない。 これでSOHO GUIアプリ請負で25歳月収60-70万だぜ。
>>281 すごい。SOHOって仕事は自分で営業して取ってくるの?
発注元の慈悲に過ぎん。あと有能な営業なら同じ仕事でも100万で取ってくる。
マ板ネタになりそうだからこれで最後にするが
>>282 もちろんそうよ。ただ、特定の取引先と運良く良いコネが生まれたってのもある。
283のいうとおり、相手の良心に依存してるのはたしかだ。
まだwx自体が知られてなくて、それなりのGUIを作れるわりに
オープンでクロスプラットフォームということもあって
ある程度安心してガンガン技術習得に時間投資できるから
技術的精度が良かったり小回りが効いたりで客の評価は概ね高い。
webやDB込みだよね? スタンドアロンなアプリで60ならすごいな
たしかにスキルがあって良いコネがあれば,そんぐらいもらえるかもなあ… 羨しすぎる
個人は浮き沈みが激しいから最高値だけで語れないし 将来が不安すぐる 俺も学生の時に某大手商社から個人契約でやらないかって言われたけど 2年後くらいにその商社の社員の賞与が全額カットとかで 行ってたら余裕で切られてたはず で、今はニートな訳ですが何か?
288 :
282 :2009/01/03(土) 14:16:16
>>287 自分も今は無職だよ。
ハローワークとかでも、ちょこちょこMFC使った案件の募集をやってる(自分は面接で落ちてしまうけど)んで、
そのままクロスプラットフォーム対応にしたwxWidgetsもそれなりに需要はあると思う。
ただ、wxWidgetsはAUIとかが今後メンテ・拡張されてくのかちょっと不安。
VS2008SP1のMFCみたいな強力なGUIとか、今後開発されるのかな?
無職ならOSSで名を売る作業に戻るんだ けど、OSSから職に繋がったのなんてほとんど聞いたことない
AUIってドッキングインターフェース? 一般的なアプリでそれほど必須の機能とは思えないけど… ドッキングできる場所が限定されれば自分で書くのもそれほど大変じゃなさそうだし 市販アプリならスキン的にやたらエキセントリックなUIにしたがるからそっちの方をなんとかしたほうが wxWidgetsは何処ぞの組み込み系描画ライブラリ企業からバックアップ受けてるから wxUniversalだのの、コンポーネントを自己描画する方向性ばかりが強まりそう でもSwingでさえLook&Feelはそれほど発展しなかったのに wxUniversalにどれほどの需要と将来性があるか個人的には非常に不明だわ ハロワでMFC案件なんてあるんだ、行ってみようかなぁ
こんなスレまでハロワとかの話題が出てきて 悲しい気分になってきた..
ハロウは楽しかったなあ。俺はあんまり仮装には参加できなかったけどね。
293 :
282 :2009/01/03(土) 21:22:39
>>289 OSSが仕事で出来れば、それに勝る幸せはないかも。
>>290 wxMac(wxCocoa?)はMac持ってないんで良く分からないんだけど、
wxGTKではMDIがノート(タブ)形式になってしまうんで、LinuxでもMDIっぽいことを
やろうとすると何だかんだでAUI頼みになりそうな気がする。
wxUniversalは個人的には黒歴史として闇に葬り去られて欲しいんだけど、
wxPythonとかではむしろ積極的に活用されてるのかな?
>>291 ごめん、ハロワとかの暗い話題はこの辺でやめときます。
290みたいな御託だけで何もしなさそうな奴が、無職なのはすごく納得する。
>>294 御託だけで何もしないか、そうか、悪かったな。
>>295 概要だけで許せ
[wxBlog: Another Year of WX]
●2008年のwxの大きな動き
・コード書きより環境の改善が大きかった。
・sourceforgeのバグトラッカーをやめてTracを使うようにした。
・BuildBotを導入してビルドエラーを自動検出するようにした。
・Doxygenを使ってドキュメントを自動生成できるようにした。
●2008年に決定した戦略
・wxMacについてCarbonベースからαレベルではあるがwxCocoa(wxOSX)に移行を開始した。
これにより32/64bitの両環境に対応しUnixスタイルのdynamic libraryからframeworkに移行できる。
・ライブラリの品質向上。
これにより(長くメンテされておらず、バグが多く非互換性が強くなった)ODBCのサポートがドロップする。
同様にかなり酷い状況だったwxSocketとwxURLがクリーンアップされた。
全てではないがいくつかのwxGridの問題が修正された。
(続き) ●機能追加 ・wxPorpertyGridがwxWidgetsに含まれた。 ・wxDataViewCtrlと関連クラスが結構良くなった。 ・wxRichTextCtrlが多くの小さな修正で重要な改善を果たした。 ・wxGrid/wxListCtrlのカラム表示サポートの一部としてwxHeaderCtrl、 wxRearrangeListと関連クラスが追加され、カラムの順序変更が実装された。 ・wxWrapSizerが追加された。 ・wxCalendarCtrlがネイティブ実装になった。 ・wxMessageDialogが改良され、特にボタンにカスタムラベルが使用可能になった。 ・wxStaticTextがいくつか改良され、内容の省略をサポートした。 ・wxGLCanvasがアンチエイリアスをサポート。 ・AUIの主要な変更はwxAUIToolBarの追加。 ・ついにwxBaseにイベントのサポートが追加された。 ・忘れてるだけで他にもあるかも。 ●他 ・2.9.0の開発ブランチをプレビューリリースできなかった。 Unicode関連のフィードバックを取り込むため可及的に早くしたい。 ・wxButtonで画像をサポートして欲しいという要望が多い。簡単なのですぐやる。 ・今年はwxOSXを完成させて3.0をリリースしたい。
[The Wonderful World of wxWidgets 3.0] Documentation in Doxygen ・3.0までにカスタムLaTexでドキュメントを整備する。 ・ドキュメントの質を上げるためDoxygen形式を採用するが、手作業がかなり必要。 ・これで3.0までに内容が見やすく正確になり、 ビルトインサーチや多くのコントロールのスクリーンショットが含まれる。 C++ features and template support ・STLはバギーな環境・コンパイラが多かったので避けてきた。 ・が、大分良くなったので以下のようなSTLが有効な部分で使用する。 コンテナwxVector<T>、スマートポインタwxSharedPtr<T>、弱参照wxWeakRef<T>等々。 ・Visual C++ 6.0のような古いシステムではwxが使えないか、機能制限される。 Platform features and backwards compatibility ・プラットフォームの新機能を取り込む一方、 最新のシステム向けの開発を阻害しない範囲で互換性もサポートしてきた。 ・特にOSXとGTK+2が問題で、10.4Tiger未満のOSXと2.4未満のGTK+2は非サポートに。 ・クロスプラットフォームなDB APIは本来範囲外だろということでwxODBCはドロップ。
Unicode: A Single Build for Everyone ・3.0までは歴史的経緯によりUnicodeビルドとANSIビルドの2つが存在する。 ・WindowsやJavaはUTF-16を使いGTK+やOSXがUTF-8を使う時代になった。 ・ANSIモードは削除。WindowsではUTF-16、それ以外ではUTF-8を使うことを決定。 UnixとGTK+での呼び出しで異なるUnicode表現間の変換は不要になる。 wxString、wxPrintf()等はUnicodeと8bit-stringの両方を必要に応じ受ける。 ・wxアプリのユーザには見えないが、基礎的な変更で、3.0の主要な動機だった。 New 2D Drawing Code ・2D描画API(wxDC, wxPen等)は常にwxの一部だったが、初期からほぼ変わらず、 単一のフロントエンドに対し多数のバックエンドが分岐して バイナリ互換性を気にすることなく簡単にプラットフォームの差違を吸収してきた。 ・古い描画APIは多くのタスクと1990年代の描画能力に対し十分であったが、 WindowsのGDI+やLinuxのCairo、OSXのCoreGraphics等、 透過やアンチエイリアス、マトリックス変換といった現代的2Dシステムの 先進的機能を使用できなかった。 ・このため新描画API(wxGraphicsContextとか)が追加される。 ビットマップでのαチャネルのサポート ビットマップのRAWデータへのアクセスをサポート 定数を変更、wxMODERN→wxFONTFAMILY_MODERN、wxSOLID→wxBRUSHSTYLE_SOLID等。 ・参照カウントが合理化されプラットフォームで共通になる。 なんかバカバカしくなったのでここまでで終了。 しょせん気まぐれだ、許せ。
300 :
295 :2009/01/12(月) 19:19:24
>>296-299 翻訳超乙。Unicode化の理由と、Graphicsの改善のあたりが良く分かった。
とりあえず、3.0は期待して損はなさそうだね。
一服して若干気を取り直したので続きを投下。 Changes to wxBase (訳注:wxBase自体の紹介は省略) ・wxStringとコンテナクラスには多くの変更がある。 ・wxBaseの一番大きな変更はwx3.0でイベントベースのプログラムを書くための イベントループ、タイマー、ソケット等の追加。 ・ソケットのコードは重複部分を削除、C/C++で分かれていたコードをドロップ。
New controls and other major GUI additions for all ports 全ての修正とマイナーチェンジを羅列できないので、GUIの変更の概要のみ。 ・柔軟な表現が可能なwxDataViewCtrl/wxDataViewTreeCtrlを実装。wxListCtrl/wxTreeCtrlを一部代替。 ・wxGridの表形式はwxHeaderCtrlに分離したネイティブなヘッダを実装。 ・wxPropertyGridの追加。 名前-値のペアを表現する一般的クラス。 wxDataViewCtrlと同様、数値、テキスト、リスト、フォントなどの 組み込みのエディタ(in-place, ポップアップ、コンボボックス等)を提供する。 ・wxHyperlinkCtrlをGTKでネイティブに、他では一般的方法で実装。 ・ファイルダイアログのカスタマイズのためwxFileCtrlを実装。 ・wxRichTextCtrlに親・子スクリプトのサポートを始め高速化など色々改良。 ・wxTreeCtrlに状態アイコン表示機能追加。チェックボックス的にも使える。 ・wxCalendarCtrlを刷新しMSWとGTK+でネイティブに。その他改良。 ・wxTextCtrlとwxComboBoxでオートコンプリート機能を実装。 ・wxAUIのクラス群にwxAUIToolBarを追加。より柔軟で自然に。 ・wxBitmapComboBoxを再実装、MSWとGTKではネイティブに。 ・wxBitmapToggleButtonを全プラットフォームに。 ・wxStaticTextは全プラットフォームで省略表現をサポート、GTK+でマークアップ書式をサポート。 ・全プラットフォームでwxListBoxの選択イベントの発起方法を書き直し精確にした。 ・GTKとOSXでwxCollapsiblePaneをネイティブ実装。 ・複数行に渡ってwrap可能な新しいsizer、wxWrapSizerを追加。 ・OpenGlキャンバスにマルチサンプル、アンチエイリアスサポート追加。 wxGLCanvasとwxGLContext分離。 ・wxTopLevelWindowをネイティブウィンドウハンドルから構築するため MSWとGTK+にwxNativeContainerWindowを追加。
wxMac specific changes (now called wxOSX) ・wxMacという呼称は廃止、wxOSXと呼称、iPhoneとiPodを一部サポート。 ・Carbon, Cocoa, CocoaTouchの3つの一般コードに整理。 ・OSXのCoreFoundationへのラッパでったり一般的なクラスへのラッパだったり。 ・CarbonがwxMacのコアで安定していたが、iPhone対応にCocoa(Touch)が必要で、 64bitのOSXでは非推奨となるため、現在はCarbonでも今後はCocoaにフォーカス。 ・リストラクチャリングの一貫としてQuickDraw APIを使ったコードは削除。 今後はCoreGraphicsを使用する。 ・同様にOSX10.4にないCarbonの関数を使用したコードは削除。 OSX10.4が最低動作環境になる。 ・IconRefのサポート拡充。 ・英語以外のロケールでのメニュー項目の重複を修正。 ・ボタンにアクセラレータが使用可能に。 ・CFLocaleを使用したwxLocal::GetInfo()の実装。 wxGTK specific changes ・GTK+のAPIが後方互換性がなくなって来たためGTK+2.4を最低環境とする。 ・wxToolbarは新しいGTK+のツールバーAPIを使用。 ・wxChoiceはGtkOptionMenuでなくGtkComboBoxを使用。 ・wxComboBoxは非推奨のGtkCombでなく常にGtkComboBoxを使用。 ・URLのドラッグはwxURLDataObjectで"text/x-moz-url"を使用。 ・GtkPrintとCairoのダイアログを使用した新しいプリントバックエンド。 ・アイドルイベントの生成コードを書き直し。 ・タブの走査はGTK+でネイティブに。 ・wxFrameのメニューバー、ツールバー、クライアントウィンドウとステータスバーは GtkVBoxを使用したレイアウトに書き直し。 ・ウィンドウマネージャに帰属するウィンドウの装飾に係わらず トップレベルウィンドウSetSize()/GetSize()を正しく実装。 ・wxYield()の呼び出しを避ける(リエントラント問題回避)ため wxClipboardの非同期APIを追加。 ・Nokiaのタブレットで使われるMaemoプラットフォームの Hildonコントロールをいくつかサポート。
wxMSW specific changes
・後方互換性が確保されており、ユーザ数が多いため最も安定しており、
他のプラットフォームに比べ大きな変更はない。
・wxCheckListBoxがよりネイティブな感じに。
・長いツールチップが可能に。
・wxCheckBoxとwxToggleButtonで複数行ラベルをサポート。
・より正確なプリントプレビュー。
・サイズ変更可能なダイアログでリサイズグリップを表示。
以上、
>>294 曰く「御託だけで何もしない無職」の大雑把な訳でした。
305 :
300 :2009/01/12(月) 23:38:51
>>301-304 引き続きサンクス。wxOSXが結構面白そうに思えたんで、Mac Miniの中古でも
買ってみようかな。
あと、御託云々はあんまし気にしなくても良いと思うよ。
それよか、スタティックリンクでソース公開しなくてもいいwxWidgetsを使って
金儲けできると良いんだけど、クロスプラットフォームでお金になりそうなアプリって
どんなのだろ?どうにもイメージが沸かない。
2ちゃんでちょっと煽られたくらいでむきになるようだと 実社会で辛くないか
翻訳しただけでムキになってるとか決めつけるようだと 実社会ですぐ口論にならないか
まぁ、どう見ても煽られたのが原動力にはなってるがな
翻訳人は無能ではないことを証明したし 英語読めない人は3.0の改善項目がわかったし みんな幸せってことでいいんじゃなかろか
英語読めるようになりたいな
これからはアラビア語の時代だけれどもね。
312 :
デフォルトの名無しさん :2009/01/14(水) 13:11:27
つまらん、次
これからはアラビアゴムの時代だけれどもね。
MinGWでコンパイルしたwxWidgetsを使って minimal sampleを動かそうとしたんだが 意味不明なタイミングでSIGSEGVが出て起動すらしない ◆gdbのスタックのコピー スレッド [1] (中断中 : シグナル 'SIGSEGV' を受け取りました。説明: Segmentation fault) 9 wxFontMapperBase::Get() 0x0044e816 8 wxFontMapperModule::OnInit() 0x00546e3b 7 wxModule::DoInitializeModule() 0x00478632 6 wxModule::InitializeModules() 0x0047878c 5 wxEntryStart() 0x004bb64a 4 wxEntryReal() 0x004bb879 3 wxEntry() 0x00430e9e 2 WinMain() KirbyClone.cpp:117 0x00401406 1 main() 0x005340d1 ソースコードはほとんどそのままなんだけど、(少なくとも上に載っている関数は触ってない) 原因があるとしたらどこ?
それにしても、今日wxWidgetsの勉強を始めたばかりなんだが、 configureのオプションをいじると恐ろしいほどビルドに失敗するね disable系を何個かつけると高確率でmakeが止まる
316 :
314 :2009/01/14(水) 22:47:14
sample自体をそのままmakeすると成功するみたいだ となると、俺が自力で書いたMakefileが悪いのかな…
>>316 MinGW はさわったことがないので山勘ですが。
メモリマップの方法がライブラリと本体で違うとか?
商用版とGPL版しかなかったQtにLGPL版が出たね。 static linkできないのはちょっとアレだけど、なんかで使ってみてもいいかなー
このままじゃ対抗できないからwxもWt(ワット)に改称してキャッチーな感じで攻めようよ。
wxWidgetsにスタティックリンクしたプログラムをgdbでデバッグする。 コンパイル時に-gでデバッグ情報をつけるわけだが、 この時にライブラリの方もデバッグバージョンを使わないといけないのか? なんかリリースバージョンをリンクした状態でデバッグしようとしたら gdbが異常終了するんだが…
>>320 俺の環境ではデバッグ無しでビルドしたwxをスタティックリンクしてもgdbは問題なく機能したよ
もちろん自分で書いたソースの範囲内でね
gcc3.4.5 gdb6.8と、あとは大体新しいやつ
>>321 gdbを6.8に変えたらちゃんとエラーメッセージが出るようになった!
んで、開発にEclipse使ってるんだが、「共用ライブラリーシンボルを自動的にロード」
のオプションを外したら何もエラーが出ずにデバッグできるようになった
gdbのバージョンが古いと勝手に落ちる、「共有〜」にチェックつけてるとgdbが落ちる、
っていう前例も見つかったわ。
両方とも結構問題になってるみたいだ。
結果的にwxWidgetsは関係なかったな…でも解決したからいいや、ありがとう。
323 :
220 :2009/01/17(土) 00:26:59
すいませんお礼忘れてました汗 レスくださった方々ありがとうございましたm(_ _)m 結局ディスクがおかしかったみたいでchdiskで直りました。 ところで・・QTがLGPLで使えるようになるようですね。。 正直乗り換えるかもしれない(爆
>>323 いますぐ全部ファイルをバックアップして
HDD とりかえたほうがいいと思う
ハードディスクは消耗品だからいちど壊れはじめるとはやいよ。
不治痛のHDDは壊れやすい 凍死場に九州されるみたいで不安
挙動が怪しいHDDはマジやばい ファイルシステムが壊れてるだけならいいけど 物理的にエラーがでてて代替セクタとか使い出すと 見た目普通のままコロっと逝く時があるよ 初心者でも使いやすくてHDDの状態が大体わかる CrystalDiskInfoを勧めちゃう
CrystalDiskInfoって確かMFCで作られてるから wxWidgetsでクロスプラットフォーム化するのってそんな手間じゃないのかな。
ここのところ wxpython-usersに Subject: will Qt mean the end of wxPython ? っていうメールがめちゃめちゃ流れててワロタ
APIはQTのほうがすっきりしているからな。 モッサリだけど。
少くともQtでOS毎に自然な外観提供できて 複雑なライセンス体系が無くならない限り移行はできないなあ。。
LGPLになったんだから、ライセンス簡単だろ?
>>332 結局商用アプリ作るとかになったら、どうせ金クレクレモードに突入するじゃん。
LGPLだと無問題だお?
>>334 すまん、よく調べたらそうだった。
商用版も継続するってことは結局商用には使用料とるのかと思ってたよ。
こりゃやばいなwx。。
C++でクロスプラットフォームGUIライブラリが充実する
って流れは大歓迎だけどね。
wx使う前はイメージヨカタんだが、IDEが悪いせいかMFCっぽくコントロールに連番ふってて、ダメだこりゃとオモタ。 この辺、Qtで解消すんのかなぁ?
統合開発環境が簡単にインストールできれば、wxも生き残れるだろうが、 今のところ、qt 優勢。
俺はEmacs使うからIDEはいらんから、軽いRADツールがあるのが一番かな。
良RADさえあれば一気に巻き返せそうな気はするんだが
wxのRADって有力なのはDialogBlocksとwxFormBuilderぐらい? 俺はここ来るまでwxGladeとXRCedしか知らなかった。 ウェブ検索してもこれ以外あんまり引っかからなかったし。
あー,そういえば最新のDialogBlocks(4.29)で プロジェクト開ける人いる? linuxで引数としてプロジェクトを指定すると can't open /hoge/moge/"hage.pjd" 的な事を言われる. ダブルクォーテーションのせいかしら.
IDEとしての方が意味が大きいけどCode::Blocksも入るんじゃない? ただし作業自体はRAD的でもXRCじゃなくコードが挿入される形だけどね あのコード見るとJavaでGUI作るときの苦々しさを思い出す・・・
code::blocksはQtのプロジェクトも組める。あれでRADに dialogblocks程度の操作性があれば良かったんだけど。 吐くソースはcode::blocks(wxSmith?)の方が親切な気がするし。
>code::blocks 操作感が気に入らない゚听 wx-devcppの操作感が好き。 吐き出すコードは?だけど。
>>344 wxSmithが我慢出来ない人はwxFormBuilder使うといいよ。
イベントもconnectとEVENT_TABLE選べるみたいだし、
とりあえずSizerの領域を均等に割り振る様な事もない。
wxGlade、DialogBlocks、wxSmith、wxFormBuilderと触ってみたけど、
操作性はDialogBlocks、ソースはwxSmithがいいと思った。
ソースはユーザーの弄り易さだけで、質はまだよく判らないんだけど。
それよりcode::blocksはnightyなんて出してないで、判りやすいバグを
放置したリリース版をリプレースするべきだ。
30分も触ると落ちるのは、どうかしてる@win32
30分さわって強制終了なんて一回も経験したことないな 特定の使い方をして落ちてるか、環境が悪いかのどちらかじゃないか?
DialogBlocks人気っぽいから入れてみたけど 軽快だし操作感がやたらいいな。
348 :
344 :2009/01/22(木) 11:37:56
そんなに沢山の選択肢示されても、無理。
>>346 Thread searchタブを右クリックしてThread searchのチェックを外すと
マウスオーバーでThread searchの部品が浮かび上がる。
あるいはScript consoleタブにThread searchのレイアウト(のみ)が表示される。
その後view menuからThread searchのonoffを行えば1分も経たずに落ちる。
他にも2byte圏のlocaleを使用するとhelp pluginが動かなかったり。
30分はwxSmithとbuildのみを使用して落ちる時間。
日本語化すると少し挙動が変わるから、その辺も不完全みたいだ。
以上は自宅のwindows xp sp3及び2000sp4での話。
落ちた事が無い=ほとんどまともに使ってない、と理解する。
>>347 動作自体はかっちりしてる。editorはscintilla使ったcode::blocksの方が高機能だけど。
>>350 日本語化して動作が不安定になるなら、英語版を使ったほうがいい
日本語版と英語版で使い勝手に差が有るなら、日本語化を行なっている作者に文句をつけるべきだ
どうやら話し口調からして、いくつか特定の「落とし方」を知っているようだから、
それらをまとめて公式のフォーラムで報告することをおすすめする
オープンソース系のソフトを「まともに使っている」と自負できる人間なら、自分で修正してビルドするのもいい
一ついえることは、ここで文句を言っても、お前を含めて誰も得をしないということだ
>>351 トラブルは全て英語の話で、日本語化もgettextを使った物だからbuildは一緒だ。
そもそも初めて使って5分で出る症状を、1年近く経ってから一々報告してどうする。
30分じゃ落ちた事がないと、使ったこともない奴が宣ってるから、実例を上げただけで、
ある情報に対しての損得は、その人次第だろう。
ひさしぶりにwx-Devcppのサイト覗いたらバージョン上がってるんだけど、 使っってる人いたら教えてください。正常にデバッグができますか?
>>352 何か勝手に「使用経験なし」だと思っているようだが、
俺はCodeBlocksを使って何本かソフト作ったことがあるぞ?
それこそ強制終了など一度も経験せずに。(むしろgdbがよく落ちた記憶がある)
報告してどうするって、バグフィクスを期待するに決まっているだろう
ユーザーがバグ報告するというのはソフト制作の大事な一環じゃないか。
修正とまでは行かなくとも、バグ回避の方法が製作者から聞けることだってある。
「文句を言うという行動は生産的ではないから、自分で何かしら行動したほうがいい」
ということがいいたいのだ。
とはいっても、こんなことは2chで言うべき言葉ではなかったかもしれないな
俺もcode::blocksが落ちたことはないな 特定のペインが表示されなくなって困ったことはあるが
WindowsのMinGW-5.1.4とMSYS-1.0.10を入れた環境で、wxWidgets-2.8.9をconfigureした後makeしたんですが、下記のようなエラーが出て先に進まなくて困っています。 0 [main] sh 2996 open_stackdumpfile: Dumping stack trace to sh.exe.stackdump ご助言を頂けないでしょうか。
WindowsだったらVisual Studioでやったらいいと思うんだけど
せっかくフリーで可搬的なライブラリ使ってるのに Windows上でだけ特別にVSなんか使いたくないわな。
とりあえず
>>356 のエラーメッセージは糞の役にも立たないわな。
役に立たないレベルでは50歩100歩だが、同様の環境でwxWidgets-2.8.7はビルド成功してるんで参考までに。
configureやdumpの内容も書いてない状況でした。 失礼しました。 同様の環境で出来たとのお話もあったので、 ライブラリ周りを見直してみたら上手くいきました。 助かりました。ありがとうございます。
マウスイベントでWindowsAPIのSetCaptureに相当するものってあったっけ?
自己解決 CaptureMouse(); ReleaseMouse();
マウスの動きに連動して描画させると 非同期に描画命令が発行されるんだけど つまりマウスの動きに合わせてPaintイベントが何度も呼ばれる 全部処理してから最後の描画が終わるまで画面が更新されない そのせいでマウス移動中に画面がぐちゃぐちゃになるんだが 完全に表示が終わるまでマウスを動かなくするとか 他の描画が来たらそれ以前のはすべてキャンセルさせるとか出来ないの?
>>363 他からPaintイベントが出るなら
マウス操作中は自分だけが処理するように
OnPaintを自前で用意すればいい。
マウスの移動だけではPaintイベント出ないとは
思うんだけど…
マウスの動きに連動して描画させると
描画(が何してるかわからんけど)でOnPaint出たっけ?
>>363 マウスイベントハンドラで Refresh() を呼んでPaintイベント出してるとかいった状況?
もしそうなら、Refresh() 呼んだ直後に Update() 呼べば、同期的に画面更新できるよ。
(つまり、Update() から戻ってきたときにはPaintイベントが処理されて、画面更新が終わってる)
>>367 マニュアル見る限りではUpdate()呼ぶならRefresh()要らんと思う
>>368 マニュアルのUpdate()のとこに、
Use Refresh first if you want to immediately redraw the window unconditionally.
ってあるから、Refresh()いると思うよ。
無効領域がない状態でUpdate()しても何も起こらないと書いとる。
ごめんRefresh()のinsteadだけ見てた
質問があります。 ボタンの上での右クリックイベントを捕捉したいのですが、 button->Connect(ID_RIGHT_CLICK, wxEVT_COMMAND_RIGHT_CLICK, wxCommandEventHandler(MyFrame::OnRightClick), NULL, button); としてもうまくいきません。 どうすればよいでしょうか。
>>371 OSは何? wxEVT_COMMAND_RIGHT_CLICKは Windows 95 and NT のみサポートらしいよ。
wxEVT_RIGHT_UPあたりで妥協しとくのが無難かもしれん。
>>371 あ、Connect() の最後の引数はbuttonじゃなくて、thisとかじゃない?
eventSink引数には、イベント発生元オブジェクトじゃなくて、イベントハンドリングするオブジェクトを渡す。
だから、この場合はMyFrameオブジェクトを渡さないといかんです。
>>372 OSはWinXP Home Editonです。wxEVT_RIGHT_UPにするとイベントを捕捉できました。
ありがとうございました。
>>373 eventSinkにはMyFrameオブジェクトをわたせばいいのですね。
ありがとうございました。
タイマーイベントを使っていて反復実行している時 処理が混みだすとイベントがキューに溜まったような 状態になり他のイベントをリアルタイムに実行できなく なります。 溜まったイベントを削除する方法はあるんでしょか。
>>375 タイマー間隔を少し長くするか、wxIdleEventでRequestMore() しまくるなんてのはどうかな?
たまったイベントの削除関数とかは見かけたことないなぁ(あるかもしれないけど)
377 :
375 :2009/02/01(日) 17:54:01
回答有難うございます。 Win32APIにはイベントを削除する方法があった気がしたので どうかなとおもったんですが。 時間管理を見直してみます。
一番良いIDEは? ダイアログイパーイ作る場合ね。
Sizerの使い方を覚えたら、もうバカらしくてGUIで ダイアログ作ろうだなんて思わないけどね
コードでGUIを設定するのがバカらしいというのが一般的だが。
RADどれ?って質問だったら万人に薦められるのはwxFormBuilderくらいなんだがな RAD単体でPythonいらずってとこから IDEとなると自分で全部試せとしか言えない
>wxFormBuilder ラジャ 使ってみるお。
383 :
323 :2009/02/10(火) 14:06:40
384 :
デフォルトの名無しさん :2009/02/11(水) 15:15:05
wxFormBuilderって、コンストラクタでnewしたインスタンスを デストラクタでdeleteしてくれないんだけど、これは自分で書くの?
自動でdeleteしてくれるライブラリ(スマートポインタとか)使わないなら newした分だけdeleteするように書くしかないよ
公式つながんない。
wxDevC++! ごめん嘘
↑ 何がウソで何がホントかハッキリしる!
>>384 SizeにAddしたオブジェクトは勝手に削除される。
自分でdeleteしちゃだめ。
sizer.cpp の551行目
ひょっとして
>>384 はGenerate Codeで吐き出されたコードに追記しようとしてるのか?
Generate Inherited Classで継承したクラスに自分のコードを書くのが正しい使い方だぜ?
そうじゃないと細かい修正でGenerate Codeしたらまた書き直さなきゃならないだろ
391 :
384 :2009/02/12(木) 23:12:05
>>390 いや、継承して書くのはわかってたけど、吐き出されるコードも
読んでおこうと見てみたらdeleteしてなかったので、
どうすんだろうなぁと。
で、
>>389 で納得しました。
ありがとうございました。
wxWidgetsはフレームワーク側で色々ゴニョゴニョしているから 正直、自分で組んでて不安になって来るんだよな。細かい挙動とか、特に。
Mac OS X 10.5にデフォルトで入ってるものを利用し、簡単なプログラムを組んだんだけど、 実行すると固まって操作できないのはそういうものでしょうか。 最新2.8.9のものをmakeして利用すれば問題ないのでしょうか。 っていうか、wxOSXっていつ頃になるの? それからWindows上でwxFormBuilderを使ってみたのですが、 イベント部のコードを吐いてくれるのはいいけど、 マージしてくれないので、使いにくい。 そうゆうもんですか。 DialogBlocksは有償だけあって使いやすかったけど、レジストしてないから制限に引っかかる。 金ないからorz なんかいいGUIのBuilderが欲しいと思った。
>>394 あ、そうなんですか。
Makefile書いてメイクしたのですが、minimalサンプルみたらxcodeのファイルがありますね。
MacはMacの作法にのっとってオブジェクトを配置しないといけないんですね。
ちょっとやってみようと思います。
因に私がやったメイクは、LinuxのwxGTKを使うように、
wx-config でインクルードとライブラリをあててmakeしました。
wxMacを特別に入れた記憶はありません。
>>395 なるほど、wxPerl とかだけでなくて wxWidgets そのものが
デフォルトでインストールされてるんですね。そりゃそうか。
もうすぐ2月が終わる 2.9.0来るかなぁ
Eclipse CDTでwxしようとしてるんですが、ビルドとかは問題なくできるものの 補完のためのインデクサが Syntax error: DECLARE_EVENT_TABLE(); とかポップアップしてきて機能しません。 ビルド自体には影響してませんが、これだとエラーと非エラーが混ざって 使い勝手が悪いので、なんとか正常に処理させたいのですが、同じように 困ってる話は見つかっても解決方法が見当たりません。 どうすればいいでしょうか?
wxPython2.8のAnimationが返す値おかしくね? DisposalMethodがどうも-1ずれてるみたいし BackgroundColourもなんか変だ 俺のだけ?
ソースあるんだから自分で調べたらいいじゃんか
うんその言葉で読む気になったわ 、で-1ずれてんのはcoincideだってさ BackgroundColourは最初のフレームから 背景色に初期化しなかった俺のミス ここで聞くよりソース読んだほうが 確かに早いけど誰もその情報は共有できん のだ いい意見有難う
402 :
デフォルトの名無しさん :2009/03/10(火) 10:16:05
質問 レイアウト制御において Sizer > Panel > Sizer Sizer > Sizer ってやっぱり違うんですか?( > は入れ子の関係を表してます) コントロールをまとめる枠としての Panel の存在意義がイマイチわからないっす。
Panelは子コントロールの親になる Sizerはあくまで下層要素のサイズを制御するだけ
>>403 ありがとうございます。
単にレイアウトを制御したいだけなら Sizer を直に入れ子にして、
コントロールを論理的にグループ化したい場合は Panel でまとめる、という感じですね。
405 :
デフォルトの名無しさん :2009/03/11(水) 08:02:25
いつも使ってて思うことなんだけど、Sizerというクラスをなくして レイアウトの機能もWindowに含めてほしい(統合してほしい) そうなっていないということは、そうすると何か問題があるのだろうか
406 :
405 :2009/03/11(水) 08:03:13
ごめんageてしまった
>>405 コントロールのレイアウトのためだけにWindowを入れ子にするのは
メモリ効率が悪いからじゃないでしょうか
だからレイアウトアルゴリズムだけをクラスとして抜き出して Sizer なんてものを
作ったのでは
レイアウトアルゴリズム増やそうとする度に wxWindowクラス書き換えて肥大化していくのは困るでしょ
GoF でいうところの Strategy パターンというやつだな
410 :
デフォルトの名無しさん :2009/03/13(金) 19:16:34
質問させて下さい。 wxRuby でちょっとした GUI ツールを書いているのですが、 ウィンドウを close してアプリを終了してもプロンプトが返ってきません。 ウィンドウを XRC から作るように変更したところでこのような 現象が発生するようになりました。 具体的には Wx::XmlResource.get.load_frame_subclass(self, nil, "MyFrame") があると上記の問題が発生します。 on_exit も呼ばれず、どうも何かが解放されずに残っていてアプリの終了を 邪魔しているような印象です。 どのような原因が考えられますか?
411 :
410 :2009/03/13(金) 19:18:34
補足 ウィンドウはきちんと表示されており、イベントハンドラの設定もうまくいっています。
412 :
410 :2009/03/13(金) 22:04:27
CloseEvent に対するデフォルトのハンドラが呼ばれなくなったと推測 XRC からリソースをロードした段階で CloseEvent をトラップする別のハンドラが 設定されたのか? よくわからん。調査続行 どなたかヒントでもあればお願いします m(__)m
413 :
410 :2009/03/13(金) 23:24:53
evt_close {|event| exit } でとりあえずプロンプトは戻るようになった。
俺もその現象あった XRCは使ってなかったけど、Frameのサブクラス作ったからそのせいかも
415 :
410 :2009/03/14(土) 11:31:46
>>414 自分も Frame のサブクラス作ってますが、それだけでは上記の問題は
発生しませんでした。
GUI が複雑になってきたので XRC をロードするように変更したところ
close でプログラムが終了しなくなりました。
閉じられるウィンドウが最後の一枚だったら exit というハンドラを自分で
設定すれば元の動作に戻るはずですので、そうしようと思ってます。
416 :
デフォルトの名無しさん :2009/03/19(木) 19:09:19
なんで SetCellAttr はないんだ? セル単位で制御したいのに まあ、自分で書いたらいいだけだけど
2.8.10安定版リリース
保守総一郎
419 :
デフォルトの名無しさん :2009/03/31(火) 21:23:43
Qtに流れ始めたかのぉ??
最近 wxWidgets 使い込み出したのに廃れてもらっては困るぜ!
廃れてるんじゃなくて、枯れてんだよ。 だから安心して使うがいい。
Qtとどっちがつおい?
字面でみると wxWidgets の圧勝w Qt のクラス名って全部 Qなんたらで間抜け面 きゅうりのQちゃんかよw
その発想は全くナカタ
ガンダムだって WX はあるけど Q はないしなw
ここはデスクトップアクセサリを作る人も見ていいところですか??
と思ったけど、なんか違うみたいですね? あのYahoo! Widgetとは別もんですか。
全然違うよ。 これはクロスプラットフォームなGUIライブラリ。 アプリケーション全般を作るためのライブラリ
429 :
デフォルトの名無しさん :2009/04/04(土) 19:59:33
素朴な疑問 wxWidgets ってウィンドウを座標(-1, -1)に配置できなくね? というか、DEFAULT_POSITION と座標(-1, -1)を区別できないような…… 実用上困ることはないけど、デフォルト値がなにかと -1 なのはどうかと思った。
最小値が -1 の GridCellNumberEditor も作れねえ サブクラス作りなさいってことか
431 :
デフォルトの名無しさん :2009/04/11(土) 17:18:38
ブラウザコントロールって何かお勧めありますか? Windows, Linux両方でまともに動くやつで。
>>431 使ったことないけどwxHtmlWindowってのがあるね
ライブラリビルドでwx.dswとwx_dll.dswの違いって何ですか?
static linkとdynamic linkの違い 前者は実行ファイルが巨大になる 後者は実行ファイルは省サイズだが配布時にdllを含める必要がある
Ubuntu8.04、C++で開発してます。wxGLCanvasで点を描画したいのですが、 glPointSizeで点のサイズを3に設定して描画しても点のサイズが1と変化がありません。 ちなみに、fedora9, Vmware用のUbuntu8.04では意図どおりにサイズが変更されます。 下のようなコードなのですが、同じような経験をされた人いませんか? void MyFrame::OnPaint(wxPaintEvent& event) { gl->SetCurrent(); glPointSize(3); glClearColor(0.f, 0.f, 0.f, 0.f); glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_POINTS); glColor3f(1.f, 0.f, 0.f); glVertex2f(0.f, 0.f); glEnd(); glFlush(); gl->SwapBuffers(); }
glGetIntegervでGL_POINT_SIZE_RANGEの値を調べてみては?
TreeCtrl上でキー入力すると最初の文字がマッチした項目に移動するんだけど、この動作って無効にできない? Keydownイベントとか設定しても、マッチしないキーを押すとポンポンエラー音みたいなのが鳴ってうっとうしいんだよね・・・
>>437 イベントを skip しなければいいのでは?
439 :
437 :2009/05/21(木) 15:16:31
>>438 特にskipする記述はしていないのですが、上記の動作をしてしまうんです。
明示的にskipしないようにする記述がいるのでしょうか?
なんかkeydownイベントの前に動作している気がするんですが、他の箇所に書く必要があるんですかね?
まだあまりよくわかってないので質問ばかりになってしまい申し訳ありません。
wxではあまり細かいことは気にしないのが吉。 下のレイヤのデフォルト動作の違いによるプラットフォーム間での差異とか結構あるし。
441 :
437 :2009/05/22(金) 12:46:37
>>440 なるほど、そうゆうものと割り切った方がいいんですかね。
なんか方法があるだろうと思ってはまってたんで、ちょっと気が晴れました。ありがとうございます。
結構細かいことをやりたかったんで、他のものも含めて考え直してみようと思います。
QTとかどうなんですかねぇ。似たような感じもしますが・・・
>>441 Qtはwxとは思想が逆。OSネイティブGUIアプリとの違いは出やすいが
自作クロスアプリでのOSごとの違いを少なくするのはやりやすい。
↑ 分かるようで分からない文章だな
どこがわからない? そのOSの他のソフトと同じような動作にしたい→wx OSが何であろうと同じソフトなら同じように動作させたい→Qt ならわかる?
文章は分かったが、実態は分からないw
少なくとも
>>441 の疑問には即してないな
俺はどうでもいいが
447 :
441 :2009/05/24(日) 16:59:35
Qtいろいろ試してみました。 442さんのおっしゃるとおり思想の違いなのか結構細かいことまで設定できるようです。 キーイベントはデフォルトの動作を上書きできるみたいですね。 ポンポンエラー音みたいなのも鳴らないし、いい感じです。 Qt Creatorが使いやすくてレイアウトがとっても楽なのもうれしいですね。 ここにQtのことを書くのはあれなんでこれぐらいにしときますが、自分の要件には合ってる気がするんでこれでいってみようかと思います。 遅くなりましたが以上報告でした。お騒がせしました。
そうかそうか。おれはどっちも好きなんでガンバレ。
そういうわけで、俺と
>>441 の間では通じてたようなのでOKだな。
ウックス
すみません、2.8.8をスタティクライブラリとしてコンパイルするにはどうすればいいのでしょう。 調べてはみたのですが、DLLにするやり方しかのっていないのです。
install.txtとかくらい読め
>>452 すみません、なにしろ初心者なものでして…
>>453 申し訳ない、環境はWindowsXPでCode::Blocksで開発する予定です。
すみません、家帰って
>>452 さんのいっていたやつ読んだら解決しました。
ちょっと首吊ってきます・・・
ようやくスタートラインに立てたんだから がんばれよー
みなさんシリアル化とかどうしてます?
wxWidgetsを使った日本発のオープンソースプロジェクトってありますか? もしあれば参考にしたいので教えてください。
ありがとうございます。wxRubyやwxPythonじゃなくて C++のを探していたのですが、あまり見つからないですね。 MalonNoteというのがあったので見てみます。
wxPython の wx.lib.floatcanvas と同等の機能を持った wxWigets の C++ ライブラリってないでしょうか?
2.8.10を使っていますがJaneStyleのスレ覧タブみたいなものはなんていうコントロールなのでしょうか?
>>462 標準のだと wxNotebook
拡張されているのは wxFlatNotebook
wxMSW-2.8.10を使っています。 wxMessageBoxやwxAboutBoxを使うとビープ音が鳴りますが これを鳴らさなくする方法はありますか?もしかしたら wxWidgetsじゃなくてWindowsが出してるのかもしれませんが。
>>465 うん、出しているのはWindows。
それが嫌なら wxDialog あたりを継承して自作するのが楽だと思うよ。
>>466 ありがとうございます。自作することにします。
クロスプラットフォームなアウトライナーみたいなのを作ってます wxRichTextCtrl使ってみようと思ってサンプル動かしてみたんですが wxGtkではwxRichTextCtrlでインライン入力できないんですか?
>>468 wxGTK は触ったことないからなんとも言えないな〜
wxWidgets は IME 関連の制御をしていないと思うから、
なんらかのメッセージを処理すればいいんだとは思うけど。
wxWidgets 3.0っていつごろリリースされそうですか?
wxFormBulderって生成するコード変じゃね? ダイアログにボタンが一個だけのプログラムを書いてみた。 ダミーのイベントハンドラをvritual宣言しておくから、 サブクラスを作って、そこにボタン処理などの本来のイベントハンドラを まとめて書きなさい、という方針はすばらしい。 けど、登録するイベントハンドラのアドレスが、サブクラスのアドレスじゃなくて、 継承元のダミーのアドレスでは、飛ぶはずないじゃん。 作者、なにを勘違いしているんだろ。 さわり始めて2日目の俺のほうが勘違いしている?
475 :
473 :2009/08/15(土) 17:39:20
Code::Blocks 調べました。ちゃんと動きました。 ubuntuだと日本語が入力ができないとか、 標準入出力を扱うウィンドウがないとか、 多少ありますが、素晴らしいと思いました。 進歩しているんすね。癖になりそうです ありがとうスッ。
476 :
デフォルトの名無しさん :2009/08/27(木) 13:32:21
元となったデザインがMFC構造で古すぎるので消えるって、本当でつか?
yes
Ou voyez vous?
wxCode の wxCurlって使ってる人いますか?
どうにもこうにもSetOptが効かなくて困ってます。
wxCurlHTTP http("
https://hogefugamoge.jp ");
http.SetOpt( CURLOPT_USERAGENT, "MyUserAgent" );
http.Get( filepath );
って感じでやってるんですが、何事も起きなくて・・・・
SetOptのreturnはtrueなんで、wxCurl君は正常に処理してるつもりっぽいのですが・・・
ちなみにSSL通信がしたくてwxCurlを使ってるんですが、
他のライブラリでもSSLでPUTとかDELETEとかできればそっちでもOKです。
すみませんがよろしくお願いします。
481 :
480 :2009/09/08(火) 00:40:33
すみません書き忘れです。 wxWidget本体は wxMSW 2.8.10 wxCurlはsvn版 ( 2009-09-01にsvnリポジトリからダウンロード ) 開発環境は Code::Blocks 8.02 mingw同封版 です
482 :
480 :2009/09/08(火) 05:44:40
すみません やっとこさ自己解決しました。 どうやらどのHTTPメソッドを発行する関数でも、 SetCurlHandleToDefaults という関数でヘッダー諸々の初期化を行っており、 wxCurlHTTPクラスを継承したクラスを作り、 この関数をオーバーライドしてやらないとダメみたいです。 似たようなことをwxCurlBaseを継承したwxCurlHTTPで行っているので、 それを参考にすればOKかと。 お騒がせしましたー
すみません すみません すみません omedeto-
VC6だけじゃなく、VC7からVC9までのプロジェクトファイルがある! こいつは嬉しい。
初心者なのでつまらない質問でスマンけど... wxWidgetsをビルドする時、makeのオプションでBUILD=debugにすると、デバッグバージョンの ライブラリがビルドされるけど、これってwxWidgets自体をデバッグしたい時だけに必要で、 wxWidgetsを利用するアプリ側だけデバッグしたいときはreleaseバージョンのライブラリ 使ってもいいの? それともアプリをデバッグする場合(Step inでwxWidgetsのコードに入っていかなくても良い場合)でも、 ライブラリはdebugバージョンじゃないとダメなの?
yes
no
wxWidgetsというよりコンパイラやライブラリの仕様によると思うけど MSVCみたいにデバッグ用のランライムライブラリがある場合 アプリとライブラリでdebug/releaseを別にしちゃうと リンクするランタイムライブラリが別になるから スレッド関連とか例外の取り扱い、スタックフレーム、 その他リソースを確保するコード等でおかしなことになるかもしれない 例えば、メモリリークを検出するようなデバッグ機能がある場合 ライブラリで確保したメモリをアプリで解放したりすると 管理情報の整合性が取れなくなるかもしれない
リリースバージョンじゃないとwxASSERTとかそのへんも効かなくなるから デバッグやるならデバッグバージョンの方がいいんじゃない
491 :
486 :2009/09/14(月) 13:50:52
皆さんレスサンクス。素直にdebugバージョンとreleaseバージョンをbuildして使い分けることにします。
そこらへんCodeBlocksとかwxDevC++とか使ってみると参考になるかもよ
ダイアログ上に置いたwxStaticTextの表示/非表示をボタンで切り替えるようなことを やろうと思って,wxBoxSizer(wxVertival)をダイアログ上に縦に並べて,上のサイザーに 表示/非表示するwxStaticTextを入れ,下のサイザーに切り替えボタンを入れたんだけど, wxStaticTextのスタイルをwxST_NO_AUTORESIZEにしておいても,Hide()とかShow(false)を 呼ぶとStaticTextそのものが消滅してしまうようで,配置が狂ってしまう。 非表示の場合はSetLabel()で空文字を設定し,表示する場合は表示したい文字を設定すれば 一応できることはわかったんだけど,もっとスマートなやり方ありませんか?
494 :
493 :2009/09/14(月) 18:03:47
>>493 自己レス。StaticTextの入っているBoxSizerにSetMinSize()で最小サイズを設定してみたけど
やっぱりダメ。
StaticTextのHide()をダイアログのコンストラクタからOnInit()移動してみたけどやっぱりダメだ。
どうすればいいだろ?
とりあえず俺はLayout()呼んで一応うまくいってる
496 :
493 :2009/09/15(火) 10:45:08
>>495 Layout()でうまく行った。よく読むとヘルプにも書いてあるね。サンクス。
しかし,サイザーを使いこなすのは難しいなぁ...
またまた質問させてください。 sizerを使って,DialogやFrameのサイズを中身にあわせるというのはわかったけど, 逆にDialogやFrameのサイズを固定にしておいて中身を配置したい場合もあるでしょう? wxWidgetsの設計思想に反するのかもしれないが,うまいやり方はありませんか? Code::BlocksやwxDev-C++でいろいろ試してみてるけど,うまく行かない。 Frameの中にBoxSiserを貼って,その中にPanelを貼ってパネルのサイズを設定し, さらにその中にBoxSizerを貼ってみたけどやっぱりダメだった。 LaTexの\vssや\hssみたいに,自由に伸び縮みできる要素があれば出来そうなんだけど...
sizerを使う
499 :
497 :2009/09/15(火) 13:45:53
>>498 いや,sizerを普通に使うと,DialogやFrame全体のサイズが中身に合わせて変わってしまうでしょう。
sizerをどう使えば全体のサイズを固定に出来るのか教えてください。
見えない色にしたStaticLineをつっかえ棒みたいに入れるとか,いろいろ考えてはいるんだけど,一般的には
皆さんどうやってるのか知りたい。
expand
>>499 Sizerを使わない
ウロだけどCodeBlocksのwxSmithならSizer置かなくてもポトペタできるはず
あと最近はCodeBlocksに移っちゃったからこっちもウロだけど、wxDevC++もSizerなしでポトペタできるはず
502 :
497 :2009/09/15(火) 18:59:43
>>500 ,
>>501 サンクス。やってみます。
あと,C::BだとFrameのコンストラクタ内に生成されるコードの後で,SetClientSize()を呼ぶ手も
あるみたい。つーか,Frame内にsizerを追加するコードの前にSetClientSize()が自動で記述
されてしまうのが,原因のような気もする。
>>502 ちと手元に資料がないんだけど、幅と高さだけを指定する
空の Sizer がなかったっけ?
そいやCodeBlocksのwxSmithで、 メニューに項目追加って出来無くない? いくらやってもメニューバーと同じ階層に子メニューついかされちゃうんだけど・・・
>>504 亀レスだけど,MenuBar editorで同じ階層に新しい項目を追加し,それを選択しておいて > ボタン
を押すと一つ下の階層に移動するよ。
質問の意味がイマイチはっきりしないけど,メニュー項目の下の階層に子のメニュー項目を
追加したいって意味だよね? File->Open みたいに。
>>484 2.9.0のsetup.hを読むと,wxUSE_UNICODE のところに「ANSIモードはobsoleteで,将来
なくなるぞ」って脅しが書いてあるな。
3.0ではANSIモードは削除されてUNICODEだけになるんじゃないか?
wxWidgetsが依存しているlibsdlがx86_64でようやくコンパイル通るようになったと思ったら libsdl_mixerで死んだ。
2.8.10なんだけど、外部アプリケーションを実行するクラスってある?
wxExecute wxShell
wxWidgetsのunicode対応ってサロゲートペアに対応してる?
>>505 ほあああ!!
THX!!
メニューバーエディタなるものの存在を知りました。
wxwigets2.8.1ってtdm版gcc4.4.1でコンパイルできる?
>>513 2.8.1じゃなくて2.8.10だよね。TDM版MinGWでコンパイルは可能だけど,4.4.1は問題があるので
一度4.4.1をインストールしておいて,後から4.3.3のcoreとg++のZIPファイルだけをダウンロードして
上書きしてから使うのが良い。全部TDM MinGWのHPのトップからダウンロードできる。
もちろん4.4.1のインストール時にcoreとg++をインストール対象から外しておいてOK。
何が問題なのかは,「Cygwin + MinGW + GCC相 談室 Part4」の最近の書き込みを見て。
簡単に言うと,コンパイルした.exeの実行がやたら遅くなる。
TDMのサイトの上の方にも[WARNING!]として書いてある。次期バージョンでは多分
解消されるんじゃないかな。
TDM氏はCode::BlocksのForumによくカキコしているから,当然wxWidgetsとの相性もよくなる
ように考えているはず。
自分のアプリケーションがいまどこのディレクトリに存在するかを取得する関数って何?
_argv[0]から実行ファイルのフルパスを取得して,最後のファイル名部分(なんたら.exe)だけ 削除すれば得られるでしょ? 別にwxWidgetsに限った話じゃないと思うが... それともwxWidgetsにそういうユーティリティ関数がないか?って話? wxAppにargvってメンバ変数があるし,GetAppNameってメンバ関数が あるから使えるんじゃないか? 試してないけど。
wxStandardPaths
519 :
515 :2009/09/28(月) 21:01:42
pwd()
カレントディレクトリと勘違いしてるヤツが多いな。
__file__
それはプリプロセッサが現在処理中のファイル名に置き換えてくれる 定義済みマクロじゃないのか? __file__ じゃなくて __FILE__ だと 思うけど。
os.path.fullpath(__FILE__)
コンパイル後、実行形式ファイルを他ディレクトリに移動したらアウツじゃねーの?
no problem
WINDOWSで,wxWidgetsを使ってアプリをタスクトレイに入れる方法はありませんか?
あります
具体的に教えてください。
調べたらわかりました。
なんか変なのが住みついたな。
>>520 から偶数番号のレスしてるやつ。
お、俺じゃないぞ!
533 :
527 :2009/10/08(木) 08:04:46
自己解決しました。 wxTaskBarIconから派生させたクラスを作って使うんですね。 サンプルの taskBar にありました。
えーっと、軽く質問なんですが・・・ wxWidgetでは、二つ以上ウィンドウを表示するソフトを作ることはできますか?
できます。
楽勝です
もしかしてMDIのことを言ってるの?
wxPerlの話題・質問はここでいいんでしょうか? ここはC++限定?
内容によるんじゃなかろか とりあえず書いてみたらいかが
>>539 ああ、それなら wxPython の方が簡単に出来るよ。
C++限定じゃないと思うけど、C++とPython以外のことは 俺には答えられないぜ!
543 :
デフォルトの名無しさん :2009/10/13(火) 19:23:06
頭のいかれたとても恥ずかしい人は放置した方がいいぞ
どうせ大半の話題は共通するんだから wxPerlだろうとwxRubyだろうとwxBrainf**kだろうとここで問題なし ただし言語に由来する質問は答えられる人が居ない可能性あり
545 :
535 :2009/10/14(水) 23:22:35
Show(frame)を二つ作ったら楽勝でした。ありがとうございます。
546 :
デフォルトの名無しさん :2009/10/15(木) 16:22:53
wxPython でのサンプルを読んでまず適当にフレームを 表示させて描画してみているんですが,いくつかのサンプルにて wx.Frame や wx.Panel の __init__ への引数として 1)親ウィンドウがNoneというのはどういう意味でしょうか 2)id = -1となっているのはどういう意味でしょうか 意味もわからずとりあえずそうするとフレームは表示されますが・・
Frameの中にPanelを置いてPanelの親をFrameにしたときと しなかったときを比べてみれば分かる idはアクセスする必要がなければとりあえず-1
548 :
デフォルトの名無しさん :2009/10/15(木) 16:43:16
>>547 ありがとうございます
あれこれいじりつつあるんですが
wxPython では stdout と stderr がコンソールではなく
何か特別なウィンドウに奪われてしまうみたいです。
すぐに消えてしまって例外のメッセージが見えないのですが
普通にコンソールに表示するようにはできるのでしょうか?
ちなみに環境は Windows 上の Eclipse + PyDev でやっています
一番手っ取り早いのはcmdの中でhoge.pyを実行
Panel の parent を None にすることはできないんですよね? Panel つーのはかならず親に Frame を指定しないとだめみたい
実は Panel が理解できていない・・その存在意義が。 フレームの中にサイザーでくるんでコントロールを配置する。 という基本は理解したつもりなのですが、 パネルってなんだよ・・・と。 パネル・・・・・パネ・・・
単に固定サイズの領域を作るだけのもの・・なのか? 少しずつ画面がにぎやかになってきてうれしいのですが 次々と文字列が出力されるログウィンドウのようなものを 複数開きたいと思っています。 こういう用途には wx.TextCtrl で作ったテキストコントロールに 次々とAppendTextしまくればいいということなんでしょうか? ほかに何書こう便利なコントロールが用意されていたりします? 今まで matplotlib で数値計算結果をプロットしてたのですが 計算経過を表示しつつアニメーションも表示しつつという アプリケーションを書いてみようとしています。
demoみた?
で、Qtとwxの使い分けはどうすればいいの。 いまwx使うのって、ネイティブな見た目にしたい時ぐらいしか利点ないのかな。
Qtもwxと同程度に同じ見た目にできるよ。 LGPLで高品質なQtか、自由に利用できるけど品質に難があるwxWidgetsか。
QtはRADツールQt Creatorの出来がイマイチなのと,Qt Creatorだとコードを書かなくても シグナルとスロットの指定だけで動作するようなものが出来てしまうので,それがかえって 都合悪い(可読性とかメンテ性の面で)。 まぁ,Qt Creatorの出来については生まれたてだから仕方ないかも。今後に期待。 wxWidgetsは俺はQtよりシンプルでわかりやすいと感じる。 あとRADツールもC::BとかwxDev-C++とか,出来のよいものが幾つかあるし。 wxDev-C++はとても良いんだけど,Subversionでソースコード落としてみたら Delphiで書いてあったのでちょっとがっかり(将来大丈夫なのか?)。 俺は元々C++ Builder使いなので,GUIとプログラムソースコードのシームレス開発に 主眼を置いてるから,他の視点から見ればまた違った評価も当然あるだろうね。
> Qt Creatorだとコードを書かなくても > シグナルとスロットの指定だけで動作するようなものが出来てしまうので コード書かない方法での指定方法じゃ、 何もつくれんだろ。 ボタン押したら終了するぐらいで 自作のスロットは、コード書かないとしていできない。
言語によっても差があるよね RubyならほぼWxRuby一択
Python で GUI なネットワークアプリを作ろうとすると twisted のリアクタと wxPython のイベントループが 相性がいいみたいなので wxPython 使ってます。 Qt 先に覚えたら Qt マンセーになってたのかもしれないけど 先に wxPython 使い始めちゃったからなぁ。 各OSの標準的なコントロールを出来るだけ使うようにしているのはどっち?
標準的なコントロールを使っているのかは知らないが ネイティブに見えるのはwxだと思う。 俺もwxの方がシンプルだと思うから好きだけど、 シンプルというより古いのかなって気はする。
wxWindows使ったときないけど、Qtいいお(´・ω・`) ここのみんなも使ってみてね。
>>557 確かにQt Creatorはちょっと...俺のPCだとよく落ちる。
斜向かいのヤツなんか、一度起動しなくなったと思ったら再インストールしても
二度と起動できなくなった。
コンパイル/リンカオプションをマニュアルでテキストファイルに書いとかなきゃ
ならないのも、完成度まだまだだと思う。Code::Blocksなんか、多種類のコンパイラ
に対応してるのに、オプションの指定は使用するコンパイラに合わせて細かく
GUIから指定できるもんね。
>>558 Qtそんなに触ってないけど、スライドバー動かすと数字が変わる程度のことは
コード書かなくても出来るtのをとなりのヤツがやってるの見たよ。
>>561 その古さがかえって都合いいこともある。
大型装置制御のアプリ作ってるんだけど、Windowsの進化に従ってlook & feelが
変わったらオペレーターが戸惑う。
それならLinux使えって言われそうだが、デバイスドライバがWindows用しかない
拡張ボードとか一杯使ってるからそうもいかない。
>>556 > LGPLで高品質なQtか、自由に利用できるけど品質に難があるwxWidgetsか。
LGPLだって事実上ほぼ自由に利用できるよ。
で,wxWidgetsの品質の難点って具体的にどんなところ?
>>565 wxGTKがgtkのim周りをきちんと実装してないから、ダイアログボックスの
テキストフィールドで変換を確定しようとしたらOKボタンを押した扱いになって
入力が消える。
WindowsでwxGridでIME ONのまま入力を開始しても、フォーカスが当たってる
セルが編集モードにならない。
こんな感じで、特に日本語環境であちこち穴が開きっぱなし。
LinuxではGTK使ってくれてた方が好き。 あと開発コミュニティがオープンソースっぽくていい。 あまり大した利点じゃないな…。
569 :
564 :2009/10/17(土) 07:21:35
>>566 wxGTKは使わないから知らんが,
> WindowsでwxGridでIME ONのまま入力を開始しても、フォーカスが当たってる
> セルが編集モードにならない。
いつの話?
wxWidgets2.8.10(安定版最新)ではそんなことにはならないが...
で、俺は別に wxWidgets > Qt と主張したいわけじゃない。
>>567 の言うとおり,QtにはNOKIAが付いたし,日本ではSRAがサポート
してるから安心感はある。以前LGPLについて詳しく問い合わせた時も,
ちゃんとした回答がすぐ返ってきた。
ただ,まともなRADツールがない。Qt Creatorは今のところ失格。
安定感、使い勝手とも×。自分だけで使うならいいかも知れないが、
チーム全体で使えるような代物じゃない。
Visual Studio用のアドオンも隣の席のヤツに評価してもらったが、
Visual StudioのIDEがQt用のRADツールに変身するわけじゃない
そうで、俺も見せてもらったが、大したもんじゃないなぁと思った。
3rdパーティー製でもいいから、VBやC++ Builder/Delphi並に
サクサク仕事のできるQt用のRADツールってないのかな。
今までC++ Builderで仕事してきて、工数が小さく仕事ができるので
非常に助かってたんだが、C++ Builderの雲行きが怪しくなってきた
ので、今のうちに他をあたっとこうと思って評価中なんだ。
お前さんは隣の席のやつに絶大な信頼を置いてるのかもしれないけど 俺らにとってはどうでもいいわけで・・・ 煽ってるわけじゃなくてな
つーか、C++Builder並のRADはありえんだろ。要求高すぎw LazarusのC++実装とか?
↑wxWidgetsなら,Code::Blocks,DialogBlocks,wxDev-C++あたりが かなり近い線まで行ってる。
昔は、 wx はネイティブのラッパーだから OS の変化に追随してくれる Qt は独自実装だから OS のルック&フィールが必ずしも反映されない って感じがしてたけど、今でもそうなのかな。 あと Qt は moc がね…
オライリーのqt4の本には、 Windowルック&フィールはWindowsでしか使えません。 なぜならWindowsコンポーネント使っているから(MacOSXも同様) みたいなこと書いてあったと思うんだが・・・ 昔の話じゃね?独自実装なのは。 もちろんMotifとかは独自実装だけど。
独自実装なのもあるし、そうじゃないのもある(´・ω・`)
今のQtはWindows上ではWindowsの部品使うし、なんとGnome上では GTKの部品を使って描画するので、ルックアンドフィールの統一感はあるよ。
逆にGTK+がQtの部品使って描画するのってある?
Qtって独自の文法なかったか?あれは躊躇する。
独自の文法は無い。 ただのマクロ
独自のマクロはデバッグが面倒くさそうだ
>>572 そのレベルならQt Creatorと大差ないじゃん。まぁバギーなのはあるが。
Windows上でQt Creator使っているけど、 まぁ、試用レベルなんだけど落ちたことは無いなぁ。 Qt Creatorに後何が加われば、C++ Builder/Delphiなみと いえるのだろうか? 個人的にはGo to Slotがわかりにくかった。 プロパティリストの欄のタブを変更すると イベントハンドラ(Slot)リストがあるべきだろw オブジェクト名が変更されると、Slot名も追尾してくれると嬉しい。 リファクタリングブラウザ機能は最近の先進的なIDEならついているけど、 昔からIDE使ってきている俺としては、あればラッキー無いほうが普通だと思ってるw そんくらいだなぁ。
Qt Creatorが良い線いってると思って使ってる僕は異端児なの?
>>581 使ってみて言ってる?
俺は全部評価したが、Qt Creatorは今のレベルじゃ使う気にならない。
つーか今までC++ Builder一本槍だった開発部隊全員に使わせるのは
きつい。痒いところに手が届かなすぎ。
Delphi/C++ Builderなんかに比べるとかなり劣る。
>>572 で挙げた3つは、Delphi/C++ Builderに肉薄するレベルに達してる。
Qt用でもっとまともなRADツールがあれば、wxWidgetsより安心感のあるQt使いたい
んだが。Qt Creator一つしかないってのが痛い。もちろんQt Creatorの今後の動向は
ウォッチするつもり。
SRAにLGPLのサポート料払ってヤンヤ言ったらQt Creatorどんどん改良してくれんかな。
>>582 > Qt Creatorに後何が加われば、C++ Builder/Delphiなみと
> いえるのだろうか? 個人的にはGo to Slotがわかりにくかった。
それもまぁ一つだね。全体的に操作が直感的でない気がする。
VC++使ってたヤツもそう言ってたから、C++ Builderに慣れすぎてる
からだとばかりも言えないようだ。
> プロパティリストの欄のタブを変更すると
> イベントハンドラ(Slot)リストがあるべきだろw
> オブジェクト名が変更されると、Slot名も追尾してくれると嬉しい。
これも同意。
一番大きいと思ったのは、いろんな設定がGUIからロクにできないこと。
.proファイル(だっけか?)にテキストで書けって...
>>584 もちろん使ってみて言ってる。
Code::Blocks,DialogBlocks,wxDev-C++あたりとQt Creatorはどっちもどっち
だなあと思う。俺はQt Creator のGo to Slotは「なるほどこういう手もあるね」
と感心したクチで、ダブルクリックだけが正解じゃないと思った。
ちなみに俺も仕事のメインはDelphiだからあの操作性を求めるのはわかるよ。
でもDelphiと同じ動きで作業できるかよりはそのツールなりの操作性がこなれ
てるかどうかの方が重要だと思う。そういう意味ではCode::Blocksでいいんで
あればQt Creatorでもいいと思うし、「あんなのDelphiに比べれば糞」と言えば
どっちも糞だと思う。
よって、職場のチーム丸ごと「C++Builderやめて○×にしようぜ」と言える
ツールはまだなくって、でも「wx(あるいはQt)で開発してください」という
仕事が来た場合には十分できる環境がある、というのが現状だと思っている。
仕事でQt Creatorつこうてる僕は何(´・ω・`)
>>584 > 使ってみて言ってる?
> 俺は全部評価したが、Qt Creatorは今のレベルじゃ使う気にならない。
お前の方こそ、使ってみていっているとは思えない。
つまり、中身が何も無い。
使ってみたという証拠を出せ。
Qtの宣伝うぜえな スレ違いだからよそでやれ
589 :
デフォルトの名無しさん :2009/10/17(土) 14:31:54
>>585 > Code::Blocks,DialogBlocks,wxDev-C++あたりとQt Creatorはどっちもどっち
> だなあと思う。俺はQt Creator のGo to Slotは「なるほどこういう手もあるね」
> と感心したクチで、ダブルクリックだけが正解じゃないと思った。
この辺は感じ方の違いもあると思うが、「ダブルクリックだけが正解じゃない」というのは同意。その辺は
たいした問題じゃない。やっぱりコンパイラオプションやリンカオプション、子プロセスとしてコンパイラや
リンカを起動する場合の環境変数の設定あたりがやりにくいのが俺には受け入れ難い。あるいはQt Creato
r評価した際に取り組みが足りなかったのかもしれん。
> よって、職場のチーム丸ごと「C++Builderやめて○×にしようぜ」と言える
> ツールはまだなくって、でも「wx(あるいはQt)で開発してください」という
> 仕事が来た場合には十分できる環境がある、というのが現状だと思っている。
ウチはソフトの受託開発をやってるわけじゃないので、ちょっと事情が違うかな。自社製品用のソフトを開発
してるので、自分達で今後を決めていく環境にある。顧客別のカスタマイズが非常に多いので、少々環境
設定なんかのスキルの低い人間でもサクサクっと作れる事が第一優先なので、面倒見の大変なのはチト困る。
>>586 それは使いこなせるスキルがあるとも言えると思うよ。
>>587 おいおい、Qt Creatorにケチつけられたのがそんなに気にくわんか? 「中身がないって」
>>584 に書いたことじゃ
足りないか? 「証拠を示せ」ってどうやって示すんだ?まずは見本を見せてくれ。
俺は何度も書いたけどできればQt使った方が安心感があると思ってるんだが、RADツールの問題で躊躇してる
だけ。Qt Creatorが早く改良されればベストだと思ってる。
>>588 俺がQt Creatorの批判したから、俺にも責任あるね。まぁ、ここはQtスレに比べたらずっと書き込み少ないから、
それだけマイナーだってことなわけで、wxWidgetsの方が形勢不利なのは目に見えてる。
つーか、他のwxWidgets派は応援してくれんのか...
エディタでゴリゴリ書くのが好きだから…
俺もエディタ派
エディタ派って単に慣れているからってだけじゃ・・・ キーバインドだけのために、新しい優れたものを使えない体に なってしまっただけじゃ・・・
何でそういう難癖を付けたくなったのかは知らんけど、それは間違いだぜ。 昔からツールボックスアプローチとキッチンシンクアプローチという概念があるんだ。 この世界で『真に新しくて優れたもの』なんてそうそう無いよ。
IDEはツールボックスだけのものじゃないし。 開発するとき、ヘルプ見ない? ヘルプ見るのならIDEは便利だよ。
俺はヘルプを見るときはウェブブラウザってのを使ってる。 分からないメソッドを右クリックするとグーグルというので情報を探してきてくれる。 これ結構便利だよ。
>>594 まぁ冗談はさておき、エディタ派の人は最新の IDE がどういう物かは
知った上でエディタでコーディングする事を選んでるんだよ。
君がウェブブラウザやグーグルを知ってるのと同じくらいね。
それと当然だけどエディタだけを使って開発している訳じゃないよ。
エディタを補助するツール群を揃えているから、ソースを書く時には
エディタだけで十分という作業スタイルなだけで。
IDE にプラグインを入れまくる人って居るでしょ。その逆だと思えば良い。
IDE から機能を削ぎ落として、テキスト入力以外の機能は別のツールを
組み合わせて使っているんだよ。だからいわゆる IDE は必要ないのです。
エディタを使うメリットは、ネットブックでも動作が軽快な事、 他の環境に移行し易い事、問題があっても自分で直し易い事かな。 他にもあると思うけど、今思いつくのはこれくらい。
うーん。 やっぱりコード書いている途中にピリオドを押したら すぐにヘルプ見るのと同じ効果があるってことは 思いついていないみたいだ。エディタ使っている人は。 なんかギャップを感じるね。
シェルの補間機能があるのと ないぐらい以上の差があるのにね。
全てを記憶しているから問題無い
>>598 Qt のスレでもピリオドに拘ってる人が居たけど、要らない物は
要らないとしか言いようが無い。それが便利だと思ったら
愛用のエディタに手を入れるか IDE に転ぶかするだろうけど、
今のところは必要ないよ。引き算ができない人は機能一覧を埋める
事ばかり考えるけど、そういう人ばかりじゃないという事です。
人によって考え方や作業フローが違うという事を受け入れられない内は
理解するのは難しいと思われ。
シェルの補完機能でも zsh の最新版の高度な機能を欲する人も居れば csh レベルで良いから軽い方が嬉しい人も居る訳で。 まさかその違いが分からない訳じゃないよね?
まぁ、自分が欲しい物を他人も必ず欲しがると思うのがナンセンスなんだよな。 世界に価値基準が一つしか無いと思ってると大人になって苦労するぞ。
欲しいか欲しくないかは個人の趣味だけど、 便利か便利じゃないかといえば、 IDEの方が便利だよな。
便利かどうかを判断する価値基準は無数にあるんだよ
>>604 俺にとってはIDEじゃない方が便利
そういう話だ
>>604 扇風機と団扇はどっちが便利?
掃除機と箒は?
>>604 自動車があるのに自転車に乗るのは馬鹿な事なの?
それとも自動車と自転車を一緒くたに考える人が馬鹿なの?
吊りだとわかってても反応したくなるな 箒や扇子は電気の無い家の外で使えるから便利だし 自転車は狭い路でも走れるから便利っつー話なんだが
要らん時までパカパカ補間ウインドウひらくわりに肝心なときには補間できないという難点がある品。 調べたいことがあったらその時バッファにカーソル下の該当ワード拾ってヘルプウィンドウ開くさ。 Windows流の窓最大化文化ばかりが全てじゃないって話。
一つ気になるのは、PyQtを動かすためにQtが必要であること。 まぁQtへのバインディングと考えれば必要なのは理解できるんですが、 これを各マシンにインストールするのは面倒すぎます。 もし可能であればネットワークにQtを置いて、環境変数でそこを指すようにして、 ネットワークで共有、ってことをやりたい。 それが出来るんならまぁ使ってもいいかな、って気がします。 ところで、wxPythonと比較してPyQtは何に優れてるんですかね。 AutodeskがPyQtを推す意味って何なんだろうか。
>>609 電気があれば扇風機の方が涼しいし、ウチのオフィスの清掃業者は掃除機を使ってるよ。
ちょっと遠くへ行く時や、同じ距離でも雨の日や荷物がある時は自動車が便利。
便利という指標は考え方や使う人、使う状況によって変わるものだよ。清掃業者が
箒を使わない事を批判している人が居たら、それはちょっとまずい人に見えるよね?
コーディングを行う際にエディタが便利か IDE が便利かも同じ事。
IDE が生まれたのは Smalltalk や Lisp Machine まで遡れる訳だから 30 年以上は
経っている訳だよね。IDE は素晴らしく見えるかもしれないけど、別段新しい物でも
ないんだぜ。この手の論争は少なくとも 10 年以上前からあるし、多分もっと昔から
宗派に分かれて戦ってきたんだろうけど、結論は変わらず『好きな物を使え、他人の
主義にケチをつけるな』だよ。結局、どっちが便利かなんて使う人次第なんだから。
> これを各マシンにインストールするのは面倒すぎます。 なぜ? > もし可能であればネットワークにQtを置いて、環境変数でそこを指すようにして、 > ネットワークで共有、ってことをやりたい。 そっちの方が面倒すぎます。 現にあなたやり方すらわかって無いでしょ?
スレタイ見てくれw
wxPython+py2exeで造ったプログラムって wxWidgetsが入っていないPCでも動くよなぁ >PyQtを動かすためにQtが必要であること 必要なの?
py2exeがwxWidgetsライブラリを含めた実行ファイルを作るから。
それってQtも同じじゃね?
う、うん……(´・ω・`)
なんかIDE論議になってるけど,IDEの一番のメリットはデバッガーだと思うんだが。 そりゃコマンドライン派はgdbやcdbでもソースレベルデバッグできると言うだろうが... IDEのエディタ上で,デバッグ中に変数にマウスカーソル当てると,中身がツール チップヘルプで表示されるなんて,この上ない便利さだと思わない? 少数のエキスパートを除いて,最大公約数的どちらが仕事が速く出来るか? と言われれば,やはりIDEの優位性は揺るがないだろう。
そういう細かい点を日ごろ使って無い人は わからないんだろうね。
>>611 >一つ気になるのは、PyQtを動かすためにQtが必要であること。
wxPythonを動かすためにwxWidgetsが必要なのは気にならないの?
スレが伸びてたからwktkして開いたのに何これ?
>>619 論点がずれてる。
元々は
>>592 にある様に IDE を使えないのは能力の衰えた人という話だった。
君が言う様に IDE を使わないのは少数のエキスパートという事だと、話が真逆。
議論に乗り遅れたのはかわいそうだけど、元々の話と内容が変わってるから、
続けたいなら別スレ立てた方が良いんじゃない?
これだけやっておいてなんだけど完全にスレ違いだしさw
>>623 もうやめとくけど,
>>619 に書いた「エキスパート」は皮肉だよ。真に受けないで欲しかった。
もうやめとくと言いながら未練がましく最後っ屁をかますとは人間ができてますなあ ↑皮肉ってこういう事だよ
あ、真に受けないでね ↑これも皮肉
>>619 が皮肉になっていないのは捻っているようで全く捻ってないから。
『エキスパートは IDE を使わないでも仕事が速く出来る』という命題は
文字通り解釈出来てしまうから皮肉にならない。
むしろ『中身がツールチップヘルプで表示されるなんて,この上ない
便利さだと思わない?』という表現の方が皮肉っぽいよ。例えば
『中身がツールチップヘルプで表示されるなんて,この上ない便利さ
だと思わない?(見た目に騙される初心者め)』みたいな感じで
解釈可能だからね。『ツールチップヘルプ? ログに残したい時は
どうするのさ。デバッガの使い方くらい覚えた方が良いぜ』みたいに
続けると良い感じかもね。
もしまだ続きがしたいなら
>>625 のスレへどうぞ。
Python書くときはvim、C書くときはEmacsだけど JavaはEclipse、趣味はDelphiな俺が通りますよ〜。 ぶっちゃけどれもそれぞれ使い安いよ。最高!
Java/Python/LaTeX → Eclipse C/C++ → Visual C++ その他 → Emacs
ログに残したいときはそうすれば良いし、 ツールチップでも見れること何が悪いのか さっぱりわからんw ツールチップという見た目に対して文句つけてるの?
>>633 ツールチップで見られるならそれは便利だろう
でもだからといって、他の難点に目をつぶってIDEを使う気にはなれない
エディタ全体・IDE全体としてどうかという話
このスレ、スレタイ間違ってる? IDEのスレなのになんでwxナントカって書いてあるけど…
wxナントカはもう死にました。
そっか。じゃあIDEの話で盛り上がっていいんだね?!
まずIDEの議論をして、その結果の良いIDEをwxで実現する予定です
すみません wxPython-src-2.8.10.1をインストール死ようとすると wxWidgetsのコンパイルは性交したらしいのですが build途中で死ぬんです
639 途中でした src/gtk/_gdi_wrap.cpp: In function ‘PyObject* _wrap_DC_SetDeviceClippingRegion(PyObject*, PyObject*, PyObject*)’: src/gtk/_gdi_wrap.cpp:20612: error: ‘class wxDC’ has no member named ‘SetDeviceClippingRegion’ src/gtk/_gdi_wrap.cpp: In function ‘PyObject* _wrap_GraphicsRenderer_CreateBitmap(PyObject*, PyObject*, PyObject*)’: src/gtk/_gdi_wrap.cpp:31407: error: ‘class wxGraphicsRenderer’ has no member named ‘CreateBitmap’
環境は? 環境設定ミスってないか?
ライブラリAPI使いまくりの部分はIDEが断然楽だけど、 自前コードが多いとこは、なれたエディタのほうが軽快かな
wxWidgetsってネイティブ以外にonGTKとかonX11とか あるんだからonQtっつーのも有っても良いような気がする
>>644 なんでIDE vs エディタ論争になるのかぜんぜんわからん。
俺は両方使い分けてる。IDEの外部ツールに使い慣れたエディタ登録
して,エディタ編集したくなった時は起動すれば,現在編集中の行・列
にカーソルがある状態で編集開始できる。
排他制御問題も,IDE側/エディタ側の双方の設定で解決できるし。
...ってそういう話じゃないのか?
はぁ? オマエ見当違いすぎ
いいからどっちも他のスレでやれ
ケンカはやめて(><)
私のために…
「赤いきつね」と「緑のたぬき」の具材を強化した新商品が、 コンビニ限定商品として10月19日から販売が始まった。
私のために?
争わないで!
もうこれ以上
すれ違いの話を
今、VC++2008でwxWedgetsプログラミングしてるんですけど、 他のパソコンでも実行できるようにしたいんですけど、 どのdllをリンクさせる必要がありますか? 何か教えてください(> <)
それは使ってるもジールによって変わるから 別のPCでエラーが出なくなるまで 必要なファイルを順番に追加(ry
wxCodeのwxThingsに含まれるwxSpinCtrlDblが使いたくて,SourceForgeからダウンロードしたら,
やたら古くてコンパイルエラーが出るので,SVNでチェックアウトしたらwxCodeからwxThingsが削除
されてた。でもCVSリポジトリを下記のURLでブラウズすると含まれている。
http://wxcode.cvs.sourceforge.net/viewvc/wxcode/wxCode/components/wxthings/ なのでSourceForge.jpにユーザー登録してCVSでチェックアウトしようとして,SSHの公開鍵を
登録しようとしたら,シェルアカウント情報:に「どのプロジェクトにも所属していないため、
UNIX シェルアカウントはありません。」と書かれていて登録できない。
SourceForge.netの方にもユーザー登録したけど,やっぱり公開鍵の登録ができない。
CVSからwxThigsをチェックアウトする方法があったら教えてください。
662 :
661 :2009/10/22(木) 18:20:59
↑ ちなみにpserver経由のAnonymoousログインではパスワードを求められたのでパスワードなし でログインしようとしたらはじかれた。
664 :
661 :2009/10/23(金) 10:16:54
>>663 そのサイトにからコマンドラインをその通りにコピペして実行したんだけど,ログインの段階で
でパスワードを求められて,何も入れずにEnter押すとはじかれる。
Windows XPのコマンドプロンプトでTortoiseCVSに含まれてるcvs.exeでやったんだけど
(PATHを通しておいて),何かまずいのかな?
わざわざ試してくれてありがとう。
「出来た」と言う情報だけでも助かる。昨日はサーバー側に何かあったとか言う可能性もあるし,
コマンドライン版のCVSだけダウンロードしてやってみるとか,幾つか試してみます。
665 :
661 :2009/10/23(金) 11:24:28
>>663 原因判明。会社のFirewallでCVSのポート(2401)が閉じられてた。
恒久的に開けるには手続が必要で数日かかるとのことなので,一時的にあけてもらって
無事チェックアウト成功。
アリガト。
wxDev-C++は現在のVer.7.xを最後にDelphiでの開発をやめて、wxWidgets+C++に移植して
新たにwxDevIDEと言う名前で再スタートするらしい。
つ
http://wxforum.shadonet.com/viewtopic.php?t=25679&highlight=delphi まだ中身はないけど、既にHPも作成されているし、SourceForgeにも登録されてる。
http://wxdevide.sourceforge.net/ http://sourceforge.net/projects/wxdevide/ SourceForgeではSVN上で開発が進められているのがわかる。
今までDelphi 6で開発されてたので、Vista以降のWindowsでは開発環境すら起動しなく
なるだろうからどうするのかなぁと思ってたら、思い切った改革に乗り出した。
建前は「メンテナンスと改良が難しくなったから」と書いてあるが...
wxDev-C++は使いやすいし、All in oneでインストールできる(MinGWや、MinGWと
VC++用のビルド済wxWidgetsライブラリも付いてくる)のでラクチンだけど、Delphi
で開発してると知って尻込みしてたんだが、wxDevIDEが起動に乗ったらWindows上
ではC::Bと戦える(思想は対照的かもしれないけど)強力なRADツールになるかも。
Linuxへの展開も狙ってるみたいなこともチラッと書いてある。
ついでにTDM's MinGWにも対応してくれると嬉しいんだが...
αテスター募集してるみたいだから参加してみようかな...
既出かもしれませんが、wxTextCtrlで日本語入力(ATOK)中にESCを押すとIME ではなくダイアログを抜けるので、それまで確定した内容が消えてしまいます。 入力中だった文字はそのままの状態で消えたダイアログの親に行きます。 IME入力中のESCキーがIMEのウィンドウ?に飛ばず下のDialog or TextCtrlに 飛んでいるように見えますがが、回避するにはどこを見たらいいでしょうか。
うちはそんなことないよ
>>667 環境を書かないと。OSもコンパイラもバージョンも何も書いてないんじゃ...
670 :
667 :2009/10/25(日) 15:33:48
>>669 失礼しました。WindowsXP SP3 / ATOK2008 です。
RapidSVN 0.12.0 のリリース物件なのでコンパイラはちょっとわからないですが、
バージョン情報には wxWidgets 2.8.9 とあります。
Audacity 1.2.5 (wxWindows 2.4.2) の設定ダイアログでも同じことが起きています。
ATOK2008
>>667 IME関係なくESCだけ押してみたけどDialog閉じないよ
自分で書いたコードでなんか拾ってるんじゃないの?
・何がしたいのか ・現状どうなっているのか ・それに対する自分の意見 ・自分の環境は何なのか(OS,CPU,GPU) ・IMEを他のものにして同じ症状があるのかどうか、ないならそのIMEは何なのか。 ・可能ならサンプルをアップローダーに。 このくらいは質問するなら情報として欲しいわ。
674 :
667 :2009/10/25(日) 19:02:54
キャンセルボタンを貼り付けてなければ閉じなかった デフォルトボタンが拾ってると思う
>>658 static link で作ればいいと思うよ。
リリース版を、マルチスレッド/DLL じゃなくて、マルチスレッド(/MT)にする。
>>674 ESCでダイアログが閉じるのはWindowsの基本的な動作。
>>675 が言うとおり、キャンセルボタン(wxID_CANCEL だっけ?)があるとそうなる。
回避したいのであれば、ボタンを標準じゃなくて、自分でwxButtonで作って、
適当な ID を割り振ればいいんじゃないかな?
なるほど、未確定中にESC押すと入力文字が消え、その後再度ESC押すとダイアログが閉じるのが 普通の動作だが、RapidSVNは未確定文字のキャンセルとダイアログのクローズが同時に起こるな。
679 :
658 :2009/10/26(月) 14:56:45
>>676 返信ありがとうございます。
マルチスレッド(/MT)でコンパイルだと一筋縄でいかないようで、
LIBCMT.libを無視するように設定したりしたら、エラーが減ったんですが、最後、
1>リンクしています...
1>xxx.obj : error LNK2001: 外部シンボル ""public: void __thiscall wxStringData::Free(void)" (?Free@wxStringData@@QAEXXZ)" は未解決です。
1>E:\Documents and Settings\xxx\My Documents\Visual Studio 2008\Projects\morphingpot_v1a\Release\xxx.exe : fatal error LNK1120: 外部参照 1 が未解決です。
1>ビルドログは "file://e:\Documents and Settings\xxx\My Documents\Visual Studio 2008\Projects\xxx\xxx\Release\BuildLog.htm" に保存されました。
1>xxx - エラー 2、警告 0
のエラーが対処できません。
コンパイルしているのは、サンプルでOpenGLを使ってるプログラム、penginをベースに変更したものです。
しかし、一番簡単なサンプル、minimalでもこのエラーは発生するみたいです。
>>679 string.cpp 150行目
#if defined(__VISUALC__) && defined(_MT) && !defined(_DLL)
# pragma message (__FILE__ ": building with Multithreaded non DLL runtime has a performance impact on wxString!")
void wxStringData::Free()
{
free(this);
}
#endif
ってなってるから、DLLだとうまくいかないけどstaticリンクなら大丈夫なはず
なんか間違ってない?
681 :
658 :2009/10/26(月) 18:07:00
>>680 またも返信ありがとうございます。
あれからいろいろありました。
まず、レスについてですが、stringのソースはその通りでした。
それから、staticリンクというのがよくわからないので、
どうすれば良いかよくわからないです。
それと、一応解決しました。
マルチスレッドDLLでコンパイルしたものの、Releaseファイルの中で、
wx_dll.dspをビルドした時に出てきた、
C:\wxWidgets-2.8.10\lib\vc_dllにあるdllファイルを入れたら、
一応動きました。
なんかもう今はとりあえず動けば良いのでこれで良いです。
682 :
667 :2009/10/27(火) 01:08:50
>675 >677 ESCでID_CANCEL,ENTERでID_OKの動作になるのはWindowsの仕様なんですね。 >678 samples/dialogsの[Entry dialogs][Text entry]で再現しました。(2.8.10 w/ VC2005) textctrl.cpp の OnKeyDown, OnChar, MSWShouldPreProcessMessage window.cpp の MSWProcessMessage, MSWShouldPreProcessMessage には ESC(IME on/off とも)の入力が飛んでこないようです。 どこなら引っ掛けられますかね?
>>681 それだと MSVCRT(のDLL) がない環境で動かないかも?
/MT で使う場合は wxWidgets のライブラリも /MT でコンパイルしないと駄目だけどやった?
>>682 確かダイアログの場合は特殊で ESC を雄と WM_COMMAND の ID_CANCEL が
飛んでくるんじゃなかったっけ?
wxWidgets の場合は…なんだっけ、EVT_? マクロを使うんだったかな?
>>682 IsDialogMessage()あたりだろうと探してたりしてみたけど、結局同じwindow.cppにある
キーボードフックからESCを検出して独自にIDCANCEL送ってるわ。
フック周りをIMEを意識した作りに直さないと無理そう。
一応送ってるとこ書いとくけど、dlgcmn.cppのwxDialogBase::OnCharHook()で呼んでる EmulateButtonClickIfPresent(wxID_CANCEL)ね。
687 :
667 :2009/10/27(火) 13:17:31
みなさんありがとうございます。FEP の On/Off で SetEscapeId() を かけたら良さそうな気がした(まだ試してない)んですが、msw 以下の ソースでも wx のヘッダばかり include してますよね。 仮に Imm 系の API を呼ぶようなパッチが作れたとして、wx の本家には 受け入れられないものですか?
各OS固有の部分はどうする?
あんまり場当たり的なことはよしたほうが・・・ とりあえず、実験的なコードだけどwindow.cppのwxKeyboardHook()の先頭で HWND hWnd = GetFocus(); HIMC hIMC = ImmGetContext(hWnd); BOOL immOpen = FALSE; if (hIMC) { if (ImmGetOpenStatus(hIMC)) { int size = ImmGetCompositionString(hIMC, GCS_COMPREADSTR, NULL, 0); immOpen = (size > 0); } ImmReleaseContext(hWnd, hIMC); } とやって、immOpenがTRUEなら既存のルーチン、FALSEならそのままCallNextHookEx() 呼んだら希望の動きはしたよ。 でもまあ、imm32.libのリンクがいるし、この部分もLoadLibrary()+GetProcAddress()にして リンク不要にしたらいいかもね。window.cppはWindows固有のコードみたいだしね。
おっとミス、TRUEとFALSE逆ね、まあわかると思うけど。
つまり EURT と ESLAF が正解。
693 :
658 :2009/10/27(火) 18:17:38
>>683 一応やったけど、違うエラーがいっぱい出てきたので、
よくわかりませんでした。
>>693 違うエラーってどんなのよ。
VC++使ってんだよね?
手順説明すると、Releaseの構成を使うとしたらwxのプロジェクト開いた状態で、
ビルドメニューの構成マネージャ開いてアクティブソリューション構成のとこから
新規作成を選択、名前をMT Release とかにして、設定のコピー元をReleaseにしてOK押して
MT Releaseが選択されてる状態を確認したら、プロジェクトをシフトクリック等で全部選択して
右クリックでプロパティを出して、構成プロパティのC/C++のコード生成のランタイムライブラリを
マルチスレッド(/MT)にしてOK
その後ソリューションのビルドすりゃlibができるよ。
695 :
デフォルトの名無しさん :2009/10/28(水) 14:28:15
696 :
658 :2009/10/29(木) 16:38:29
>>694 何処にも書いてなかった手順ありがとうございます。
しかしですが、
手順どおりやって、
サンプルプログラムminimalをマルチスレッドでコンパイルしたら、
1>wxbase28.lib(dir.obj) : error LNK2001: 外部シンボル ""void __cdecl operator delete(void *)" (??3@YAXPAX@Z)" は未解決です。
とか
1>wxbase28.lib(filefn.obj) : error LNK2019: 未解決の外部シンボル _strstr が関数 "public: __thiscall wxFile::~wxFile(void)" (??1wxFile@@QAE@XZ) で参照されました。
とかのエラーが
合計1740個出てきて、? でした。
前に色々いじったのが悪かった可能性がありますが・・・
>>696 すべての規定ライブラリの無視(/NODEFAULTLIB)を「はい」にしてないか?
いいえにしとけ
C++で初めてWxWidgetsを使ってプログラム書いてみています。 複数行のwxTextCtrlに、複数行の文を書いた状態で、GetLineText(0)のようにして、 任意の1行を取り出して、それをそのまま、wxMessageDialogでダイアログ表示させているのですが、 この1行が、半角のアルファベットの時などはきちんと1行全体が表示されるのですが、 この1行が、4文字以上の日本語の場合は、最後の文字だけが欠けて表示されてしまいます。 (例:あいう→あいう、あいうえ→あいう、あいうえお→あいうえ) C++のほうも初心者ですのでどこか間違っているのかもしれませんが、 解決方法をご存知の方が居られましたら、教えていただけませんでしょうか。お願いします。
ソース貼れ
すみません。本当に質問そのままでしたのでソースを書きませんでした。失礼しました。 尚、開発環境は、Visual C++ 2008 Express Editionを使用しています。 wxWidgetsのバージョンは、2.8.10です。 以下、再現できるソースです。宜しくお願いします。 #include "wx/wx.h" #include "wx/msgdlg.h" class Test : public wxApp{ public: virtual bool OnInit(); }; IMPLEMENT_APP(Test) bool Test::OnInit(){ wxFrame *mainf = new wxFrame(NULL,-1,wxT("サンプル"),wxPoint(-1,-1),wxSize(300,250),wxCLOSE_BOX | wxSYSTEM_MENU | wxCAPTION); mainf->Show(TRUE); wxTextCtrl *inp = new wxTextCtrl(mainf,-1,wxT("あいうえお"),wxPoint(0,0),wxSize(-1,-1),wxTE_MULTILINE,wxValidator(),wxT("Form0")); wxMessageDialog *d = new wxMessageDialog(NULL,inp->GetLineText(0),wxT("サンプル"),wxOK,wxPoint(-1,-1)); d->ShowModal(); return TRUE; }
見てみた。 EM_LINELENGTHがマルチバイトの文字でも文字数を返すのに バイト数で確保してるせいだね。 あいうえお→5にNULL文字1+長さ指定のための2バイト確保で8バイト分しか用意してないから 「あいうえ」になるみたい。
なんか状況によるみたい、ググってもデバッグ環境での違いとかよくわからん。 UNICODE文字セットだとうちでは問題でないけど、どうかな? manifest書けばいいのかもしれないが。
>>701 ありがとうございます。そういう原因でしたか。
素人なりに、EM_LINELENGTHまわりの処理をしているようなコードがないかと考え、
wxWidgetsのファイルを探したのですが、よくわかりませんでした・・・。
GetLineTextを使うのを諦めて、他に違う方法を考えるしか無いでしょうか?
ファイルの場所は、こないだ出たwindow.cppと同じくsrc/msw/にあるtextctrl.cppね。 XPの途中(SP2以降)から仕様変更ってほんまかいな。 うちで試したのはVista64で、たしかに文字数が返ってきてた。 そういやimm〜もLibのリンク不要版書いたけど、見たい人いるかなあ。
UNICODE版に汁
>>705 アドバイスありがとうございます。
setup.hで、wxUSE_UNICODEを1にしてビルドしたところ解決しました。
これでwxWidgetsの内部処理がUNICODEになったと考えて良いのでしょうか?
>>706 そうだけどサロゲートペアには対応してないっぽい
710 :
658 :2009/11/02(月) 15:10:21
>>697 久しぶりにプログラミング再開しました。
できました。ありがとうございます。
すべての規定ライブラリの無視(/NODEFAULTLIB)は
いいえのままでしたが、
何かとごっちゃになって、無視するライブラリにLIBCMT.libとかがありました。
とりあえず、できた奴を他のパソで起動してみます。
どうも。wxWidgets2.8.10、Unicnde Buildを使っているのですが、ShiftJIS->Unicode、Unicode->ShiftJISを一発でするにはどうするばいいですか? どうもEncodingConverterクラスはchar/wcharでの変換しか想定していないようなのです。(wxStringを返すことも出来るようなのですが、実際にやると実行時にエラーになりますorz)
Linux版使ってるひと?
>>712 実行時環境を書き忘れていました。実行時環境はWindowsXP SP3です。
具体的なエラー内容は、WXDEBUGをdefineしてビルドするとwxAssertが働いて、wxEncodeConverter::Init()を使用前に呼び出しているにも関わらず「Init()で初期化してください」と表示されるのです。(リリースビルドでも失敗します。)
>>713 俺はWIN32 APIで変換してるよ。手順がチトややこしいので、無名名前空間内に変換用の関数を
書いたヘッダファイルを用意して使ってる。細かい方法は仕事場に行かないと書けないので、
明日にでも...
WCHAR *SJIS2WCS(string sjis) { if(sjis == "") return NULL; int wlen = MultiByteToWideChar(CP_ACP, 0, sjis.c_str(), -1, NULL, 0); WCHAR *wbuf = new WCHAR[wlen + 1]; if(wbuf == NULL) return NULL; *wbuf = L'\0'; if(MultiByteToWideChar(CP_ACP, 0, sjis.c_str(), -1, wbuf, wlen) <= 0){ delete [] wbuf; return NULL; } return wbuf; } string WCS2SJIS(WCHAR *wbuf) { if(wbuf == NULL || wbuf[0] == L'\0') return ""; int slen = WideCharToMultiByte(CP_ACP, 0, wbuf, -1, NULL, 0, NULL, NULL); char *sbuf = (char *)_malloca((slen + 1) * sizeof(char)); if(sbuf == NULL) return ""; *sbuf = '\0'; if(WideCharToMultiByte(CP_ACP, 0, wbuf, -1, sbuf, slen, NULL, NULL) <= 0) return ""; sbuf[slen] = '\0'; return sbuf; }
716 :
714 :2009/11/04(水) 09:51:54
おぉ,先に書いてくれましたね。私の使っているコードも殆ど同じ。
一旦,必要なバッファの長さを取得してからもう一度同じ関数で変換する必要があるのがミソ。
C++的には
>>715 の関数をstaticな大域関数にするのではなく,
namespace {
WCHAR* SJIS2WCS(string sjis)
{
//中身
}
}
のように無名名前空間に入れたヘッダファイルを用意して,この関数を利用するソースモジュール
からインクルードして使うのが良いようです(参考書なんかによく書いてある)。
>>716 ヘッダファイルに関数の中身まで書くの抵抗あるんだけど
C++だと書いて良いというかそういうもんなの?
>718 翻訳単位毎に実体ができちゃうから抵抗があるというのは正しい感覚だと思われ。 ヘッダをインクルードしただけで使いたいってんなら自分なら inline にしておくかな。
720 :
716 :2009/11/04(水) 23:38:45
>>719 > 翻訳単位毎に実体ができちゃうから抵抗があるというのは正しい感覚だと思われ。
> ヘッダをインクルードしただけで使いたいってんなら自分なら inline にしておくかな。
おっしゃる通りで...
無名名前空間でヘッダファイル内に定義して、それを異なる翻訳単位で複数使うと、
中身が同じオブジェクトファイルが複数できてしまうよね。
異なる翻訳単位でも共通に使えるようにするのなら、コード効率を考えなければinlineに
するのが良いだろうし、コード効率を重視するのならシングルトンパターンでも使って、
実体が一つしかできないようにしてクラスにするのが良いと思われ。
昔のC流でグローバルな関数にするのが一番簡単だったりして...
inline にしておけば翻訳単位ごとに実体ができようが リンク時に1つにまとめられるぜ
多分、最適化のこともインラインのことも勘違いしてるんだろうね。
インライン展開とは、関数を実行したのと同じ「意味」になる処理を呼び出し側に埋め込んで
関数呼び出しのコストを無くすことであって、
「意味」を変えないためには
>>526 のようなことが必要になる。
これは最低限の自分の存在理由を満たしているだけであって、「最適化」などではない。
一方、彼の考えるインライン展開は、引数として渡した「記述」を切り貼りして
コードの姿を組み立てて、それを呼び出し元に貼り付ける、というような物らしい。
でも、それはマクロがやってることだ。
マクロといえば、簡易的なLisp処理系を作って、強力と名高いLispのマクロを実装してみると、
このへん勉強になるかもね。
Lispの言葉でいうなら、C++の関数は「引数はすべて評価してから関数に渡される」。
つまり f(g(), h());の時、fが受け取る(そして扱う)のは「g()の戻り値」と「h()の戻り値」。
だからインライン展開するにあたって、
>>526 のようにすることでそれを実現する。
それに対して、Lispのマクロは「引数を評価せずに渡し、戻り値で呼び出し側を置き換える」。
こっちが彼の考えるインライン展開に近い。
??? 526 :デフォルトの名無しさん [sage] :2009/10/06(火) 21:04:39 no problem
724 :
716 :2009/11/05(木) 08:30:56
>>722 そもそも誰に対するレス? アンカーも間違ってるので,言っていることがイマイチよくわからん。
>>721 > inline にしておけば翻訳単位ごとに実体ができようが
> リンク時に1つにまとめられるぜ
それはないだろう。
もうしそうだとすると、inline関数の呼び出し時に、通常関数の呼び出しと同じように
呼び出しアドレスや引数がスタックに積まれることになってオーバーヘッドが大きく
なってしまうから、inline関数の意味がなくなってしまう。
そもそもその話の出典はどこ?
>>721 ,
>>726 なぁんだ、
>>722 はSTLスレのコピペだったのか。
(STLスレのinlineの話は長すぎて読みきれん!)
で、
>>721 だけど、inline関数の中から呼び出される関数の実体は一つにまとめられる
と言いたいのかな?それともコンパイラがインライン展開できなかったときは一つに
まとめられるという話かな?
ANSI C++規格書の7.1.2の2と4にそのあたりのことが書いてあるけど、俺の英語力では
「inline関数への呼び出しはリンク時に一つにまとめられる」とは読めないなぁ。
仮にまとめられるとすると、スタックを使わないでどうやってその関数を呼び出すの?
「inline関数を使うと、スタックによる関数呼び出し手続きを省くことができるので、
オーバーヘッドを省くことが出来る」と、多くの参考書等にも書いてあると思うが。
レジスタ渡しで呼ばれてるんだろうなw
それは最早呼び出し規約(fastcall)の話であってinlineじゃないな…w つか、wxWidgetsのスレでやる話なんだろうか
wxWidgets用のGUIビルダーやRADツールで、カスタムウィジット(例えばwxCodeに登録されているウィジット)を 登録して、ペタポトできるようにする仕組みを持ってるものってある? あったら具体的に教えてもらえると嬉しい。
XRCed
733 :
731 :2009/11/08(日) 22:45:41
>>732 サンクス。XRCedリソースエディタとしてC++用にも使えるんですよね。
まだ試してないんですが、やってみます。
XRCed使ってみた。巷で言われる「癖のある使い勝手」はsizerベースであることを考えれば オレは気にならないけど,イベントハンドラの名前すら記述できないし,xrcしか出力できない。 wxrc使っても,これじゃ結局イベントハンドラそのものと,イベントとイベントハンドラを接続 するコードは手書きするしかないんじゃないの? オレには向いてないみたい。
すいません・・・ 今、wxStringの文字列を、C言語のchar型に変換する方法を探ってるのですが、 なかなか見つかりません・・・ static char *C文字列; で宣言したのを、 C文字列 = wx文字列(wxConvUTF8); とやったら、 1>xxx.cpp(562) : error C2440: '=' : 'const wxChar *' から 'char *' に変換できません。 1> 変換で修飾子が失われます。 と言われた所です。
そもそもconstを非constに暗黙の変換はできない C言語(C++ですらない)の教科書に当たるか const_castでググるべし
テキストボックスでRead Onlyなのに日本語入力だと普通に書き換えられるのは仕様なの?
>>735 Unicodeビルドか?Ansiビルドか?
話はそこからだ。
overviewsの wxMBConv classes overview, Unicode support in wxWidgets, それから wx/strconv.h あたりを読むよろし。
741 :
735 :2009/11/10(火) 17:11:59
const char 変換物; 変換物 = 変換元.c_str(); char *変換物 = const_cast<char*>(変換物); ってやれば、とりあえずコンパイルは通りました。 ありがとうございます。 const charでやっといて、const付きで変換して、 あとではずすって感じですね。 んで、今度は文字コードが上手くいってないんですが・・・ コンパイルはVC++で、文字セット「設定なし」です。 一体どうすれば・・・
どういうコードでどういうデータを使ったらどううまくいかないのさ
>>741 char *変換物 = const_cast<char*>(変換物);
変換元が無くなったら死ぬよね
>>741 質問するならもっと詳しく書け。
そんな質問じゃエスパーが現れるまで誰も答えられん。
ただの愚痴だな 質問ですらない
>>741 コンパイル通ればいいてものじゃないでしょ。
char *p = strdup(unicode_string.c_str());
とでもすればいいのに。
あと、文字セットは Unicode か MBCS(マルチバイト文字)
じゃなきゃ駄目だと思うよ。
wxWidgets 使うなら Unicode でがんばって。
みんな wstring って使ってる?
748 :
デフォルトの名無しさん :2009/11/11(水) 16:12:34
wxWidgetsは、どう発音するの? ダブリュ・エックス・ウィジッツ? 既出かもしれないけど教えて。
日本人相手なら普通はダブルエックス・ウィジェッツ でいいんじゃね?
750 :
デフォルトの名無しさん :2009/11/11(水) 16:42:32
>>749 ありがとう
もしかしたら、ウィックスウィジェッツとか発音するのかと思ってた。
2.9.0になって中身がだいぶ変わったな 今までのがビルド通らないし、動きもしない・・・ バグじゃなくて仕様変更だからしょうがないんだけど。
753 :
735 :2009/11/16(月) 14:46:14
解決しました。ありがとうございます。
Visual C++ 2008 Express EditionでwxWidgets2.8.9を使用しているのですが、
wxURLを使おうとすると、リンクするときにどうしてもエラーになってしまいます。
(そもそも、wxURLを書いただけでエラーになります。
wxURL以外は幾つかしか使っていないのですが、普通にうまく動きます。)
test.obj : error LNK2001: 外部シンボル ""public: virtual __thiscall wxURL::~wxURL(void)" (??1wxURL@@UAE@XZ)" は未解決です。
test.obj : error LNK2001: 外部シンボル ""public: __thiscall wxURL::wxURL(class wxString const &)" (??0wxURL@@QAE@ABVwxString@@@Z)" は未解決です。
****\****.exe : fatal error LNK1120: 外部参照 2 が未解決です。
初心者で、解決しようにも原因さえわからないのですが、
アドバイスを宜しくお願いします。
以下、再現できるコードです:
#include "wx/wx.h"
#include "wx/url.h"
class MyApp : public wxApp{
public:
virtual bool OnInit();
};
IMPLEMENT_APP(MyApp)
bool MyApp::OnInit(){
wxURL url(_("
http://example.com/ "));
return TRUE;
}
>>754 普通に通るけど、、、ライブラリは自分でコンパイルしたやつ?
バイナリ使ったのならどれかな?
>>755 ありがとうございます。結構前に入れたものなのでよく覚えていないのですが、
wxMSW-2.8.9-Setup.exeをダウンロードしてインストールし、
build\msw\wx.dswを、VC++ 2008 Expressで開いて、「ソリューションのビルド」をしたものだと思います。
>>755 すみません・・・。
http://freepg.fc2web.com/cpp/topic_wx_vc.html をなどを参考にして環境を構築していたのですが、
自分のPCにある、lib\vc_libを見て、「追加の依存ファイル」に無いファイルがあることに気づき、
とりあえずwxURLと関係のありそうな、wxbase28_net.libがありませんでしたので、
それを、プロジェクトのプロパティで、追加の依存ファイルに追加したところ、
エラーが出ずに、ビルドができました。とりあえずエラーは出ないようになったので先に進めます。
初心者の質問につきあっていただき、ありがとうございました。感謝しています。
関係ないけど 追加の依存ファイルの入力枠って なんであんなに使いづらいんだろう
使いづらいよねw #pragma comment使えってことなのかなあ。
includeパスもlibパスも使えねー 嫌がらせだろあれはw
>wxDev-C++ をインスコしたら、 >C:\Program Files\Dev-Cpp フォルダに、 vcl60.bplとかrtl60.bplがあるみたいなんだけど、 これってC++ Buider か何か?
うん
763 :
761 :2009/12/02(水) 16:28:52
嬉しいけど、 C++ Builder を購入してる自分的には、 2種類のソフトと思ってたのが実は1種類みたいに思えて、 損した気分w
えっ
えっ
それはあれだぞ WindowsのゲームはDirectX使ってるから実は1種類だ!! って言ってるのとかわらんぞ・・・?
それじゃドズ1種類じゃね? 他に、ウィィとかP$3買えば3種類
768 :
デフォルトの名無しさん :2009/12/03(木) 11:43:52
wxwidgetsのデザイナ入ってるIDE、codeblocksとかwxdevとかで デバッグ機能を使って、STLのvectorとかlist使った配列の中身見れるやつある?
win32api と wxWidgets の違いって何?
wxWidgets でクロスプラットフォーム GUIアプリを作ろう
http://0xcc.net/pub/uu-2004-08/ ↑を見るとwin32をラッパしているだけ、と書いてあるのだが
windows限定で開発している俺には何もメリットない認識でおk?
MFCで開発してる奴が少ない労力でLinuxやMacで動かせるようになる点がメリット。 ということは、どういうことか分かるよな?
文字列扱いやすいし,windowsだと冗長になってしまうコードも 簡潔に書けるってのもいいんじゃない?
文字列扱いやすいなんてのはSTLやMFC使えば一緒だよ
そう?MFCは使ってないからなんとも言えないけど STLやQtとか他のライブラリと比べると操作関数が豊富だったと思う 所詮好みの問題だけどさ
詳しい文書があり、またPythonで使えるのも良い。 GUIの挙動とか確認したい時に一々コンパイルせずともPythonでトライアンドエラー出来るのは楽。
SSLのソケットは簡単に作れないですかね。 クライアント・サーバどちらも使いたいんですが。
求)リードプログラマー か・・・
>>769 Code::BocksのwxSmithやwxFormBuildeや、wxDev-C++みたいな
ポトペタRADツールを使うと、MFCよりサクサク開発できる。
MFCは書かなきゃならないコードが多すぎる。
>>769 何もメリットないってことはないけど、俺ならクロスプラットフォーム
でもないのにあえてwxWidgetsを選ぶことはないな。
Win32API とか MFC のダサさを回避したいときには 敢えて wxWidgets や Qt4 とか使うのは間違いではないよ
同感。C++ Builderは既に死に体だし。 > 敢えて wxWidgets や Qt4 とか使うのは間違いではないよ 最近の流れだと wxWidgets は Qt に比べて分が悪いね。 Qt より単純で好きだったんだけど。
wxWidgetsは、気に入らない部分を書き換えてビルドできちゃうところがいい
スタティックリンクも出来るし
3.0まだぁー?
>>785 この流れでは言いにくいけど俺はC++Builder。
俺は逆にC++ Builderから逃げようとしている。 Borland⇒CordGear⇒Embarcaderoと母体が変わるうちにどんどん品質低下。 バグを充分に修正しないまま次期バージョンを発売してしまう。 メチャクチャな翻訳やリンク切れ満載のヘルプの酷さは見るに耐えない。 以前は沢山カキコのあったMLも超閑古鳥。 問い合わせしても自分で答えずに一般人のHPのURLをメールに貼って 「ここに情報があります」と言うヒドいサポート。 最新バージョンへの優待バージョンアップも申し込みが少なかったらしく, 昨年末までだった予定を一ヶ月延長する情けなさ。 トライアル版使ってみれば,バージョンアップする気がなくなるw Windows限定なら使いやすくて仕事が速く出来る最高の製品だった はずなのに,こんな製品に誰がした! QtをNOKIAが買ったように,どこかの大きな会社が買ってくれんかな。 wxWidgetsもどこかがバックに付かんかな。
同意
789 :
質問 :2010/02/05(金) 12:50:49
wxPythonを使っているのですが、 wx.media.MediaCtrlでマウスクリックのイベントから関数をコールバックすることはできないのでしょうか? もしできないのでしたら、親ウィジェットでマウスクリックのイベントを受け取ることはできるのでしょうか?
>>787 どこもバックに付かないから良いんじゃまいか
791 :
質問 :2010/02/06(土) 00:14:07
すみません、解決しました。
wxString strを cout << str << endl; という風に出力したいんだけど、コンソール入出力用のストリームってある?
ここには人はいませんよ。ばいばいさるさん。
よく分かってないけど自己解決
795 :
デフォルトの名無しさん :2010/02/07(日) 00:44:24
VC++2008EE+wxに越してきたのですがUnicode Releaseってのがあるのですが やっぱりこっちの方がいいんですかね?
796 :
デフォルトの名無しさん :2010/02/08(月) 00:21:46
あんまり人いないのかな?
Qtに引越ししつつある
>>796 枯れてきたから使用者が多くても質問者は少ないんだろ。
799 :
デフォルトの名無しさん :2010/02/08(月) 00:39:46
>>797 >>798 そうなのか
Qtの方ってOSが搭載してるブラウザコアを組み込んで使えたりするのかな?
wxのHTML処理関連は素のHTMLは問題なさそうだけどcssが駄目そうだし
QtにはWebKitが付いたんだっけ?
wxの話では盛り上がらないけど Qtの話になると盛り上がるwxスレ
802 :
デフォルトの名無しさん :2010/02/08(月) 01:07:42
Monoで作るというのもあるよ あれだとC#でかけるのでC++の糞構文に悩むこともない ただMSの動きとかもろももろでどうなるかなんだよね
Qt で書かれたアプリはときどき見かけるけど wx で書かれたのってあまりお目にかからない どんなのがあるの?
>>803 python製アプリ見ればほとんどwxだよ。
805 :
デフォルトの名無しさん :2010/02/08(月) 01:25:36
休みを利用してwx関連をいろいろ試したけどGUI関連のツールが微妙だな ネットで調べるとすぐにでてくるwxGladeとかもうね・・・
まぁ、GUIなんて手で書けばいいし
wx で GUI 独立設計したいなら XRCed がいいよ
>>795 あんまり頻繁に見ていないんだ、ごめんよ。
で、Windows で使うなら UnicodeRelease/UnicodeDebug でいいよ。
むしろそれ以外は気にしてはいけない。
static か DLL かは好みで。
>>799 たしかwxはMacで使うときだけWebkitに切り替わるようになってる。
>>792 なかったような希ガス。
こうすればいいと思う。(wxでコンソール出力使ったことないから保証はしない)
wcout << str.c_str() << endl;
>>805 独立じゃなくてポトペタがしたいならCode::Blocksかな
IDEだけど
wxDev-C++もあるよ。
>>805 慣れればwxGladeも便利だと思うんだけどな
wxPython用に使ってるけどあんまり不満ないよ
C/C++/Pythonのソース吐くのは全く好きじゃない QtDesignerがぎりぎり許せるレベル
814 :
デフォルトの名無しさん :2010/02/11(木) 12:52:38
wxWidgets + JavaScript = wxJavaScript = GlueScript
wxWidgetsってなんかあまり人気ないような気がする
>>815 まあ他の移植性は魅力だがwxに限っては情報が無さ過ぎるよね>日本語の
日本語の少なさではQtもどっこいどっこいだと思うが 漏れの気持ちは少なからずQtに傾いてしまっている
俺の場合Pythonならwx、C++ならQtだな。 別に両方覚えて使いわけてもこまらんよ。
QTをキュートと読んでるやついるの? みんなキューティーって読んでるはず
日本人って一体どうやってGUI作ってるの? まさかwin32api直打ち?
>>819 QTはクイックタイムって読んでる。
Qtはキュートかなぁ。たしかに昔はキューティーって読んでたな。
>>820 wxもQtも使わない時はC++BuilderかDelphiだな。俺の場合。
なれると本家のdocとソースのexampleでだいぶなんとかなるんだけどねぇ・・・
wxGladeで生成したCのソースに色々処理を追加したあとで, またwxGladeでボタン等を追加することはできますか?
以前試したことがあるけど,大丈夫だったよ。 手書きで変更した部分は上書きされない。
でもアレ?ってこともあるので バックアップしといた方がいいよ。
Gladeはアプリ自体が不安定でいつ落ちるか判らないからな それで落ちたときにソース壊されたりするのが不安で仕方が無い
俺もキューティーって読んでる。 キュートって呼んでる人は見た事が無い。 Qt の話をしている人も見た事が無いけどw
おれは心の中ではキューティーって読んでるけど オフィシャルにはキュートって読むのを知ってるから 人と話すときはキュートって言ってる。 この前もQtの事を知ってる人が話題振ってきたんだけど 普通にキュートって言ってたから多分日本でもそっちが 主流なんだと思ってる。
そもそも流れはあるのかな… 個人個人で便利に使っているというイメージだったけど
おまいらMinGWは何て呼んでる? 俺は「ミンジーダブリュー」だったんだけど、どこかで「ミングー」と言うのを見て なんかピングーみたいで気に入っちまった。
ミングー
おれはミングウィン
しかし「ダブリューエックスウィジッツ」は呼びにくいな。 人と会話するのがエラク面倒。
wxはなあ・・・ MFC,ATL,WTLやってみたけど部品少なすぎ wxのブラウザって独自で作った物なんだっけ?
どうでも良い話題で盛り上がるなよお前ら
>>836 ダブルエックスって呼んでるよ
それで通じなかったときだけ、wxWidgets の事なんですけどね、、、って説明してる
wx だけだと wxPython とかを連想してしまうな
突発的にwxWidgetsの話題になる事はないので 会話の前後で分かるだろw
>>837 どっちが部品少ないって言いたいのかよくわからん。
低レベルな質問で申し訳ないのですが wxFormBuilderから追加したイベント宣言を定義するのはどうしたらいいのでしょうか? Generateで書き出した.hファイルにある virtual void OnButton1( wxCommandEvent& event ){ event.Skip(); } の{ event.Skip(); }をコメントアウトすることで 出来なくも無いのですが ヘッダファイルの行頭に // PLEASE DO "NOT" EDIT THIS FILE! とありますし後々修正があったときに困りそうです。 // Virtual event handlers, overide them in your derived class このコメントが鍵のような気もするのですが正直意味が分かりません・・・
845 :
843 :2010/02/14(日) 05:38:04
>>844 おぉ、こんな機能があったのですね・・・
チュートリアルのビデオのほうも見ましてなんとか概要はつかめました感じです。
ありがとうございました!
は? なんでコード独立のXRCより コードベタ吐きのツールの方を有難がるの?
コード直書きだろうとXRCだろうと大して違いがないから。
俺はコード吐いてくれる方が好き。XRCより何やってるか良く見えるから。 好みの問題。
思うんだけど、GUI扱うならTkが一番使い易いと思うわけだけど、 なんでTk使う人は少ないのかな??
Tclとセットで語られることが多くその点で敬遠されるのと、 あと見た目じゃね
>>856 ・UIをレイアウトするための便利で安定したツールがないから
・出来上がったUIの見た目がダサくてエンドユーザから文句を言われるから
・Tkでなんとかできる程度のことはコマンドラインでやってもたいして困らないし
コマンドラインではキツイことをTkでやろうとすると
機能が足りなくて・環境によっては未実装で、すぐ行き詰まるから
・Tcl以外と組み合わせると、書き方がごっそり変わってたりして
それまでの参考資料があまり役に立たなくなっていて習得に苦労するから
・exe化がすんなりいかない場面が多いから
pythonが初期?からtk取り込んでたけど やっぱり足りないからwindow systemのバインディングが増えてる
wxPythonとPyQtのどっちにしようか迷ってる Tkinterはoutof眼中
PythonのQtバインドは目下分裂中だから様子見だね。
864 :
デフォルトの名無しさん :2010/03/03(水) 15:52:47
復活
うわあああああああああああ wxwidgetsのインストールができない 3日間何回もメイクしてもう疲れた QTのほうが簡単かな、やってみよう ってかソースで配布する意味ってなんなの教えてえろいひと
>>865 - ソースがあれば分け解らんメソッドとかクラスも中身見えて解るようになる
- 足りない/気にくわない機能があっても拡張できる/修正できる
- 最適化だったりのコンパイルオプション変更してビルドしなおせる
- オープンソースであること
ぱっと思いつくのはこんな感じ?
ってか、どんな環境でやってるの? Win (gcc/VC++) Linux (gcc/icc) Mac (たしかgcc) とどれもすんなりmake通ったが
>>865 Qt は make all で 2日かかった
>>866 ウィルスとか変なもの埋め込まれていないことを証明出来る
>>865 好きなコンパイラで好きなオプションが使える。
ところで環境は何よ?
>>866 自分でビルドすら出来ん奴にとっては、どれも猫に小判かも……
つかwxってバイナリ配布してなかったっけ
872 :
866 :2010/03/03(水) 23:38:00
winのcygwinです
cygwinもemacsもインスコに三日ずつくらいかかった初心者です
いままではBCCでBCCDevっていうIDEつかってやってたんですけど
emacsとか使えたらかっけーとおもって乗り換えようと思ったらこのざま
自分がやった手順をまとめてみます
あ、まず、cygwinのhomeをc:/home/yuta/にマウント(?)してます。
どうやってやったかは覚えてない。yutaは名前w
wxAllをc:/home/yuta/wxWidgets-2.8.10に解凍
cygwinでwxWidgets-2.8.10に移動してから
export CFLAGS=-mno-cygwin
export CPPFLAGS=-mno-cygwin
export CXXFLAGS=-mno-cygwin
export LDFLAGS="-mno-cygwin -mwindows"
したあと
./configure --build=i686-pc-mingw32 --disable-threads --disable-precomp-headers
--without-expat --with-opengl --disable-shared
オプションの意味はよくわかってないです
それで、
makeは成功
make installで
/usr/bin/install -c -d /usr/local/share/aclocal
(cd . ; /usr/bin/install -c -m 644 wxwin.m4 /usr/local/share/aclocal)
/usr/bin/install: cannot stat `wxwin.m4': No such file or directory
make: *** [install] Error 1
がでました。
で、ぐぐって
ttp://forums.adafruit.com/viewtopic.php?f=17&t=4119 英語よめないおわた
root権限が必要なんですかね、でもそんなことどこにも書いてなかった
yutaって馬鹿だな まで読んだ
874 :
866 :2010/03/03(水) 23:48:00
連投すまそ ちなみにサンプルはメイクできました サンプルみつつ妄想膨らませるだけで楽しくてなんかもう満足 ソース配布の利点はわかったけど時間かかりすぎて鬱になる
もう何年も前の話だから今と事情は違うかもしれないけど wxAllは色々とゴニョゴニョしなきゃCygwin(MinGW)でビルドできなかった記憶が。 とりいそぎクロスコンパイルしなくてWinで動かすだけならwxMSWをダウンロードしてでビルドしてみそ。
GTK+のほうがいいよ
GTK+はまともなRADツールがない。
878 :
865 :2010/03/05(金) 02:03:01
うわあああああああああ できたあああああああああ ありがとうございました --build=i686-pc-mingw32を--build=i686-pc-cygwinにかえて wxMSWをビルドしたらできますた。 頑張ってサンプル読みまくります 人のコード読むのはじめてなんだけど^−^
wxのソースは比較的読みやすい方だと思う(設計はやや古臭いが)
もうはるやすみはじまったのかw
>>879 確かに。
wxで作るときはヘルプ見るよりこのサンプルコード見るし。
ゆーたくんよかったね
┌─┐ │●│ └─┤ _ ∩ ( ゚∀゚)彡 ┌─┬⊂彡 │●│ おっぱい!おっぱい! └─┘ おっぱい!おっぱい!
うめてみる
ほしゅ
886 :
デフォルトの名無しさん :2010/03/18(木) 23:43:35
うめてみる
うめてみる
888 :
デフォルトの名無しさん :2010/03/20(土) 04:05:37
うめてみる
うめてみる
まもなくここは 乂1000取り合戦場乂 となります。 \∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!! ,,、,、,,, /三√ ゚Д゚) / \____________ ,,、,、,,, /三/| ゚U゚|\ ,,、,、,,, ,,、,、,,, ,,、,、,,, U (:::::::::::) ,,、,、,,, \オーーーーーーーッ!!/ //三/|三|\ ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ∪ ∪ ( ) ( ) ( ) ) ,,、,、,,, ,,、,、,,, ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ,,、,、,,, ( ) ( ) ( ) ( )
はえーよw
XPで使ってるんだが VSの色を参照するにはどうすればいいんだ?
> VS 何それ?
Visual Style
VS(Visual Style)の色とやらが 曖昧で何を指しているものか分からん HKCU\Control Panel以下のレジストリを保存して差分でもとってくれ
wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE) じゃないの?
>>897 Win32で、その手の色を示す定数が定義されてるから、そこからAPI使ってとってくればいいかな。
システムカラーとヴィジュアルスタイルはあんまり関係ないぞ
マジかよ
(´・ω・`)
ヘ⌒ヽフ ( ・ω・) dd / ~つと)
まもなくここは 乂1000取り合戦場乂 となります。 \∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!! ,,、,、,,, /三√ ゚Д゚) / \____________ ,,、,、,,, /三/| ゚U゚|\ ,,、,、,,, ,,、,、,,, ,,、,、,,, U (:::::::::::) ,,、,、,,, \オーーーーーーーッ!!/ //三/|三|\ ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ∪ ∪ ( ) ( ) ( ) ) ,,、,、,,, ,,、,、,,, ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ,,、,、,,, ( ) ( ) ( ) ( )
907 :
デフォルトの名無しさん :2010/04/28(水) 06:33:01
age
908 :
デフォルトの名無しさん :2010/05/02(日) 18:57:05
(´・ω・`) sage
どもです(´・ω・`)
元々緩やかな下降線にはあったけど、人が減った事によって それまでは人混みに隠れていた工作員の存在が目立つようになったのが致命傷だったな 工作員の誘導を嫌って参加者が減り、他所からの工作員を排除しようとして規制をするから 参加機会が奪われて更に参加者が減るという負のスパイラルにおちいってる
ご冥福をお祈りします
912 :
デフォルトの名無しさん :2010/11/21(日) 08:46:04
あげ
913 :
デフォルトの名無しさん :2010/11/24(水) 19:50:49
age
914 :
デフォルトの名無しさん :2010/12/05(日) 18:49:54
うめ
915 :
デフォルトの名無しさん :2010/12/06(月) 23:28:25
梅
916 :
デフォルトの名無しさん :2011/01/18(火) 05:12:10
うめ
ume
うめきれるのかこれ…
じゃあゲームでも貼りますか しばしお待ちを
920 :
デフォルトの名無しさん :2011/01/23(日) 03:52:39
ume
うめきれるのかこれ…
うめきれるのかこれ…
923 :
デフォルトの名無しさん :2011/02/05(土) 22:04:33
wktk
924 :
デフォルトの名無しさん :2011/02/05(土) 22:40:06
うめ
um
um
ume
ume
ume
ume
ume
ume
ume
ume
ume
ume
ume
まもなくここは 乂1000取り合戦場乂 となります。 \∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!! ,,、,、,,, /三√ ゚Д゚) / \____________ ,,、,、,,, /三/| ゚U゚|\ ,,、,、,,, ,,、,、,,, ,,、,、,,, U (:::::::::::) ,,、,、,,, \オーーーーーーーッ!!/ //三/|三|\ ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ∪ ∪ ( ) ( ) ( ) ) ,,、,、,,, ,,、,、,,, ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ,,、,、,,, ( ) ( ) ( ) ( )
ume
ume
ume
合戦場まで遠いんだよな
944 :
デフォルトの名無しさん :2011/02/08(火) 12:14:32
うめ
ume魔性
う
め
楳
梅
u
m
e
p
o
g
ume
どもです(´・ω・`)
ご冥福をお祈りします
うめきれるのかこれ…
つまりどういうことです?
なんというか・・・
とりあえず980超えれば落ちますので
新スレもあることですし
梅の季節
梅鱒
ume
まもなくここは 乂1000取り合戦場乂 となります。 \∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!! ,,、,、,,, /三√ ゚Д゚) / \____________ ,,、,、,,, /三/| ゚U゚|\ ,,、,、,,, ,,、,、,,, ,,、,、,,, U (:::::::::::) ,,、,、,,, \オーーーーーーーッ!!/ //三/|三|\ ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ∪ ∪ ( ) ( ) ( ) ) ,,、,、,,, ,,、,、,,, ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ,,、,、,,, ( ) ( ) ( ) ( )
規制されるからやめれ
ばいばいおさるさん
にんともかんとも
埋め支援
落とす意味あるのか?
ume乙
梅特課
もちつけ
ぺったんぺったん
つるぺったん。
仕方がない
981 :
デフォルトの名無しさん :2011/02/09(水) 18:57:47
梅
980 超えたら逆にレスすると落ちないお
それでも
一日一回だとあと2週間かかるなw
985 :
デフォルトの名無しさん :2011/02/09(水) 22:32:29
うめ
986 :
デフォルトの名無しさん :2011/02/10(木) 11:13:38
ume
規制されちゃった
ume
u
m
e
u
m
え
梅
過疎
う
次スレです
http://pc12.2ch.net/test/read.cgi/tech/1270793556/ まもなくここは 乂1000取り合戦場乂 となります。
\∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!! ,,、,、,,,
/三√ ゚Д゚) / \____________ ,,、,、,,,
/三/| ゚U゚|\ ,,、,、,,, ,,、,、,,,
,,、,、,,, U (:::::::::::) ,,、,、,,, \オーーーーーーーッ!!/
//三/|三|\ ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
∪ ∪ ( ) ( ) ( ) )
,,、,、,,, ,,、,、,,, ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
,,、,、,,, ( ) ( ) ( ) ( )
め
も
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。