【GUI】wxWidgets(旧wxWindows) その2【サイザー】

952デフォルトの名無しさん:2006/06/25(日) 19:28:27
xrcで日本語って出来るかな?
cp932、utf8、sjis、どれもだめなんだけど・・・
ちなみにwxPerlです。
953デフォルトの名無しさん:2006/06/25(日) 20:50:45
確かできたと思ったけどな。
どのみちちゃんと書くときはgettextで変換するので
xrcには日本語書かないけど。
954952:2006/06/25(日) 21:27:28
>>953
ありがとう。
WinとMacで試してるけど、どっちもXRCのパースで失敗する。Load()。
日本語だけでいいんだけど、gettext使うかな・・・
前に一度やったんだけど、エディットがめんどうで・・・
955デフォルトの名無しさん:2006/06/27(火) 00:41:49
サクラでUTF-8変換!
956953:2006/06/27(火) 04:43:25
>>954
できると言った手前、実はできなかったら申し訳ないので試した。

手元のプログラムでメニューの&Fileを「ふぁいる(&F)」に書き換えて保存。
→ちゃんと出た。少なくともロードに失敗するということはない。

xrcファイルのエンコーディングはUTF-8。
wxWidgets 2.6.2 (2.6.3じゃなくて済まぬ)のunicodeビルド。

952氏がxrcを何で作ってるか知らないけど、手で書くならUTF-8以外を使う場合は
エンコーディングをちゃんと指定しないとだめだよ。
957デフォルトの名無しさん:2006/06/27(火) 13:03:52
wxWebKit いいね!
958デフォルトの名無しさん:2006/07/21(金) 23:19:02
wxPython2.6を使ってwxListCtrlでリスト作って
リストある行をSetItemTextColour()、SetItemBackgroundColour()
を使って色をつけようとしたが、全く色が変化しない。
SetTextColour()、SetBackgroundColour()は動作しているのだが
行指定のAPIは実は宣言だけで使えない??
誰か教えて。
959デフォルトの名無しさん:2006/07/21(金) 23:53:16
wxPython付属のサンプルプログラムからコピペ

item = self.list.GetItem(1)
item.SetTextColour(wx.BLUE)
960デフォルトの名無しさん:2006/07/22(土) 00:30:03
初期化するとき、LC_VIRTUAL を指定していると
OnGetItemAttr()
を呼びにいくから、それを再定義して、アトリビュートを返せば
色が変わります。

VIRTUALじゃないばあいは、 >959さんのでいいと思われ。
961デフォルトの名無しさん:2006/07/27(木) 00:09:01
画像を表示したいんですが、実行ファイルに組み込むにはどうすればいいですかね?
外部ファイルを実行時にロードとかじゃなく、コンパイル時に組込みたいんですが。
(Winのリソースみたいな感じ?)
962デフォルトの名無しさん:2006/07/27(木) 00:27:26
あ、わかったかも。すまそ。
XRCed wxXmlResource 辺りか。
963デフォルトの名無しさん:2006/07/27(木) 03:47:16
わからん。
誰か教えてください。。。
964デフォルトの名無しさん:2006/07/27(木) 05:19:46
xpm形式をリンク
965962:2006/07/27(木) 10:36:27
>>964
ありがとう!
むちゃくちゃ簡単にできますた。

今までXML利用したプログラミングしたことがなかったので、>>962の方法では死ぬかと思いました。
こちらのほうは一から勉強します。
966デフォルトの名無しさん:2006/08/08(火) 11:43:43
2.7.0来てるな
967デフォルトの名無しさん:2006/08/09(水) 11:27:42
ぅをっ!
積極的に新しいパッケージを突っ込んで行くFedoraでさえまだ2.4と2.6の両方を用意しているというのに。

ところで君たち、RADツールとしては何を使ってますか?
俺はwxGlade以外使ったこと無いんだけれども、比較検討した人いる?
968デフォルトの名無しさん:2006/08/18(金) 23:54:23
wxGladeのボタン等の張り付き方は何とかならんものか・・・
969デフォルトの名無しさん:2006/08/29(火) 17:09:05
frameとpanelとdialogって何が違うんでしょうか?
更新出来る画像領域とボタンのある形を作ろうとwxGladeを実行しても、
画像がStaticBitmapしか見付からないんですが、動的なbitmapは無いんでしょうか?

GUIプログラミング自体初めてで、
解説サイトがさらっと通り過ぎてる所から進めません…
970デフォルトの名無しさん:2006/08/29(火) 19:07:31
>>969
>frameとpanelとdialogって何が違うんでしょうか?
何が違うって、モノが違う。
あえて概要を言うなら、ふれーむは典型的なウインドウ、パネルは平べったい領域単体、ダイアログはパネルのようなウインドウのようなもの。
正確には↓読め。
http://www.wxwindows.org/manuals/2.6.3/wx_contents.html

>更新出来る画像領域とボタンのある形を作ろうとwxGladeを実行しても、
>画像がStaticBitmapしか見付からないんですが、動的なbitmapは無いんでしょうか?
そういう特別なwidgetは(少なくともwxGladeには)無い。
パネルなどに直接描画する。
971デフォルトの名無しさん:2006/08/31(木) 14:14:01
>そういう特別なwidgetは(少なくともwxGladeには)無い。
ないんですか…、xrcedとかでもやってみましたが、それらしいのはありませんでした。
で、言われたとおりにパネルに描こうと思ったんですが、
パネルのbitmapタイルへのポインタを取得するようなメンバ関数も、
上書きするようなメンバ関数も見当たりません…

manualを探してみた所、wxImageが目的の物に近い気がするのですが、これはGUI上に置けないor Panelに描けないんでしょうか??
972デフォルトの名無しさん:2006/08/31(木) 15:10:44
>>971
君と僕とは共通の言葉で話ができない気がする。
付属のsampleは見たか?
973デフォルトの名無しさん:2006/08/31(木) 15:56:01
wxGladeで全てのWidgetsを配置できるわけじゃないので
コード自分で書いて。
974デフォルトの名無しさん:2006/08/31(木) 20:42:22
初めてwx触ってみたときに、イメージデータを適当に
フレームか何かのメンバにしてしまってハマったことがあったな。
その上にはサイザーとパネルが貼り付いているものだから、
フレームを拡大縮小している瞬間だけ画像がチラチラ見えたりしたっけ。
なんか、Linux上とWindows上で挙動がちがったりして。
何年か前の話だから何か勘違いしてるかもしれんが。

とにかくその延長で作ったブツのソースを今見たが、
(汚いからよくわからんが)ごちゃごちゃとメンバを持たせた
独自のパネルを作って差し替えてるな。
ちなみに俺はC++を念頭に書いてるが、Pythonなどはよくわからん。
975デフォルトの名無しさん:2006/09/01(金) 15:24:16
wxのマクロを使う糞古臭い設計はなんとかならんのか。
今更こんなもん使う気にならん。
976デフォルトの名無しさん:2006/09/01(金) 15:44:30
グダグダ口から糞たれてねえで、てめえでどうにかしな。
977デフォルトの名無しさん:2006/09/01(金) 16:15:55
>>976
やっくん
978デフォルトの名無しさん:2006/09/01(金) 17:59:37
1.wxSocketServerをlisten
2.イベントハンドラにwxSOCKET_INPUTを登録
3.クライアントから接続しデータを送信
4.一度目のデータ処理を待たずに2度目の送信を行う

サーバサイドでwxYield called recursivelyというAssertが出る

wxSocketBase::Read()でYield()を呼び出していることが原因
socketサンプルをコンパイルしても出るらしい

回避方法情報募集中
979デフォルトの名無しさん:2006/09/01(金) 19:19:27
>>975
10年くらい続いてるツールキットだから仕方なかろう。

wxNG作りたいねという話はときどきMLで出るが、じゃあ誰が作業するんだ、
そんな余力ねーべ、という話に大抵なる。

つまり >>976 ってこった。
980デフォルトの名無しさん:2006/09/01(金) 23:48:00
MFCの要領が解かっていればすぐに使える、というメリットもある。
981デフォルトの名無しさん:2006/09/01(金) 23:54:48
MFCから逃れたくてGUIツールキットを探してる人には
あまりうれしくないけどね。
982デフォルトの名無しさん:2006/09/02(土) 00:00:58
>>979
wxNGって何?
983デフォルトの名無しさん:2006/09/02(土) 00:30:52
>>982
wx Next Generation == 次世代wx

NGは新しいものには何でも使われる定番の名前。
984デフォルトの名無しさん:2006/09/02(土) 01:07:41
>>983
ありがとう。
wxNGをメーリングリストのログやフォーラムを検索してもほとんど言及がないし
唐突に出てくるからNGは一般的な言葉な略語なんだろうなとは思ったが、それだけに
うまくNGの意味を検索する術を思いつかなかったw
985978:2006/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デフォルトの名無しさん:2006/09/02(土) 11:36:49
990ぐらいで次スレ立てれば十分なペースかなあ?
987デフォルトの名無しさん:2006/09/03(日) 19:01:47
てst
988デフォルトの名無しさん:2006/09/03(日) 22:41:24
いや980超えたらもう落ちるだけだろ
立てられるうちに立てとくべきだ
989デフォルトの名無しさん:2006/09/06(水) 03:49:36
お前ら開発環境ってどうしてる?
990デフォルトの名無しさん:2006/09/08(金) 17:39:35
KDevelop
991デフォルトの名無しさん:2006/09/08(金) 17:47:12
「開発しない」という選択
992デフォルトの名無しさん:2006/09/08(金) 18:16:04
>>990
おれはGNOME派だが、KDevは乙だと思う。
でもやっぱり使ってないけど。

おれはwxGlade + Emacs (+ 諸々のUNIXツール)
993デフォルトの名無しさん:2006/09/08(金) 21:30:33
wxGladeとかってSizerが激しく使いにくいんだけどどうにかならんの・・・?
そんなわけでwx-DevC++で作って移植してる。
余計面倒なことも多々あるけど;
994デフォルトの名無しさん:2006/09/08(金) 21:57:28
>>989
最近使い始めたんだが、wxGlade/VS2005/Eclipse/poEdit。
アクセラレータの自動登録って動いてないのかな?
wxGladeも自分で手を入れたいぐらい、機能が動いていない。
995デフォルトの名無しさん:2006/09/08(金) 22:42:40
DialogBlocksがイイヨ
996デフォルトの名無しさん:2006/09/09(土) 00:24:22
【GUI】wxWidgets(旧wxWindows) その3【サイザー】
http://pc8.2ch.net/test/read.cgi/tech/1157727990/
997デフォルトの名無しさん:2006/09/09(土) 08:48:02
>>996
どうもお疲れさまでした。
998デフォルトの名無しさん:2006/09/09(土) 09:25:16
>>995
有料か。でもタイトルの文字消すぐらい、誰でもできるんじゃない?
999デフォルトの名無しさん:2006/09/09(土) 13:57:22
Code::BlocksのNightly BuildsではwxSmithが使えるようになってる。

Nightly builds - Code::Blocks
http://www.codeblocks.org/nightly/

WxSmith plugin - CodeBlocks
http://wiki.codeblocks.org/index.php?title=WxSmith
1000デフォルトの名無しさん:2006/09/09(土) 14:27:04
日テレはルパンにひどいことしたよね(´・ω・`)
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。