【GUI】wxWidgets(旧w ..
969:デフォルトの名無しさん
06/08/29 17:09:05
frameとpanelとdialogって何が違うんでしょうか?
更新出来る画像領域とボタンのある形を作ろうとwxGladeを実行しても、
画像がStaticBitmapしか見付からないんですが、動的なbitmapは無いんでしょうか?
GUIプログラミング自体初めてで、
解説サイトがさらっと通り過ぎてる所から進めません…
970:デフォルトの名無しさん
06/08/29 19:07:31
>>969
>frameとpanelとdialogって何が違うんでしょうか?
何が違うって、モノが違う。
あえて概要を言うなら、ふれーむは典型的なウインドウ、パネルは平べったい領域単体、ダイアログはパネルのようなウインドウのようなもの。
正確には↓読め。
URLリンク(www.wxwindows.org)
>更新出来る画像領域とボタンのある形を作ろうとwxGladeを実行しても、
>画像がStaticBitmapしか見付からないんですが、動的なbitmapは無いんでしょうか?
そういう特別なwidgetは(少なくともwxGladeには)無い。
パネルなどに直接描画する。
971:デフォルトの名無しさん
06/08/31 14:14:01
>そういう特別なwidgetは(少なくともwxGladeには)無い。
ないんですか…、xrcedとかでもやってみましたが、それらしいのはありませんでした。
で、言われたとおりにパネルに描こうと思ったんですが、
パネルのbitmapタイルへのポインタを取得するようなメンバ関数も、
上書きするようなメンバ関数も見当たりません…
manualを探してみた所、wxImageが目的の物に近い気がするのですが、これはGUI上に置けないor Panelに描けないんでしょうか??
972:デフォルトの名無しさん
06/08/31 15:10:44
>>971
君と僕とは共通の言葉で話ができない気がする。
付属のsampleは見たか?
973:デフォルトの名無しさん
06/08/31 15:56:01
wxGladeで全てのWidgetsを配置できるわけじゃないので
コード自分で書いて。
974:デフォルトの名無しさん
06/08/31 20:42:22
初めてwx触ってみたときに、イメージデータを適当に
フレームか何かのメンバにしてしまってハマったことがあったな。
その上にはサイザーとパネルが貼り付いているものだから、
フレームを拡大縮小している瞬間だけ画像がチラチラ見えたりしたっけ。
なんか、Linux上とWindows上で挙動がちがったりして。
何年か前の話だから何か勘違いしてるかもしれんが。
とにかくその延長で作ったブツのソースを今見たが、
(汚いからよくわからんが)ごちゃごちゃとメンバを持たせた
独自のパネルを作って差し替えてるな。
ちなみに俺はC++を念頭に書いてるが、Pythonなどはよくわからん。
975:デフォルトの名無しさん
06/09/01 15:24:16
wxのマクロを使う糞古臭い設計はなんとかならんのか。
今更こんなもん使う気にならん。
976:デフォルトの名無しさん
06/09/01 15:44:30
グダグダ口から糞たれてねえで、てめえでどうにかしな。
977:デフォルトの名無しさん
06/09/01 16:15:55
>>976
やっくん
978:デフォルトの名無しさん
06/09/01 17:59:37
1.wxSocketServerをlisten
2.イベントハンドラにwxSOCKET_INPUTを登録
3.クライアントから接続しデータを送信
4.一度目のデータ処理を待たずに2度目の送信を行う
と
サーバサイドでwxYield called recursivelyというAssertが出る
wxSocketBase::Read()でYield()を呼び出していることが原因
socketサンプルをコンパイルしても出るらしい
回避方法情報募集中
979:デフォルトの名無しさん
06/09/01 19:19:27
>>975
10年くらい続いてるツールキットだから仕方なかろう。
wxNG作りたいねという話はときどきMLで出るが、じゃあ誰が作業するんだ、
そんな余力ねーべ、という話に大抵なる。
つまり >>976 ってこった。
980:デフォルトの名無しさん
06/09/01 23:48:00
MFCの要領が解かっていればすぐに使える、というメリットもある。
981:デフォルトの名無しさん
06/09/01 23:54:48
MFCから逃れたくてGUIツールキットを探してる人には
あまりうれしくないけどね。
982:デフォルトの名無しさん
06/09/02 00:00:58
>>979
wxNGって何?
983:デフォルトの名無しさん
06/09/02 00:30:52
>>982
wx Next Generation == 次世代wx
NGは新しいものには何でも使われる定番の名前。
984:デフォルトの名無しさん
06/09/02 01:07:41
>>983
ありがとう。
wxNGをメーリングリストのログやフォーラムを検索してもほとんど言及がないし
唐突に出てくるからNGは一般的な言葉な略語なんだろうなとは思ったが、それだけに
うまくNGの意味を検索する術を思いつかなかったw
985:978
06/09/02 07:46:30
ちょっとわかりずらいので書き直し
HTTPサーバを想像してください
コードはサンプルのものですので、見ればわかります
1.サーバ作成
EVT_SOCKET(SERVER_ID, MyFrame::OnServerEvent)
m_server = new wxSocketServer(addr);
m_server->SetEventHandler(*this, SERVER_ID);
m_server->SetNotify(wxSOCKET_CONNECTION_FLAG);
m_server->Notify(true);
サーバを作成し、Acceptイベントを登録しています
2.Accept
void MyFrame::OnServerEvent(wxSocketEvent& event)
sock = m_server->Accept(false);
sock->SetEventHandler(*this, SOCKET_ID);
sock->SetNotify(wxSOCKET_INPUT_FLAG | wxSOCKET_LOST_FLAG);
sock->Notify(true);
接続要求を受け入れ、受信イベントを登録しています
3.データ受信
void MyFrame::OnSocketEvent(wxSocketEvent& event)
wxSocketBase *sock = event.GetSocket();
sock->Read(&c, 1);
受信要求があればそれぞれのソケットにReadを掛けます
この時、クライアントから同時に複数の接続を行うと、それぞれが別スレッドとしてイベント化されます
Readがほぼ同時に別のソケットに対して呼ばれるのですが、イベントハンドラはMyFrameのもので同一です
この時、Readは内部でwxYield(GUI更新)を呼び出します
wxYieldは1度の関数呼び出し中に2度以上呼んではいけない仕様になっています
そこで「wxYield called recursively」というAssertを出してエラー終了します
986:デフォルトの名無しさん
06/09/02 11:36:49
990ぐらいで次スレ立てれば十分なペースかなあ?
987:デフォルトの名無しさん
06/09/03 19:01:47
てst
988:デフォルトの名無しさん
06/09/03 22:41:24
いや980超えたらもう落ちるだけだろ
立てられるうちに立てとくべきだ
989:デフォルトの名無しさん
06/09/06 03:49:36
お前ら開発環境ってどうしてる?
990:デフォルトの名無しさん
06/09/08 17:39:35
KDevelop
991:デフォルトの名無しさん
06/09/08 17:47:12
「開発しない」という選択
992:デフォルトの名無しさん
06/09/08 18:16:04
>>990
おれはGNOME派だが、KDevは乙だと思う。
でもやっぱり使ってないけど。
おれはwxGlade + Emacs (+ 諸々のUNIXツール)
993:デフォルトの名無しさん
06/09/08 21:30:33
wxGladeとかってSizerが激しく使いにくいんだけどどうにかならんの・・・?
そんなわけでwx-DevC++で作って移植してる。
余計面倒なことも多々あるけど;
994:デフォルトの名無しさん
06/09/08 21:57:28
>>989
最近使い始めたんだが、wxGlade/VS2005/Eclipse/poEdit。
アクセラレータの自動登録って動いてないのかな?
wxGladeも自分で手を入れたいぐらい、機能が動いていない。
995:デフォルトの名無しさん
06/09/08 22:42:40
DialogBlocksがイイヨ
996:デフォルトの名無しさん
06/09/09 00:24:22
【GUI】wxWidgets(旧wxWindows) その3【サイザー】
スレリンク(tech板)
997:デフォルトの名無しさん
06/09/09 08:48:02
>>996
どうもお疲れさまでした。
998:デフォルトの名無しさん
06/09/09 09:25:16
>>995
有料か。でもタイトルの文字消すぐらい、誰でもできるんじゃない?
999:デフォルトの名無しさん
06/09/09 13:57:22
Code::BlocksのNightly BuildsではwxSmithが使えるようになってる。
Nightly builds - Code::Blocks
URLリンク(www.codeblocks.org)
WxSmith plugin - CodeBlocks
URLリンク(wiki.codeblocks.org)
1000:デフォルトの名無しさん
06/09/09 14:27:04
日テレはルパンにひどいことしたよね(´・ω・`)
1001:1001
Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4671日前に更新/209 KB
担当:undef