【GUIライブラリ】wxWindowsでのひょーん Doxygenかましたらまともなドキュメントになるのになー
あー、嘘嘘。やってみたけど見にくいわ。 defs.hが痛過ぎる。全部まとめちゃってるから各クラスの解説に定数が出てこねー。ダメダコリャ。 でもメソッド一覧はやっぱりDoxygenの出力使えるといいなあ。 ちゃんとwxApp::MainLoopはvirtualって出るし。それに wxWindow::SetSize(const wxRect &rect) って実はサイズフラグも取れるって知ってた? ドキュメントでは↑だけど、本当は↓これ。 wxWindow::SetSize(const wxRect &rect, int sizeFlags=wxSIZE_AUTO) Doxygenしてみて初めて気付いた。 ドキュメントとソースを行ったり来たりするのは面土居sage
wxWindowsで作られた有名ソフトって何ですか?
>>799 DELAY_LOAD=delayimp.lib \
/delayload:ws2_32.dll /delayload:advapi32.dll /delayload:user32.dll \
/delayload:gdi32.dll \
/delayload:comdlg32.dll /delayload:shell32.dll /delayload:comctl32.dll \
/delayload:ole32.dll \
/delayload:oleaut32.dll /delayload:rpcrt4.dll $(GL_LIBS_DELAY)
を6行まとめて次の1行に置換
DELAY_LOAD=
これは、dll の遅延ロード用の設定で、
delayimp.lib は、遅延ロード用のヘルパーライブラリだと思うので、問題ないはず。
ちなみに、Visual C++ Toolkit 2003 は、
ランタイムライブラリ dll 用の lib が無いので
includeディレクトリに有る use_ansi.h を下記のように変更した
//#pragma comment(lib,"msvcprtd")
#pragma comment(lib,"libcpmt")
#else// _DEBUG
//#pragma comment(lib,"msvcprt")
#pragma comment(lib,"libcpmt")
#endif// _DEBUG
#else// _DLL && !STATIC_CPPLIB
#ifdef _DEBUG
//#pragma comment(lib,"libcpmtd")
#pragma comment(lib,"libcpmt")
さらに、debug 用の static ライブラリも無いので変更
これで出来ました。
807 :
デフォルトの名無しさん :04/05/26 13:57
今日使い始めたわけなんですけど、 windowsでいうとこのSetWindowRgnって、どうやったら実現できるかなぁ? 教えてくださいませ、詳しい人!
wxFRAME_SHAPED セットした wxFrameに wxString name("hoge.bmp"); wxBitmap bitmap( name, wxBITMAP_TYPE_BMP ); wxColour color( 0,0,0); wxRegion rgn(bitmap, color ); frame->SetShape( rgn ); とか、こんな感じでできるけど、リージョンをウインドウの形にできるけど wxMDIChildFrameだと、うまくいかない。無理ってことかねぇ。
809 :
デフォルトの名無しさん :04/05/26 18:32
LinuxでwxGTK-2.4.2.tar.gzのコンパイルの際、日本語を使用可能にしよう と思った場合、configureオプションに--enable-unicodeを指定するべきな んでしょうか? --enable-unicodeを指定しなくても、setup.hには #define wxUSE_WCHAR_T 1 となっているので、指定する必要はないんでしょうか? ちなみに--enable-unicodeを指定して出来たライブラリを使って、Webから 拾ってきたとあるプログラムをコンパイルしようとするとwxStringがambiguous なんちゃらエラーになってしまいます。
>>806 サンクス。
ランタイムライブラリのlibは、自分はimpdefを使って作成しました。
msvcp71d.dllやmsvcr71d.dllはネットに落ちてたのを拾って使ってるんだけど、
ライセンス的に平気かな?
保守age
815 :
デフォルトの名無しさん :04/06/24 19:33
Borland C++ BuilderX に preview 載せて、 wxWindows をいじり始めました。 preview の出来は今1歩、いや2〜3歩か。 正式版に期待するかな。 xml パーサが日本語を通さないのが、残念なり。
>>815 UTF-8でASCII以外がだめなの?
ダメすぎ
817 :
デフォルトの名無しさん :04/06/28 19:38
wxWindowsのポーティング説明サイトキボン。 それも日本語サイト
>>817 を日本語に翻訳してくれるサイトキボン
それも日本語サイト
wxWidgets
イベントハンドリングに関する質問です 現在付箋ソフト開発中で、付箋ウィンドウを作ってます。 付箋ウィンドウはwxTextCtrl on wxPanel on wxFrame(wxRESIZE_BORDER)で作りました。 ここで問題です。 このウィンドウのクライアント領域をドラッグして移動できるようにしたいのですが、 wxTextCtrlへのイベントを横取りしてwxFrameで取得するにはどうすればいいでしょうか? 試したのは 1)wxTextCtrl派生クラス作ってOnMouseEvent()でイベント受け取る。 受け取れるけど、イベントをwxFrameに横流しするにはどうすれば? 2)wxEvtHandler派生クラス作ってwxTextCtrlにSetEvtHandler()する。 wxEvtHandlerのProcessEvent()をオーバーライドしたら一見うまくいった様に見えたが、 ウィンドウを閉じると「不正な処理」でエラー こんな具合ですが、正統な方法があったら情報きぼんぬ
>>820 wxTextCtrlのイベントハンドラから、
wxFrameのインスタンスにはアクセスできない造り?
wxのイベントモデルから言えば2じゃないかな。 ウィンドウを閉じると「不正な処理」というのは回避できそうな気がする。
>>820 wxMouseEvent : public wxEventだから親へ伝播しないわな。
>>821 の言う通りなんだったら自分で伝播させんとな。
src/common/event.cpp:884〜の
bool wxEvtHandler::ProcessEvent(wxEvent& event)
は参考にならんかい?
ちなみに2.5だったらこっち
wxEvtHandler::ProcessEventIfMatches(const wxEventTableEntryBase& entry, wxEvtHandler *handler, wxEvent& event);
wxWidget用のRADとかないの? Eclipseでそういうのあったら最強くさいんだが
またまた820です。今度は別の問題へるぷみー 付箋ウィンドウ(wxFrame派生クラス)のスタイルをwxRESIZE_BORDERにすると、 wxTextCtrlが描画されない問題あり。 描画されたウィンドウをマウスでリサイズすれば描画されます。 でも表示直後に描画されないのです。 ※スタイルをwxDEFAULT_FRAME_STYLEにすれば最初から描画されます。 子ウィンドウのwxTextCtrlに対してRefreshとかEnableとかSetSizeとか やってみましたが、解決に至らず。 どうしよう?
820です。 自解しました。 付箋ウィンドウ(wxFrame派生クラス)のShow()をオーバーライドして その中でSendSizeEvent()してやったら描画されました。 なんか、質問すると解決する。そんなもんですかね。 P.S. wxWidgetsって使いやすい。サンプルも豊富でドキュメントもしっかりしてて。 MFCよりずっといいね。って今は.NETの時代?
>>827 wxMSWだとpublic wxWindowなオブジェクトのSizeEventは
最初に表示(Show)された時ではなく、生成された時(Create)に発生する。
だからMyApp::OnInit()でnew,Showする順番が重要。
> なんか、質問すると解決する。そんなもんですかね。 そんなもん。というより 1.質問を書く 2.どういう返事になるか想定する(○○はどうなってる?) 3.出す前に調べる 4.さらなる突っ込みを想定しつつ1or2へ戻る。 というプロセスを繰り返すと大抵の質問は出す前に解決してしまうよね。
>> 809 私は FreeBSD-5.2.1 ユーザですが,misc2.cpp の JoyStick::GetProductName() の デフォルト値 「(const char) ""」を wxString にキャストできないのが 原因で ambiguous うんたらエラーになっていました,該当部分を wxString("", strlen(""))に置き換えてコンパイルしたら通りました. 試してみてください.
831 :
名無しさん@そうだ選挙に行こう :04/07/11 14:22
UNIX の雑誌に wxWidgets の記事が載っていました。 立ち読みだったので、誌名は、覚えていません。 その記事に、wxWidgets のコードを自動作成してくれる RAD のような、ソフトウェアの紹介があります。
>>831 SoftBankのUNIXUser。記事の良し悪しわ分からないけど・・・
書いてる人はNamazuのひとだねー。 zphotoのWindows版を作る時に使ったみたい。
マイナーバージョンが一個増えてるけど翻訳サイトはそのままか
翻訳サイトは3ヶ月くらい進んでないんじゃないの
>834,835 スマヌ、死んでます。別のプログラム(Wiki)で四苦八苦しているのよ。 #うまくいけば翻訳サイトに使うつもりなんだけど…… 他のメンバーも忙しいみたいだし。
>>836 乙。
Wikiはツリー構造を実装したメニューがあればリファレンス向きだよね。
JavaのAPIリファレンスのような感じなら。
838 :
デフォルトの名無しさん :04/07/13 02:20
ところでwxPenってWindowsで言うところのジオメトリックペンしか無いですよね コスメチックペンとか使いたいんですけどwxでは基本的にサポートしていませんか?
おはようございます。 死者2号どす。
840 :
デフォルトの名無しさん :04/07/15 12:08
wxWidgets の Gtk 版を使っていて、 環境変数 LANG が ja_JP のときに、 [No font for displaying text in encoding 'Extended Unix Codepage for Japanese (EUC-JP)' found. Would you like to select a font to be used for this encoding (otherwise the text in this encoding will not be shown correctly?)] というダイアログがいつもでて困ってるんだけどどうしたらいいかなあ。 FAQ かもしれんけど佐賀市型が悪いのか google ってもわからないので 教えてくださいませ.
wxGladeというのは使えるものなのですか? 雛形を生成してくれるようですが
sampleの中のファイルが所定の位置からずらすとコンパイルできない。何故だろう・・・ includeもlibも設定してるはずなんだけど
質問です。 以下のようにframeとscrwinを仮定します。 wxFrame frame; wxScrolledWindow scrwin; この状態で、 frame->Reparent(scrwin); scrwin->SetBackgroundColour(何らかのwxColour); scrwin->Refresh(); とすると、scrwinの背景は所望の色になるけどframeの再描画が中途半端になります。 中途半端とは、frameの枠は描画されるけど、中身は描画されない。 何とかなりませんかねぇ。
845です。
問題はけっきょく未解決ですが、とりあえずは別のアプローチでしのいでいます。
ですが、情報頂けるとありがたいです。
さて、別の問題が発生しました。
wxTreeCtrlのアイテムについて、日本語表示に問題ありです。
日本語を表示させようとすると、アルファベットに変わって表示されます。
まだ、詳しく調べていませんが、情報あったらくださいな。
>>843 コンパイルオプションとか、エラーの内容とか詳しく書かないと無視されるよ
>>846 むしろ君もです。プラットフォームくらい教えてくれよ。
ところでどうしてframeをscrolledwindowの上に貼り付けたいの?
>>847 >プラットフォームくらい教えてくれよ。
失礼しました。
プラットフォームはWindowsXP Proです。
>ところでどうしてframeをscrolledwindowの上に貼り付けたいの?
それは秘密。そういうアプリを作りたいから。
ということで、よろしくお願いします。
845です。 846で言ったwxTreeCtrlの日本語に関する話ですが、wxTreeCtrl自体に問題はありませんでした。 直にwxTreeCtrl::SetItemText()やったらうまく表示されました。 問題はwxTextCtrlの方にあるようです。 wxTextCtrl::GetLineText()で取得されるテキストに問題があるようです。 他のメソッド、例えばGetRange()とかGetValue()で取得するテキストには問題ありませんでした。 これはwxWidgetの問題なのか、回避できるものなのか、どうなんでしょう? ちなみに文字コードはSJISです。
「問題はありませんでした」「問題があるようです」 その文章読んでもどこに問題があるのかさっぱり分からんが。
×どこに問題があるのか ○何が問題なのか
>>848 何をしたいのかを聞きたいんじゃなくて、
Frameの上にScrolledWindowじゃなくてその逆なのはなんで?ってこと。
MDIぽくしたいのならwxMDIClient/ParentWindowがあるでしょ。
いずれにせよ、説明が情報不足過ぎて再現テストコードすら書けないよ。
wxTextCtrlの問題も同じ。例えば「TextCtrlに入力した文字列をGetLineText
で取得して、TreeCtrl上でSetItemTextして表示しようとしたら文字化けした」
とか、やりたいことを秘密にしたままでも書きようはあるでしょ。
今のところ「よーわからん。Unicode版使ったら?」とか、
「
ttp://www.geocities.co.jp/SiliconValley-Cupertino/8526/wxWindows/japanese.html にあるようにロケールの設定をしましたか?」くらいしかコメントしようが
ないよ。
845です。
■Frameの上にScrolledWindowを乗せるのはなぜか?
もともとFrame(Frame Aと呼ぶことにする)としてデスクトップに生成されたウィンドウを、
別のFrame(Frame B)中のScrollWindowに取り込み、その後、もう一度デスクトップ上にFrame Aを戻す、
という動作を実現したい。「MDIぽくしたい」というわけではない。
(もちろん、Frame B 中のScrollWindowに Frame A が取り込まれている状態はMDIのような
状態になる。)
■wxTextCtrlについて
例えば「あいうえお」という文字列をwxTextCtrl中に書く(ウィンドウとして生成されたwxTextCtrlに
キーボードから文字入力を行う)。その文字列をwxTextCtrl::GetLineTextを使用して取り出し、
wxLogMessage()で出力すると「BDFHJ」(半角)と表示される。
wxTextCtrl::GetValueあるいはwxTextCtrl::GetRangeで取得した場合、wxLogMessageの出力結果は
「あいうえお」と正しく表示される。
※wxLocaleについて
wxLocaleオブジェクトを
http://www.geocities.co.jp/SiliconValley-Cupertino/8526/wxWindows/japanese.html にしたがって生成した。
static wxLocale theLocaleObj(wxLANGUAGE_DEFAULT);
しかし、上記の「wxTextCtrlについて」で述べた文字化けは起きる。
------------
以上です。
UNIX USERの記事に日本語翻訳プロジェクトとして紹介されていたよ。
794ではないのですが、私もライセンスについてよくわかりません。
商用でスタティックリンクしたい場合、具体的には何をすればいいのでしょう?
>>795 にあるライセンスを読むと、商用ですのでもちろんソースコードは公開できません。
よってwxWindows Library Licenceということになるかと思いますが、
1.まずFree Software Foundation, Inc.にメールをだして許可をもらう。
2.そしたら自由にバイナリを販売可能
ということでしょうか?
許可をもらう方法っていうのがまたよくわからないのだけど。
こんなところで聞くような奴は使うなよ。 あれを読んで理解できない奴が判断すること自体、商売としてはリスク大きいだろ。 それともここでどこの馬の骨とも知れない相手にOKと言われたら安心するのか? マジレスすると FSF相手にそういうイシューがメールでOKと思っているというレベルでアウト。 米国法に詳しい弁護士を代理人として頼んでFSFに行き、英文で契約書を作成す る必要がある。
FSFにメール出す必要なんて無いんでないの? wxWidgetsのライセンスは、LGPLとほぼ同じ。 で、LGPLのライブラリを使った場合の主な注意点は、 ・リバースエンジニアリングを禁止できない ・ユーザーがライブラリを入れ替えられるような手段を用意しなければならない だと思ってるのだけど。 スタティックリンクした場合は、後者の理由により、ソースコードの開示は必要 ないが、オブジェクトの開示が必要になる。 ってことでOK?自信無いが。
ネタニマジレスカコワルイ
例外2の意味を好意的に解釈すれば、バイナリにしたものであれば、自分の好きな条件で 販売だろうとなんだろうとすることができる、ということでいいのかな。 wxWidgetsのHPをみると、商用ソフトも結構あるみたいだし。 これで多くのWindows用ソフトがマックに移植されたら、マックユーザーにとっては朗報ですね。
言葉の使い方間違ってるぞ。 そういうのは「好意的に解釈」でなく「都合良く解釈」するという。
>>857 混乱の元は
>>795 の
> LGPLに従うなら、成果物を再配布するときにソースコードも一緒に再配布する必要がある。
だね。明らかに間違ってる。LGPLの場合、こんなことする必要はない。
もっとも、GPLの場合でさえ、成果物の再配布時にソースを添付する必要は無い。
ソースにアクセスする手段を提供しさえすれば問題無い(ソースを置いてあるFTPサイトの
リンクをドキュメントに書いておくなり、ソース請求用はがきを添付するとか)。
>>863 > もっとも、GPLの場合でさえ、成果物の再配布時にソースを添付する必要は無い。
> ソースにアクセスする手段を提供しさえすれば問題無い(ソースを置いてあるFTPサイトの
リンクをドキュメントに書いておくなり、ソース請求用はがきを添付するとか)。
GPLとLGPLではちょっと異なっているので、まずGPL(ver.2)から。
ソース請求用はがきはSec.3のb)を指しているのだと思いますが、
a written offer, valid for at least three years, to give any third
party, (以下略) なので、
ソース請求用はがきなら購入から最低3年はソース提供を保証しないといけないし、
だれにでも(to any third party)出す必要があります。
そのはがきしかダメとか登録ユーザしかダメとかは言えません。
ftpサイトのURLを提示、はb) を指す場合(自サイトで公開)と c)を指す場合
(自分では手を加えないものの本家開発元URLを提示など)が考えられますが、
前者とすればソース請求用はがき同様の縛りがあります。
後者は非商用製品限定、しかもソース提供方式にb)項を利用して自分自身がバイ
ナリ提供を受けた場合限定です。
具体的には、オープンソースソフトでGPL/LGPLなライブラリを使用し、
しかもそれらを自分でビルドしたのではなく他所で用意されたバイナリパッケー
ジを利用した場合、に限定されます。
なおバイナリ配布がオンラインの場合、それと同じ場所で同様にソースを配布す
ることで要求を満たすと見做すことが可能です。
(続き) 次に LGPL ですが、 LGPL(v2, v2.1とも)では、ライブラリそのものの派生物については明確にソース 同梱を要求されます。 ただしそのバイナリ配布がオンラインの場合に、それと同じ場所で同様のアクセ スによりソース配布することで要求を満たすと見做せることはGPLと同じです。 LGPLなライブラリをリンクするプログラムの場合、次のどれかが要求されます。 a) 静的リンクの場合、ライブラリの全ソースコード、プログラム側のオブジェ クトファイルかソースコードを提供して再リンクできるようにする b) 動的リンクする (動的リンクしたライブラリ自体には前述の項目によって ソース同梱が要求される) c) GPLのSec.2 b)と似た、最低3年以上のa)で指定されたものの提供オファー。 ただしGPLと異なり、"give the same user the materials"と書いてあるので ユーザ以外に提供しなくても許されます。 d) a)で指定されたものをバイナリ配布と同じ場所・同じ方法で配布 e) a)で指定されたものをユーザが既に持っていることが確実 (なんだそりゃ) また、プログラムに著作権表示させる際に、ライブラリの著作権表示とLGPLへの リンクを同時に明示することも要求されています。
(さらに続き)
wxWidgetsのライセンスは、LGPLを元に、例外としてこれらのバイナリ配布に対
する要求を免除したものと思えばいいです。
他にも条文はありますので、GPL/LGPLでは何が要求されているか、
自分で一度きっちり読んだ方がよいと思います。
なお、一点訂正しておきます。
>>864 ×具体的には、オープンソースソフトでGPL/LGPLなライブラリを使用し、
○具体的には、オープンソースソフトでGPLなライブラリを使用し、
ありがとうございます。 GPL/LGPLについては大体わかるのですが、wxWidgetsライセンスがどういうふうに適用されるのかが なかなかわからなくて。 特に例外という部分が。 試しにwxWidgetsのHPにリンクしてあった商用ソフトのMojoWorldというソフトのデモをインストールしてみました。 まず、wxWidgetsで作ったという記述は見つかりませんでした。 もちろんソースも添付されていません。 インストールされたフォルダをみると、独自拡張らしきwxmojo.dllというファイルがありました。 つまり、独自拡張したバイナリを添付し、ソースも添付せず、ライセンス表示すらしなくてもOKということになるのかな? ほかのも見てみます。
好きな条件で、っていうのはそういうことです。 バイナリ配布のときの要求がのきなみ免除されるので、 ソースをつけなくていいしライセンス表示もことさら出す必要もありません。 と私は判断しますが、商用に使うならここで聞いたことを根拠にしたり、ほかが そうしているからそれでOKというタコツボ的判断は駄目でしょう。 自信がなければwx-usersに入ってメールで聞いてみるべきではないですか。 作者本人が答えてくれるでしょう。
>>869 GJ!一番痒いところに触れてくれましたって感じだね。
>>869 ありがとうございます!
これで安心して作業に入れます。
でもQtとかのライセンスは平行して使われるわけだよね? WinやMacはwxWidgetsのライセンスでソース非公開が可能でも wxWidgets/Qtが商用でもQtのライセンス購買の義務がなくなるとは思えないのだが。
それは当然です。あくまでwxWidgets部分だけ。 UNIX用にはwxGTKを使って、GTK部分はLGPLなライブラリとして添付するしかないでしょうね、お金持ちでなければ。
>>845 ■Frameの上にScrolledWindow
FrameA の上に貼っておいた内容を、MDIParent の上に作った MDIChildFrame
の上に Reparent して、FrameA を消せば同じような操作感を得られませんか?
■wxTextCtrlについて
Unicode版を使っているかぎり再現できませんでした。GetValue/GetRangeは
Win32 API の EM_GETRANGE メッセージを、GetLineText は EM_GETLINE を
使うので、違いがでるのはそのせいかも。
wxGTKそのもののソースが公開されてるなら wxGTKのsoにリンクする分には何の障害もないってことかな
>>717 失礼。ソース公開(Gtk+)かライセンス費用(Qt)が必要。
wxWidgetsがGtk+を完全に動的リンクでラップしてる場合なら自由が効くかも。
誤爆った。失礼。
gtk+もGPLだったっけ?
誤爆か・・・orz
いやLGPLだが、ライブラリのソース公開と、リンク場所のソースかオブジェクトは見せんといかんでしょ。 wxWidgetsが完全にラップしてくれてるなら、そっちを見せれば後は自由なのか それともそのコードにアクセスしてる全てのソースorオブジェクトを公開しなきゃいけないのかが知りたかった。 前者ならGtk+を動的リンクしてる限りは何の制限も受けんでいいなと。
>>874 アドバイスありがとうございます
>frame->Reparent(scrwin);
>scrwin->SetBackgroundColour(何らかのwxColour);
>scrwin->Refresh();
>とすると、scrwinの背景は所望の色になるけどframeの再描画が中途半端になります。
これについては、この問題そのものは解決できていませんが、ウィンドウの別の部分の
色を変化させることで対処しました。
>■wxTextCtrlについて
Unicode版ならば大丈夫なのですね。Unicode版にするとWin95を見捨てることに
なりますが、今時そんな問題はなさそうですね。
どうもありがとうございました。
メーリングリストがウィルスばっかで参った参った。
883 :
デフォルトの名無しさん :04/08/02 14:15
>>883 うわっ、マジですごいかも。
ボーランドも最後の力を振り絞ったな。
ってVCLがあるのに・・w
これって去年の11月のものを今頃うpしたってことですか?
正直xyzzy+mingwでお腹いっぱい
MFCをラップするwxMFCみたいのを書いてます。 でもMFCを書き換えたものなので配布できないよなぁ。 他にやったことある人いますか?
>>888 MFCを書き換えたんなら配布はムリだろうが、MFCをラップしたんなら
配布できるだろ。
WXDEBUG_NEWってwxObject派生クラスしか使えないの?
gettextっぽいのがついてるけど、これって独自実装だよね? そうじゃなかったらGPLになってるか…。
GNU gettextのうちlibintlはLGPLだと思ったが、それはそれとして、 自前で実装してるよ。
>>892 サンクス。
ところでwxWidgetsの話ではないんだけど、
gettextのpoでShiftJIS使うとき、「表\示」とかエスケープしたら怒られるようになった。
なんでだろうと思いつつ「表示」としてみると普通にmoができて、
それを食わせたプログラムでもちゃんと文字化けしないででてきたわ。
これでいちいち気にしなくて済むかのぉ。
894 :
デフォルトの名無しさん :04/08/20 03:24
そろそろ、インスコ方法とかまとめない?
では叩き台をどうぞ。
_, ._ ( ゚ Д゚) ・・・ _, ._ ( ´ Д⊂ ゴシゴシ _, ._ ( ゚ Д゚) ・・・
スレッドのサンプルがthreadの実行中にアプリケーションを終了すると ハングするんで調べてみたら、 Delete()メソッドってスレッドが終了するまで制御を返さないんですね。 いちいちwxConditionとか使ってシグナルを待機する必要なかったのか。。
898 :
デフォルトの名無しさん :04/08/21 20:05
やってみたいけど、エラーインストールの方法がよく分からないんです。 どうすれば、いいんですか? VC .NET2003 でつ。
エラーインストールって何かよく分からないんです。 それは、何ですか?
エラーをインストールするんですけど?知らないんですか?
はつみみです。
自分で調べて試行錯誤したほうがためになります
2.6.0 Stable 1/9/2004 - WX_2_6_0 This will be a stable release, hopefully with full XTI (extended RTTI) coverage. あと1週間〜♪
904 :
デフォルトの名無しさん :04/08/26 16:30
ほしゅのひょーん
stock buttonsの議論がなかなか収まんなくて。 ようやく結論めいたものが出てきたが。 んで次に出るのは2.5.3で、2.6は十月までお預けだとか言ってるような。
Windows用に作ったアプリケーション(wxWidgets2.4.2)を、 Linux上(wxWidgets2.5.2 Gtk2 Unicode)でコンパイルしようとしています。 コンパイル自体は通るのですが、 例えば、以下のようなコードを含んでいると、 wxMessageBox( wxString::Format(_("hogehoge %s"), _("hoge")), _("Test"), wxOK NULL); 下のような警告がでて、 警告: cannot pass objects of non-POD type `class wxString' through `...'; call will abort at runtime 実行してみると、このダイアログを表示するところでsegmatation faultを起こします。 wxMessageBox( _("hogehoge hoge"), _("Test"), wxOK, NULL); のように直接リテラルを渡した場合は、警告もでず、問題無く動作するのですが。。。 いったいなにが問題なのでしょうか? ポインタだけでも示していただけるとうれしいのですが。。 環境はg++3.3 wxWidgets2.5.2で、--enable-gtk2 --enable-unicodeにてコンパイルしてあります。
%sにはwxStringじゃなくてwxChar*を渡す
>>907 ありがとうございます。
おれってすごいバカなのでは。。これで2時間も考えこんでました(;´Д`)
帰ったらさっそく試してみます。
wxWidgets と wchar
ttp://diary.imou.to/~AoiMoe/2004.09/middle.html#2004.09.13_s02 >>892 libintlがLGPLになったのは0.10.40から。割と最近の話だな。
>>893 0.10.36からUCS normalization化されて、Shift_JISとかBig 5なども
普通に取り扱えるようになってる。「\」を入れたpoを使う場合には
環境変数OLD_PO_FILE_INPUTを設定する(これはまともに文書化されて
なかったような)。ただ最近のGNU gettextでも有効かどうかは知らん。
ところでwxWindows日本語プロジェクトって放置プレイ状態?
Webは更新されてないし、MLアーカイブにはspamが入っているし。
>910 ごめん、放置プレイ。 C++離れてRubyでWiki作ってまつ。なかなか完成しません。 wxRubyでも翻訳しようかな……
お兄ちゃん、日記に愚痴書いてるだけじゃなくてパッチ投げてよ……。
wxRubyで任意のメモリ上のイメージを表示するにはどうしたらいい? Image、Bitmapのオブジェクト(wxだとヴィジェット?)は作れるんだけど表示のさせ方がわからない…○| ̄|_
wxRubyなど使ってないから知らん。 素のwxWidgetsの知識でよければ、wxBitmapはそのまま貼れたはず。
画像と同じサイズの wxEmptyImage を作成して, SetData() でrgb のデータ列を突っ込んでみたらどうかな.
遅レスすまん
>>914 ,915
レスthx
表示する方は試行錯誤繰り返していたら何とかなってきました。
メモリ上のイメージの表示はset_data()でできました。
ステータスバーにプログレスバーを表示させるってどうやったらできる?
Rubyスレから誘導されて来ました wxRubyなんですが、イベントをトリガーにして画像を書き換えて表示したいのですが画面が書き換わってくれません 現在はおおざっぱにこんな手順になっています。 1) イベントを捕まえる 2) 書き換えたいオブジェクトのDCを生成 (PaintDC) 3) 書き換えるBitmapオブジェクトのDCを生成 4) 3で用意したDCをblitで2で生成したDCにCOPY 5) 2で生成したDCを解放 コードを実行した最初のMyFrameの初期化時には画像は表示されるのですが、ボタンとかツールバーのイベントから 上記の手順を実行しても画面に反映されません。 いったんウィンドウを他のウインドウで覆ってから再度アクティブにしてPAINTイベントを発生させると画面に反映されます。 何か肝心な手順が足らないと思うのですが何が足らないのでしょうか? wxWidgetsを使うのは初めてだったりするので使い方が間違っている用語とかあったらゴメン
イベントが任意のイベントだとするとwxPaintDCを使うのは間違い。
レスありがとうございます。 wxWindow::Refreshで画面を書き換えられました。
ListEventが発生していないときにListCtrlの現在選択されている項目の場所を取得するにはどうしたらいい?
wxListCtrlは複数選択を許す C++では多値を返す枠組がない のでそのものずばりのメソッドはない。 状態を持つようにするか、ループで一つ一つ調べれ。
FileDialogって、最後に開いたディレクトリを覚えているようなんだがどこに記憶しているんだろう? それともwxRubyのみの挙動なのか?
wxConfig
ロードマップが修正されたよ
http://www.wxwindows.org/roadmap.htm 2.5.3 Development 17/10/2004 - WX_2_5_3 This will hopefully be the last unstable release before 2.6.
2.6.0 Stable 1/12/2004 - WX_2_6_0 This will be a stable release.
本当にちゃんと出るんだろうか。意地でもクリスマスには間に合わせそうな気も するが、現状wxgtkとか結構ダメだしなあ。
wxRubyで日本語を表示させるときに使用する文字コードって プラットフォームによって変化したりする?それとも共通? とりあえずWin2000Pro上ではSJISじゃないとダメなようだが…
>>929 LinuxだとEUCみたいですね
wxPerlでしか確認してませんが
>>930 thx
げふっ…ソースコードの使い回しをするのはかなり大変そうだな…○| ̄|_
言語リソース分離したらいけない?
ユーザが使うlocaleの設定によって違う。
UNIXだと多くの人はEUCだけど今はUTF-8の人も少しいて、
そのうちそういう人が増えるかも知れないし、
UNIXでもSJISを使ってる人や環境もあることはある。
従って特定の文字コードでソースに埋め込むということ自体があまり正しくない。
C++のソースコードと同じように _T() という関数で全リテラルを括るようにし
て、_T()ではuconvでも使ってスクリプトファイルの文字コードからlocaleに合
わせた文字コードに変換する、とするのがいいんじゃないか。
一番いいのは
>>932 のいうように分離する方法だけどね。
Rubyにもgettextあるんだし。Rubyのgettextはどうか知らないが、wxWidgets
が自前で持つgettextはメッセージカタログが違う文字コードで書いてあっても
自動で変換してくれるから、C++の場合は言語で分けさえすれば後はあまり考え
なくてよかった。
一番手抜きなのはユーザが適宜自分のロケールに応じた文字コードへ変換して
それをインストールしてくださいというもの。ただしインストールするソフトを
マルチユーザが共有することを考えてない糞方針でもある。
wsWindowsというよりは、Rubyの仕様の問題だよな。 実行環境とスクリプトのlocaleを一致させなければならないんだろ。
931の名前欄間違えた…○| ̄|_
>>932-933 レスthx
言語リソースを切り離す方法と前リテラルを関数で変換する方法を検討してみます。
>>934 そんなことはないと思うけど…
mswinなインタプリタでも日本語がUTF-8なスクリプトでもちゃんと走るし
出力時にSJISに変換すればコンソールへも正常に表示できるけど…
>>933 wxWidgetsはlibintlに相当する部分を自前で持ってるみたいだから、
細かいことは気にしなくてよさそうだけど。
Unicode板使って,Ruby側で文字コードの違いを吸収したらどう?
Ruby側というのがいまひとつ不明瞭だけど、wxWidgetsのunicode版を使うには ワイド文字列にして渡さないといけない。 Rubyから渡された全文字列についてwxRubyがMB2WXやってくれているならそれでOKだが、 今の実装がそうなってるかどうかはwxRuby使いでない俺は知らない。
やべえ。bin/lifeがはまる。
wxRubyのImageってバグ持ちか…? イマイチ発症条件が絞り込めていないのだが 頻繁に書き換えてあるImageオブジェクトをしばらくさわらず 別の場所でガンガン処理をしたあとに利用(Image#copy)しようとすると wxRubyがクラッシュするような… しょうがないので原始的な方法だがクラッシュしそうな箇所の 手前でImageオブジェクトを再生成している
バックトレースきぼん
>>942 Winのプログラミング経験もほとんど無い俺にはムリ…
>>944 Win2000Pro(SMP)、Ruby 1.81、wxRuby 0.5.0
WinXP Pro、Ruby 1.81、wxRuby 0.5.0
どっちでも症状が出ます
サイザーって片仮名で書かれるとかなり間抜けだな。
> wxWidgets には次のような制約があるからである。 > > * ボタンやラベルなどのほとんどの部品はサイザーの上にしか乗らない。 ?
聖帝
この記事より既にwebにあるページの方がよっぽどましだねえ。 こうして適当な事書き飛ばして評価を下げていくんだな、と思った。
これが横着プログラマの限界か。
ひとまず次スレ案 【GUI】wxWidget(旧wxWindows) その2【ツールキット】
前が「のひょーん」だったから次は「はにゃーん」きぼんぬ。
聖帝を愚弄するな
【GUIライブラリ】wxWidgetsではにゃーん 2
愛を!もっと愛を!
よく考えたらwxWidgetsなんだよな ~ 952のには"s"が足りない
【聖帝】GUIライブラリwxWidgets その2【サイザー】
サイザーってどっかの雑誌みたいだな
聖帝はサイザーではなくサウザーですよ
サイザーは大鎌持った金髪美女のほうだ
notus が、なかなか使えるようにならないね〜。 boost とかに毒されてきて、もう wxWidgets が気持ち悪くてたまらん。
モダンなC++のスタイルで書きたいってのはある オフィシャルでそういうラッパーみたなのあっても いいんじゃないかな? で、ゆくゆくはレガシーなスタイルなほうがラッパー経由 になるみたいな
wxRubyのMyFrame内部でraiseがArgumentErrorになってしまうんだが仕様か?
【月刊】GUIライブラリwxWidgets その2【サイザー】
スレタイにwxWindowsも入れないと過疎化しちゃうぞ
wxWindows の検索結果のうち 日本語のページ 約 1,790 件 wxWidgets の検索結果のうち 日本語のページ 約 900 件 微妙なところだな…
【悲しき】GUIライブラリwxWidgets/wxWindows その2【聖帝】
【GUI】wxWidgets(旧wxWindows) その2【ツールキット】 でいいじゃん 「ツールキット」で検索する人もいるかもしれないし GUIライブラリには違いないけどね
Google的にマルチプラットフォームも入れたいが、ちょと長くなってしまうな。
サイザーは是非とも入れてほしい。
Fedora Core 2のC++で使っている人いませんか? wxWindowsのインストールをどうやったのか、教えてください。
apt
>>981 Fedora Extrasに入ってるじゃん。
>>981 この程度のことすらできんやつがプログラムなんかできるのか?本気で疑問だ。
まぁ誰もが最初は初心者だ
>>974 適当にながめて見たけど、モダンって言うよりか、
なんとなく90年代っぽいな〜、なんて思ってみたり。
フェミニーナ軟膏 → 【う】
うめ
めかぶ
梅
生め
うめ
あ、終わってもうた
先着一名様に1000ゲットの権利↓
ほ、ほーっ、ホアアーッ!! ホアーッ!!
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。