[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 12/05 01:38 / Filesize : 262 KB / Number-of Response : 969
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2006/09/09(土) 00:06:30 ]
クロスプラットフォーム GUI ライブラリの wxWidgets (旧 wxWindows)について語りましょう。

本家
 www.wxwidgets.org/
wxWindows日本語プロジェクト
 wxwindowsjp.sourceforge.jp/
Let's wxWidgets
dot-gray.s33.xrea.com/
(*)準備中(*)
www.geocities.co.jp/SiliconValley-Cupertino/8526/
wxWindowsで始めるC++ GUIプログラミング
www.h3.dion.ne.jp/~k5_n/wxwin/
wxWidgets でクロスプラットフォーム GUIアプリを作ろう
namazu.org/~satoru/pub/uu-2004-08/
dW : Linux : wxWindowsの概要
 www-6.ibm.com/jp/developerworks/linux/010413/j_l-wxwin.html
SunWorld Online:wxWindows――無名だが成熟したGUIツールキット
 www.idg.co.jp/sw/back/200102/20010219_01_report.html

2 名前:デフォルトの名無しさん mailto:sage [2006/09/09(土) 00:07:04 ]
過去スレ
pc8.2ch.net/test/read.cgi/tech/1097524712/
pc5.2ch.net/test/read.cgi/tech/1052186697/

主な言語バインディング

wxPython
 www.wxpython.org/
wxPerl
 wxperl.sourceforge.net/
wxRuby
 wxruby.rubyforge.org/wiki/wiki.pl
wx4j
 www.wx4j.org/
wx.NET
 wxnet.sourceforge.net/
wxLua
 www.luascript.thersgb.net/
wxHaskell
 wxhaskell.sourceforge.net/

3 名前:デフォルトの名無しさん mailto:sage [2006/09/09(土) 00:17:35 ]
車輪の再発明をしても仕方がありませんし、公開に値するしろものでもありませんので
将来的にもソースは出せないと思います。
ゆくゆくは自作のプログラムに組み込めればそれでいいかな、と。

4 名前:デフォルトの名無しさん mailto:sage [2006/09/09(土) 00:18:35 ]
ところで
www.codeproject.com/useritems/wxwidgets.asp
このページはいろいろ参考になると思うんですが、テンプレに入れませんか?

5 名前:デフォルトの名無しさん mailto:sage [2006/09/09(土) 00:21:50 ]
書籍のPDF
ttp://www.phptr.com/promotions/promotion.asp?promo=1484&redir=1&rl=1
www.phptr.com/content/images/0131473816/downloads/0131473816_book.pdf

6 名前:デフォルトの名無しさん mailto:sage [2006/09/09(土) 00:35:47 ]
>>1
一応JavaScriptバインディングもあるよ。
wxJS
 users.skynet.be/saw/wxJS/

7 名前:デフォルトの名無しさん [2006/09/09(土) 08:36:39 ]
>>1 乙

>>4は移動になっているらしい。
www.codeproject.com/library/wxwidgets.asp

8 名前:デフォルトの名無しさん [2006/10/03(火) 21:40:46 ]
wxCodeも入れない?
wxTreeListCtrlはWin32 Common Controlにも欲しいと思う。
wxcode.sourceforge.net/


9 名前:デフォルトの名無しさん mailto:sage [2006/10/03(火) 22:19:18 ]
前スレの>>978, 985

wxSocket使おうとしているので、一応確認したが、
受信スレッドを内部で別に立てているなら、
wxUSE_THREADSを1と定義してビルドする必要があるのだろう。

wxMSWだけでの検証ですまんが、コードを追ってみると、

メインスレッドのみ、wxYieldを呼び出している。
wxYieldは内部でwxTheApp->Yield()を呼んでいるだけで
ここがマルチスレッドセーフではない模様。

他のスレッドはwxThread::Yield()を呼んでいる。
wxThread::Yield()の内部はSleep(0)なので、問題なし。

wxUSE_THREADSが無い時点でスレッドを立てるような
物は使ってはいけないのでイベントハンドラを定義せずに
ブロッキングで組む必要があるということじゃないのかな?
ところで、スレッド無しはわざわざヘッダを書き直さないと
そのようにはならないと思うのだが、実行してデバッグしたわけではないので
間違っていたらすまん。
そのうち自分でもテストはしないとだめなんだろうがねぇ。

10 名前:デフォルトの名無しさん mailto:sage [2006/10/03(火) 23:05:04 ]
>>9
wxUSE_THREADSは1(初期値)のまんまですね
wxWidgets自体のバグの線が高そう
環境はmswです



11 名前:デフォルトの名無しさん mailto:sage [2006/10/03(火) 23:48:15 ]
メインスレッドは::wxSafeYield()使え、と言ってみる

12 名前:デフォルトの名無しさん mailto:sage [2006/10/04(水) 02:09:24 ]
言ってみるって言われても、wxSocketServer::Read内部にYield()が明記されているわけでw
勝手に書き換えるのは気持ち悪いでしょう

13 名前:9 mailto:sage [2006/10/04(水) 02:15:41 ]
>>11
ソースを追ってみたが、wxSafeYieldは指定したウィンドウ以下を除いて
Disable状態にした後、wxYieldを呼んでいるだけだ。
2.6.3なんだが、wxYieldからwxTheApp->Yield()内では
MT-FIXMEなどとかいた、幼稚なバグが残っているから無理。
それと、Log関数もMT Safeでないのでむりなうえ、
wxMutexGuiLeaveOrEnterはMainThread以外からの呼び出しではAssertがおきるぞ。

>>10
とりあえず、Readの先のYield呼び出しのかしょをデバッガで追って、
wxThread::Yieldにちゃんといっているかどうか確認するほうが早いよ。

Yieldを呼んでいるのは大体、wxSocket*::Wait*で、GSocketの内部でも呼んでいるのかもしれない。
GSocket::ReadもStream(TCP)なら::recvを呼んでいるだけなので、問題はなさそうだが。
GSocket::Writeもにたようなものだった。

あときになるのは、イベントも全てメインスレッドから呼ばれるから、
OnSocketEventでReadするのはMainThreadじゃない?
それだと、Multi Threadになってても、
イベント処理に行くからスタックオーバーフローしてしまいそうだが。

イベントで拾ってくるならイベントが着たら受信用スレッドにconditionなりで
知らせて、Recvさせるようにするのはどう?

14 名前:デフォルトの名無しさん mailto:sage [2006/10/04(水) 02:56:03 ]
それなら最初からスレッドでReadしっぱなしのほうがいいなw

15 名前:デフォルトの名無しさん [2006/10/05(木) 14:10:04 ]
OpenGL用の再描画関数でRefresh()以外の奴って何かないの?
教えてエロい人

16 名前:デフォルトの名無しさん mailto:sage [2006/10/05(木) 14:29:53 ]



 サ イ サ ゙ ー っ て イ可 ? 



17 名前:デフォルトの名無しさん mailto:sage [2006/10/06(金) 17:27:55 ]
性帝

18 名前:デフォルトの名無しさん mailto:sage [2006/10/06(金) 23:36:44 ]
キラーアプリはaudacity?

19 名前:デフォルトの名無しさん mailto:sage [2006/10/07(土) 00:21:00 ]
>>15
OpenGL描画して最後にwxGLCanvas::SwapBuffer()呼ぶ関数作って
それ呼べばRefresh()呼ばんでもいいんじゃない?

20 名前:デフォルトの名無しさん mailto:sage [2006/10/07(土) 19:30:39 ]
英語なのが悔やまれる。
だれかサンプルだけでも、日本語に訳してくれ。



21 名前:デフォルトの名無しさん [2006/10/07(土) 23:19:02 ]
あんまり使ってる人いないのかな?


22 名前:デフォルトの名無しさん mailto:sage [2006/10/07(土) 23:25:36 ]
Linux使ってる奴なんて相手にしない が正解。

23 名前:デフォルトの名無しさん mailto:sage [2006/10/07(土) 23:39:23 ]
リファレンスなら日本語訳されてるぞ
英語っていってもほとんど基礎英語レベルのことしかない
これがわからない人はそもそも言語の構造がわかってないんだろう
MFCでも先に勉強したほうが早いよ

24 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 23:42:49 ]
DialogBlocksで

wxDialogにwxButton貼り付けたんだけど
Dialogのサイズ変更するとボタンが
最大化しちゃうんだが、何が原因なのかな?


25 名前:24 mailto:sage [2006/10/08(日) 23:47:54 ]
適当にToolbar挿入してみたら直った。
Toolbar必須なのか...

26 名前:デフォルトの名無しさん mailto:sage [2006/10/09(月) 00:35:06 ]
貼付けてるのが一個だけだったら最大化してた
もうひとつ何か貼れば最大化しなかったよ

27 名前:デフォルトの名無しさん mailto:sage [2006/10/09(月) 01:31:08 ]
>>20
結構細々としているからねwxWidgetsは。
俺はサンプルに日本語コメントを付けまくってしょっちゅう見返してるよ。

28 名前:デフォルトの名無しさん mailto:sage [2006/10/09(月) 01:46:20 ]
sizer

29 名前:デフォルトの名無しさん mailto:sage [2006/10/09(月) 01:59:55 ]
俺は英語だけど、どっかのサイトで公開しているPDFを読んでます。
それなりにいいと思うぞ。
ただだし。

30 名前:デフォルトの名無しさん mailto:sage [2006/10/09(月) 02:46:03 ]
英語より、日本語を読みたい。
英語は疲れるよ。



31 名前:デフォルトの名無しさん [2006/10/09(月) 16:28:27 ]
挙げ

32 名前:デフォルトの名無しさん mailto:sage [2006/10/13(金) 17:19:02 ]
ウィンドウをクローズすると、登録したイベントハンドラが全部呼ばれるって、
何この糞仕様。

33 名前:デフォルトの名無しさん [2006/10/14(土) 00:11:57 ]
2.7.1 リリース

34 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 00:27:08 ]
7なんか怖くて使う気にならない

35 名前:デフォルトの名無しさん [2006/10/14(土) 00:38:34 ]
日本語マニュアルまだ〜?

36 名前:9 [2006/10/14(土) 01:13:36 ]
コーディングした結果としては、ソケットのイベントもその他のイベントも全てメインスレッドのみで動いてるな。
wx関連のほとんどの機能はメインスレッド以外でやってはいけない感じなのかもしれない。


37 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 03:39:53 ]
>>36
ん〜。そうでもないよ。
受信用スレッド作ってそこでソケットごにょごにょやってたことあるし。
ってそういう話では無い?

自分で何か修正したような記憶があったりなかったり。。。
2.6が出た頃の話だったと思うので、あまり真に受けんといてください。

38 名前:9 mailto:sage [2006/10/14(土) 20:18:52 ]
>>37
俺も送信用スレッドは使ってるけどね、wxのINPUTイベントやCLOSEイベントなんか
はメインスレッドでイベントでもらってRead/Destroyなどをするようにしてる。
Read/Writeを交互に行うようなプロトコルにしているため、
Writeをしながら、Readを呼び出しても問題が無いかどうかは検証していない。

また、排他制御をSingle Thread Execution Patternで避けれるから、一概に悪いとは言えないけどね。

送信・受信と別々につなげてそれぞれブロッキングで別スレッドを立てるほうがいいのかもしれないけど
Nagleがらみで送受信を分けるとラグが発生しそうだしなぁ。


39 名前:デフォルトの名無しさん [2006/10/15(日) 14:33:00 ]
buttonをつけるにはどうしたらいいんですか?

40 名前:デフォルトの名無しさん [2006/10/15(日) 18:34:02 ]
これって、exeサイズがなんか異常に大きくなるんだけど、こういうもん?
2.6.3のサンプルのminimalをbccでコンパイルしたら、exeサイズ約1.9MB、何だけど...
でかすぎー



41 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 18:42:04 ]
MFCだってmfcのランタイムまでいれたら相当でかいな

42 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 19:44:40 ]
stripしてexepacker通したらそこそこ小さくなるでよ
まぁでかいのはでかいが

43 名前:40 mailto:sage [2006/10/15(日) 22:09:44 ]
>>42
そうですか、でかいですか。どうもです。


44 名前:デフォルトの名無しさん mailto:sage [2006/10/21(土) 15:05:41 ]
wxChar *をchar *に変換する方法ってありますでしょうか。
char *しか受け付けない関数があるんです。

45 名前:デフォルトの名無しさん mailto:sage [2006/10/21(土) 20:48:25 ]
wx{MB,WX,WC}2{MB,WX,WC} (関数)
エンコーディングを特定したければwxMBConv系を直接使う

46 名前:デフォルトの名無しさん mailto:sage [2006/10/21(土) 22:33:57 ]
wxWC2MBを試してみていますが、うまくいきません。
三番目のsize_t nにはwchar_tの文字列のサイズを渡せば良いのでしょうか。

47 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 14:15:34 ]
警告: dereferencing type-punned pointer will break strict-aliasing rules
って警告が大量に出るんですが、これどうにかならないでしょうか?

48 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 00:17:38 ]
      , イ)ィ -─ ──- 、ミヽ
      ノ /,.-‐'"´ `ヾj ii /  Λ
    ,イ// ^ヽj(二フ'"´ ̄`ヾ、ノイ{
   ノ/,/ミ三ニヲ´        ゙、ノi!
  {V /ミ三二,イ ,  /,   ,\  Yソ
  レ'/三二彡イ  .:ィこラ   ;:こラ  j{
  V;;;::. ;ヲヾ!V    ー '′ i ー ' ソ
   Vニミ( 入 、      r  j  ,′  
   ヾミ、`ゝ  ` ー--‐'ゞニ<‐-イ
     ヽ ヽ     -''ニニ‐  /
        |  `、     ⌒  ,/
       |    >┻━┻'r‐'´
      ヽ_         |
         ヽ _ _ 」    

  ググレカス [ Gugurecus ]
  ( 2006 〜 没年不明 )

49 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 00:48:49 ]
……ググレカスって現代人だったのか

50 名前:デフォルトの名無しさん mailto:sage [2006/11/04(土) 02:25:22 ]
どちらかというと古代ギリシャ人



51 名前:デフォルトの名無しさん [2006/11/05(日) 19:06:10 ]
実際に使ってる人はどれだけいるんだろうね?

52 名前:デフォルトの名無しさん [2006/11/05(日) 20:24:22 ]
wxDev-C++って、メニューとかツールバーはまともにでなくない?
ボタンとか、絶対位置指定できる点はいいとは思うけど。

DialogBlocksはちょっと複雑なの書くとエラーがでるんだが・・・


53 名前:デフォルトの名無しさん [2006/11/09(木) 01:32:48 ]
wxWidgetsをつかってタスクマネージャみたいのを作ろうと思うのですが
つまづいてます

メインの処理とかはどうでいいのですが、常駐アプリとして使うことを考慮して

 1. 常に手前に表示
 2. 透明度を変えられる
 3. キーボードとかマウスとかのイベントを下のウィンドウにスルー

を実現したいのですが3番目を実現する方法がわかりません

54 名前:デフォルトの名無しさん mailto:sage [2006/11/09(木) 02:36:59 ]
evt.veto

55 名前:53 mailto:sage [2006/11/09(木) 18:20:15 ]
>>54
私のグーグル力が確かならVetoはwxNotifyEventではじめて定義されてるので
wxNotifyEventを継承していないwxMouseEventに対しては呼べないと思うのですが・・・

wxNotifyEvent
ttp://www.wxwidgets.org/manuals/2.6.3/wx_wxnotifyevent.html

56 名前:デフォルトの名無しさん mailto:sage [2006/11/09(木) 20:38:26 ]
2.7.2出たね

11月13日に2.8.0リリース予定だそうだ

57 名前:53 mailto:sage [2006/11/09(木) 23:02:03 ]
マウスクリックイベントをスルーする方法
ttp://forums.belution.com/ja/vc/000/172/70.shtml

Win32APIネイティブでここまでゴリゴリやってできないとなると
それをクロスプラットフォームGUIライブラリに求めるのは酷だと思うのであきらめます
ありがとうございました

58 名前:デフォルトの名無しさん mailto:sage [2006/11/12(日) 18:29:20 ]
これって、3.0になるとSTLとか使ってモダンなAPIになるんでしょうか?
なんか、そんな話が出てたような気がするんで。
そのソースってまだ公開されてないですよね?

59 名前:デフォルトの名無しさん mailto:sage [2006/11/12(日) 22:16:52 ]
さて、ややこしい話が出たところで、また俺がRADネタを振ろうかね。
おまいら、何でGUI君でんの?

60 名前:デフォルトの名無しさん mailto:sage [2006/11/12(日) 22:21:34 ]
CUIじゃ時代遅れだから。



61 名前:デフォルトの名無しさん mailto:sage [2006/11/12(日) 22:25:37 ]
そういう意味じゃないと思うよww

62 名前:デフォルトの名無しさん mailto:sage [2006/11/12(日) 22:35:24 ]
俺は Mac と Solaris かな。

63 名前:デフォルトの名無しさん mailto:sage [2006/11/14(火) 12:45:50 ]
wxPythonのGridの質問です。

EVT_GRID_CELL_CHANGEの時に新しく行を追加すると
無限ループになってしまいます。
エラーを見ると、新しい行でEVT_GRID_CELL_CHANGEが起きてるのでなくて
最初にEVT_GRID_CELL_CHANGEを起こした行で再帰になってるようなのですが
これを回避する方法はありますか?
やりたいことは MS Accessのテーブルみたいに、
空白行に何か書込んだら、新しい空白行を追加したいのです。

class MyGrid(wx.grid.Grid):
 def __init__(self, parent):
  wx.grid.Grid.__init__(self, parent, -1, size=(200, 100) )
  self.CreateGrid(1,1)
  self.Bind(wx.grid.EVT_GRID_CELL_CHANGE, self.OnCellChange)

 def OnCellChange(self, event):
  Row = event.GetRow()
  print "%d: EVT_GRID_CELL_CHANGE" % Row
  self.InsertRows(Row + 1, 1, 1)

結果:
0: EVT_GRID_CELL_CHANGE
 (・・数十行繰り返し・・)
0: EVT_GRID_CELL_CHANGE
Traceback (most recent call last):
File ****, line 15, in OnCellChange
Row = event.GetRow()
RuntimeError: maximum recursion depth exceeded

64 名前:507 mailto:sage [2006/11/14(火) 14:19:45 ]
>>59
うぃんどうず
率直なところ使い勝手はあまり良くない

65 名前:デフォルトの名無しさん mailto:sage [2006/11/14(火) 16:26:12 ]
これって半透明なウィンドウつくれるの?

66 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 23:21:20 ]
多分半透明は無理

67 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 23:28:33 ]
>>63
OnCellChangeで再帰呼び出しチェック用のフラグ立てて、
再帰だったら何もしないでreturnすりゃいいんじゃない?

68 名前:デフォルトの名無しさん [2006/11/16(木) 01:22:30 ]
これ、使い方がMFCにそっくりだね。
ちょっとウザイ

サイズがでかいのはどうにかならないかな?
メモ帳を作ったら、3Mあったよ。
ありえねー

69 名前:デフォルトの名無しさん mailto:sage [2006/11/16(木) 10:40:39 ]
>>68
ダイナミックリンクにすればいい。

70 名前:デフォルトの名無しさん mailto:sage [2006/11/16(木) 12:26:43 ]
>>67
フラグのタイミングをいろいろ試して、
  ・・・
  self.FlagRec = 0

 def OnCellChange(self, event):
  Row = event.GetRow()
  self.FlagRec += 1
  print "%d: %d: EVT_GRID_CELL_CHANGE" % (self.FlagRec, Row)
  if self.FlagRec == 1:
   self.InsertRows(Row + 1, 1, 1)
   self.FlagRec = 0

としたらうまくいきました。
あと、InsertRows じゃなくて AppendRows を使えば再帰が起らず思い通りになりました



71 名前:毛の生えたブリーフ mailto:sage [2006/11/20(月) 20:42:19 ]
wxbasic.sourceforge.net/

私はwxBasicを使っています。結構高速に動くし、楽チンです。

frame = New wxFrame(NULL, -1 "テスト")
frame.Show(True)

このたった二行で、窓が開きます。
暇ができたら自分のサイトに解説を書こうと思っています。

72 名前:デフォルトの名無しさん mailto:sage [2006/11/20(月) 20:58:18 ]
? USING

73 名前:デフォルトの名無しさん mailto:sage [2006/11/20(月) 21:05:55 ]
import Graphics.UI.WX
main = start $ frame [text := "test", visible := True]

wxHaskellでも二行、と意地を張ってみるテスト

74 名前:デフォルトの名無しさん mailto:sage [2006/11/20(月) 21:18:48 ]
Haskell 奇麗だなあ

75 名前:デフォルトの名無しさん mailto:sage [2006/11/20(月) 21:44:54 ]
どこがきれいなんだよ。わけわかんねーよ

76 名前:毛の生えたブリーフ mailto:sage [2006/11/20(月) 22:37:32 ]
'--------GUIの作成と表示
frame = New wxFrame(NULL, -1, "テスト")
button = New wxButton(frame, -1, "押してね")
frame.Show(True)
'-------イベントハンドラの作成
Function click(event)
wxMessageBox( "ボタンを押したね", "ボタンイベント", wxOK + wxICON_INFORMATION, frame )
End
End Function
'---------イベントとイベントハンドラの関連づけ
Connect(button, wxEVT_COMMAND_BUTTON_CLICKED, "click")


たったこれだけです。ですが、、、、wxWidgetsのドキュメントを
読みこなすのは正直きついですね。wxBasicのウィジェッツはバージョンが
古いので、本家から古めのドキュメントを取ってきて読んでいます。

77 名前:毛の生えたブリーフ [2006/11/21(火) 21:09:59 ]
スレタイの「サイザー」とは何か?

これは本当に奥が深いものです。
76のコードではウィンドウいっぱいにボタンが表示されます。

wxButton(frame, -1, "押してね", wxPoint(40,50), wxSize(50,80))

などにしても駄目です。どうしてか・・・・・三日悩んで見つかったもの
それが「サイザー」

78 名前:デフォルトの名無しさん mailto:sage [2006/11/21(火) 22:18:10 ]
 サ イ サ ゙ ー っ て イ可 ? 

79 名前:デフォルトの名無しさん mailto:sage [2006/11/21(火) 22:51:55 ]
シンセ?

80 名前:デフォルトの名無しさん mailto:sage [2006/11/21(火) 23:02:53 ]
サイズ、サイザー、・・・



81 名前:デフォルトの名無しさん mailto:sage [2006/11/23(木) 01:54:34 ]
サイゼリヤ

82 名前:デフォルトの名無しさん [2006/11/23(木) 04:57:53 ]
退かぬ、媚びぬ、省みぬの三拍子を持ったプルグラマと対極に位置する存在



眠い・・・・('A`)

83 名前:デフォルトの名無しさん mailto:sage [2006/11/23(木) 08:26:57 ]
>>82
[退かぬ、媚びぬ、省みぬの三拍子を持ったプルグラマ]と対極に位置する存在
退かぬ、媚びぬ、省みぬの三拍子を持った[プルグラマと対極に位置する]存在

('A`) ドッチ?

84 名前:毛の生えたブリーフ mailto:sage [2006/11/23(木) 09:11:52 ]
南斗聖拳のみたいなツールキットですね。

ところで
問1、 神魔血破弾を必殺技とする鬼哭霊気の物語のタイトルは
問2、 「アステカの星」を額に持つ、プロレスの星の男の名は
問3、 「三ツ矢」と言えば
問4、 ベガ星連合軍から滅ぼされたグレン星の守護ロボットの名は

85 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 10:15:55 ]
>>83
超遅くなりましたが後者デス

        il||li  
      ∧∧     
     /⌒ヽ)  
..,,....〜(,_,,,).....,,,,....もうだめぽ

86 名前:デフォルトの名無しさん [2006/12/15(金) 23:04:27 ]
2.8.0リリース
jaist.dl.sourceforge.net/sourceforge/wxwindows/changes-2.8.0.txt

87 名前:デフォルトの名無しさん mailto:sage [2006/12/16(土) 09:32:16 ]
バージョンアップのペースが速いような…

88 名前:デフォルトの名無しさん mailto:sage [2006/12/19(火) 18:22:17 ]
サイザー専用JAVA演習場
pc8.2ch.net/test/read.cgi/tech/1165571435/

89 名前:デフォルトの名無しさん mailto:sage [2006/12/19(火) 18:42:02 ]
サイザーナックル

90 名前:デフォルトの名無しさん mailto:sage [2006/12/31(日) 16:43:52 ]
バグらしき物を発見したんですがどこかに報告した方がいいんでしょうか?
バージョンはwxMSW-2.8.0です。

// src/common/dynarray.cpp 379行目から
void name::insert(iterator it, const_iterator first, const_iterator last) \
{                                          \
 size_t nInsert = last - first, nIndex = it - begin();            \
 if (nInsert == 0)                                \
  return;                                    \
 Grow(nInsert);                                 \
                                          \
 memmove(&m_pItems[nIndex + nInsert], &m_pItems[nIndex],     \
     (m_nCount - nIndex)*sizeof(T));                  \
 for (size_t i = 0; i < nInsert; ++i, ++it, ++first)              \
  *it = *first;                                 \
 m_nCount += nInsert;                            \
}

Growによって配列が再確保されるとitがdeleteされた領域を指してしまいます。
Growの後に it = begin() + nIndex; を挿入すれば大丈夫っぽいです。



91 名前:デフォルトの名無しさん mailto:sage [2006/12/31(日) 22:20:34 ]
>>90
sourceforgeでバグレポできる。

92 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 07:29:33 ]
シンセサイザーのサイザー?

93 名前:デフォルトの名無しさん [2007/02/14(水) 18:03:27 ]
Delphiみたくポトペタ開発できますか?

94 名前:デフォルトの名無しさん [2007/02/14(水) 19:40:56 ]
VisualWxってどうですか?

95 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 05:30:10 ]
Sizer

96 名前:デフォルトの名無しさん [2007/02/15(木) 08:56:49 ]
VisualWx使ったアプリというかサンプルアプリがネットに転がってないですか?

97 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 19:44:08 ]
cygwin+gcc3.4.4+wxMSW-2.8.0+wxGladeでhelloworld作ったんだけど
-mno-cygwin付けてコンパイルしようとするとエラーが起きる。どうしよう

g++ -c -mno-cygwin -Os -O4 -Wall `wx-config --cppflags` -I/usr/local/mingw/include hello.cpp
/usr/local/include/wx-2.8/wx/utils.h:21 から include されたファイル中,
/usr/local/include/wx-2.8/wx/cursor.h:41 から,
/usr/local/include/wx-2.8/wx/event.h:22 から,
    :
    :
/usr/local/lib/wx/include/msw-ansi-debug-static-2.8/wx/setup.h:808:1: 警告: this is the location of the previous definition
g++ -o hello.exe hello.o -mno-cygwin -mwindows `wx-config --libs` -L/usr/local/mingw/lib
/usr/local/lib/libwx_mswd_core-2.8.a(corelib_textctrl.o):textctrl.cpp:(.rdata$_ZTV10wxTextCtrl[vtable for wxTextCtrl]+0x3b0):
undefined reference to `std::basic_streambuf<char, std::char_traits<char> >::seekpos(std::fpos<_mbstate_t>, std::_Ios_Openmode)'
/usr/local/lib/libwx_mswd_core-2.8.a(corelib_textcmn.o):textcmn.cpp:(.rdata$_ZTV14wxTextCtrlBase[vtable for wxTextCtrlBase]+0x3b0):
undefined reference to `std::basic_streambuf<char, std::char_traits<char> >::seekpos(std::fpos<_mbstate_t>, std::_Ios_Openmode)'
/usr/local/lib/libwx_mswd_core-2.8.a(corelib_gsockmsw.o):../src/msw/gsockmsw.cpp:421: undefined reference to `___assert'
/usr/local/lib/libwx_mswd_core-2.8.a(corelib_gsockmsw.o):../src/msw/gsockmsw.cpp:454: undefined reference to `___assert'
    :
    :
/usr/local/lib/libwx_based-2.8.a(baselib_datetime.o):../src/common/datetime.cpp:2283: undefined reference to `_gmtime_r'
collect2: ld はステータス 1 で終了しました
make: *** [hello.exe] エラー 1

98 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 19:48:21 ]
wxWidgets でクロスプラットフォーム GUIアプリを作ろう
namazu.org/~satoru/pub/uu-2004-08/

ここ参考にしました

99 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 21:43:53 ]
>>97
gmtime_rが見て意義。

100 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 03:32:09 ]
wxGladeでなんとか簡単なGUIをつくりはじめたんだけど、参考に出来るコードがたくさん
載ってるページってない?



101 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 08:58:54 ]
つ VisualWx

102 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 18:26:44 ]
>>100
samplesというディレクトリに60万行ほど載ってるけど、まだ足りないの?

103 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 01:33:16 ]
>>102
samplesにはプルダウンメニューのサンプルがないよね。コンボボックスはあるけど。
どのクラスを使えばいいんだろう?

104 名前:デフォルトの名無しさん [2007/02/18(日) 14:13:59 ]
>103
wxComboBoxのwindow styleにwxCB_DROPDOWNとか
wxCB_READONLYを指定すればいいんじゃない?

105 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 15:50:22 ]
wxChoiceのことか?

106 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 18:21:10 ]
>>105
wxChoiceとwxComboBoxってどう違うん?

107 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 18:30:04 ]
wxChoiceは、あらかじめ用意されたリストから選ぶだけ。いわゆるプルダウンメニュ−。
wxComboBoxは、プルダウンメニュー+「メニューにない物も入力出来るテキストボックス」

108 名前:デフォルトの名無しさん [2007/02/23(金) 11:07:22 ]
OSがT-Engineとかでウィンドウシステムが無いものにポーティングすることは可能ですか?

109 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 08:44:46 ]
VisualWx使ってみたが、MicrosoftとかBorlandのRADとは
比べ物にならないな。
糞。


110 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 16:36:05 ]
エディタ手打ちで済むものをいちいちポトペタしなくてもいいじゃないか。





111 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 01:24:44 ]
いや、やっぱエディタ打ちはやってて面倒だよ・・・。

112 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 01:27:39 ]
アセンブラがあれば(ry

113 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 03:00:56 ]
ハンドアセンブルしてバイナリを直接入力すれば(ry

114 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 04:44:02 ]
テキストコントロールの各行に対する行数(行番号)を表示させたいんだけど、
(行番号があらかじめ書いてある原稿用紙に書き込む感じにしたい)
なんかいい方法ない?

115 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 08:12:02 ]
>>114
行番号表示用のウィンドウを作るのが多分一番楽

116 名前:114 mailto:sage [2007/02/27(火) 01:48:30 ]
>>115
はい。それも考えたんですが、本文の行数が多い場合に縦にスクロールさせると、
行番号表示用の行数とずれてしまうという問題があり、詰まっています。
なにかいい手はないでしょうか?

117 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 10:53:40 ]
>>116
テキストコントロールの内容を変更するたびに、
行頭に行番号を追加するようにすればいいんじゃね?

118 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 17:01:25 ]
114, 116はかなりの初心者かな?

119 名前:114 mailto:sage [2007/02/27(火) 23:27:54 ]
>>118
いままで簡単なスクリプトを書いて仕事(研究員)に使う程度だったのですが、
GUIつきのプログラムを作れば使いやすくなるし、同僚に自慢できるし、
上司によりアピールできるし。。。と思って始めたばかりです。

私のような初心者でも簡単なGUIが作れるという点ではwxwidgetsは素晴らしいと思います。
ただ、少し凝ろうとすると急にハードルが高く感じられます。今回の行番号表示など。
テキストエディタの表示オプションによくあったので、簡単に出来るのではと思ったのですが。


120 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 00:59:27 ]
> 少し凝ろうとすると急にハードルが高く感じられます。

GUIフレームワークって何でもそうです。あらゆるものを御仕着せで用意するのは無理。
用意された機能を利用して実現できればそれでいいわけで、
これくらいはまだすんなり実現できる範疇に入るでしょうよ。

>>116は要はテキストコントロールをスクロールさせたら行番号表示が一緒に
動かないからずれるってことでしょ? それなら行番号表示の方も一緒に動かせればいい。

ということで次のステップはイベント処理ですね。
テキストコントロールのスクロールが発生したときを捕捉して、そのスクロール
量を知り、行番号表示の方に指定量のスクロールをさせる。



121 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 01:09:23 ]
じゃあちょっと難しく感じるかもな。
基本的には、番号用のウインドウを作る→さもメインのパネルの一部かのように組み込む→
(位置を計算して)番号出す→スクロールイベントを取得→表示のアップデート(スクロール)
って流れかねえ。

>テキストエディタの表示オプションによくあったので
なんかこう、GUIをべたーっとした一枚の絵のように考えていたら
簡単にはできないよw

あと、この場合情報としての価値は低いが使用言語も書いたほうがいいよ。

122 名前:114 mailto:sage [2007/02/28(水) 03:32:32 ]
>>120,121
アドバイスありがとうございます。イベント処理はいままで扱ったことが
ないので、調べてみます。

>あと、この場合情報としての価値は低いが使用言語も書いたほうがいいよ。
失礼しました。
Windows XP, ActivePerl-5.8 でwxPerlを使っています。
wxPerlは比較的マイナーなようですね。

123 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 06:37:40 ]
C++ならwxScintillaがつかえるが、他の言語ではラッパーか書かないとだめかも?


124 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 13:10:52 ]
117だけど、wxpythonで作ってみた

import wx
import re

class MyApp(wx.PySimpleApp):
def OnInit(self):
Frame = wx.Frame(None, -1, "Text Edit", size=(400,400))
self.Btn = wx.Button(Frame, -1, "Set Number")
self.Btn.Bind(wx.EVT_BUTTON, self.SetNum)
self.TxtBox = wx.TextCtrl(Frame, -1, "One\nTwo\n", style=wx.TE_MULTILINE)
self.SetNum(wx.Event)
MySizer = wx.BoxSizer(wx.VERTICAL)
MySizer.Add(self.Btn, 0, wx.FIXED_MINSIZE | wx.LEFT | wx.RIGHT | wx.TOP, 20)
MySizer.Add(self.TxtBox, 1, wx.EXPAND | wx.ALL, 20)
Frame.SetSizer(MySizer)
Frame.Show(1)
return 1

(つづく)

125 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 13:13:13 ]
def SetNum(self, event):
Text = self.TxtBox.GetValue()
OldLines = Text.split('\n')
NewLines = []
Count = 1
for OldLine in OldLines:
NewLine = re.sub('^([ \d]+: )?', '%4d: ' % Count, OldLine)
NewLines.append(NewLine)
Count += 1
self.TxtBox.SetValue('\n'.join(NewLines))

app = MyApp()
app.MainLoop()

30分くらいで単純に作ったので、細かいツッコミは無しでお願いします。

126 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 23:55:44 ]
微妙だなw
つか、そのままコピペしたらエラー出たわw
おいバグかよ、って思ったら、インデントの関係だったわ。
(SetNumはMyAppクラス内なのね。)
これだからpythonはw

127 名前:114 mailto:sage [2007/03/01(木) 01:47:35 ]
>>124
ありがとうございます。こういう参考に出来るコードがあればと思っていたところでした。
ぱっと見まだよく分からないんですが、参考にさせてもらいます。

128 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 13:20:33 ]
>>126
すぐに気づけてよかったね。
これだから(ry

129 名前:デフォルトの名無しさん [2007/03/01(木) 16:19:36 ]
Winでテキスト表示が場合によって問答無用でCour何とかいう2k/XPでFontlinkしないと日本語化けるフォント使わないように直ったんですか?

130 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 16:36:26 ]
>>129
日本語でおk



131 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 20:30:47 ]
おれのエスパー能力で解析すると、
「Windowsでテキスト表示のフォントが変わったんですか?」
らしい。

132 名前:デフォルトの名無しさん [2007/03/02(金) 00:17:04 ]
変わるわけねーよ外人だもん。日本語が自分たちのフォントで表示できないことも知らないよ。

133 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 00:54:12 ]
俺もエスパーなんだけどunicode使わないようにすれば解決する

134 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 03:27:05 ]
エスパーだけど非Unicodeにするとたちまち駄目文字問題が出る。
予言だけど本気でコレの作者に中国人なり日本人なりが頼まないと未来永劫にわたって変更はない。


135 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 11:08:47 ]
CourなんとかってCourierのことだな
文字化けしないフォントを使わなくなったのならいいんじゃないか
ちなみにエスパーだけど

136 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 13:12:04 ]
じゃあ俺もエスパー。

137 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 23:17:02 ]
きてます。きてます。

138 名前:デフォルトの名無しさん mailto:sage [2007/03/03(土) 19:44:35 ]
質問です。SpinCtrlとSliderをセットにしたコンポーネントを作りたくて、
次のようなクラスを作ったのですが、Sliderを動かしたらその値がSpinCtrlに反映させるようにイベントを作ろうとしても上手くできません
.hで
enum
{ SliderPage_Slider = 100, };

class SliderAndSpinCtrlSet: public wxBoxSizer
{
public:
SliderAndSpinCtrlSet(wxWindow *parent, const wxString& title, int sliderID, float val, float min, float max, int spinCtrlID) : wxBoxSizer(wxHORIZONTAL)
{
m_slider = new wxSlider(parent, sliderID,
val, min, max ,
wxDefaultPosition, wxDefaultSize, 0);
m_spinctrl = new wxSpinCtrl(parent, spinCtrlID, wxString::Format(_T("%d"), val),
wxDefaultPosition, wxDefaultSize,
0,
min, max, val);
Add(m_spinctrl, 0, wxALL | wxGROW, 5);
Add(m_slider, 0, wxALL | wxGROW, 5);

}
void OnSlider(wxScrollEvent& event) { hogehoge... }

として、.cppで
BEGIN_EVENT_TABLE(SliderAndSpinCtrlSet, wxBoxSizer)
EVT_COMMAND_SCROLL(SliderPage_Slider, SliderAndSpinCtrlSet::OnSlider)
END_EVENT_TABLE()

としたのですが、エラーになりました。wxBoxSizerにはsm_eventTableなどを持っていないのが原因という事は分かったのですが、代替案が見つからず困っています。

どなたか上手いやり方をご存じないでしょうか?

139 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 02:38:55 ]
wxPanelとかから継承したら?

140 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 03:13:20 ]
>>139
wxPanelだと、独立したウィンドウになってしまいませんか?
ウィンドウ内のコンポーネントとして配置できるような、SpinCtrlとSliderをセットにしたものを作りたいのですが・・・。



141 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 12:29:07 ]
最近wxWidgets忘れてるのでとりあえず思い付いたことを適当に書く
 - wxEventHandlerを継承してないとイベント扱えないのでは
 - DECLARE_EVENT_TABLE必要

まあとにかくEvent Handling Overviewくらいは読めと。

142 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 13:08:40 ]
>>141
wxEvtHanderを継承してみました。

.hで
enum
{ SliderPage_Slider = 100, };

class SliderAndSpinCtrlSet: public wxBoxSizer, wxEvtHandler
{
public:
SliderAndSpinCtrlSet(wxWindow *parent, const wxString& title, int sliderID, float val, float min, float max, int spinCtrlID) : wxBoxSizer(wxHORIZONTAL)
{
m_slider = new wxSlider(parent, sliderID,
val, min, max ,
wxDefaultPosition, wxDefaultSize, 0);
m_spinctrl = new wxSpinCtrl(parent, spinCtrlID, wxString::Format(_T("%d"), val),
wxDefaultPosition, wxDefaultSize,
0,
min, max, val);
Add(m_spinctrl, 0, wxALL | wxGROW, 5);
Add(m_slider, 0, wxALL | wxGROW, 5);

}
void OnSlider(wxScrollEvent& event) { hogehoge... }
DECLARE_EVENT_TABLE()
};
として、.cppで
BEGIN_EVENT_TABLE(SliderAndSpinCtrlSet, wxEvtHander
EVT_COMMAND_SCROLL(SliderPage_Slider, SliderAndSpinCtrlSet::OnSlider)
END_EVENT_TABLE()
としてみましたが、コンパイルは通るものの、スライダーを動かしても何の反応もありません。
どうすればいいんだ・・・。Event Handling Overview今読んでいますが、難しいですね・・・。

143 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 00:42:03 ]
多分、コントロール自身かその親ウィンドウじゃないと、
コントロールからのイベントが到達しないんじゃない?
やっぱ、wxPanel継承して、そのハンドラで受けるのがいいと思う。
そのPanelをひとつのコンポーネントとしてとらえればいいわけだし、
他パネルに配置もできるでしょ?

どうしても嫌なら、wxEvtHandler継承で、
m_slider->Connect(
SliderPage_Slider,
wxEVT_COMMAND_SLIDER_UPDATED,
wxCommandEventHandler(SliderAndSpinCtrlSet::OnSlider),
NULL, this);
とすればできる気がする。動作確認してないけど。


144 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 10:28:39 ]
>>143
wxPanel継承でできました!ありがとうございます。
というかwxPanelをコンポーネントとして配置できる事を知りませんでした。
まだ使い始めたばかりなもので・・・。

145 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 10:54:48 ]
質問です。
ウィンドウを二つ表示しているんですが、
片方で何らかの操作をした結果の値を、もう一方のウィンドウ上に配置したスライダー
等のコンポーネントにリアルタイムに反映させたいのですが、何か方法はないでしょうか。

具体的に言うと、片方はwxGLCanvasを継承したクラスで、その画面上をドラッグすると
ある値が変わるのですが、ドラッグ中にもう一方のウィンドウ(wxPanel)上の
スライダー等の表示をその値を反映したものにリアルタイムに更新したいのです。

しかし、ドラッグ中にスライダー等にSetValueで値をセットしても、そのウィンドウに
フォーカスが移動するまでスライダー等の表示が更新されません。
仕方が無いのでドラッグ中にwxPanelのSetFocus()メソッドを呼んで無理やり更新させていますが、
なんか気持ち悪いです。

他に方法はないでしょうか。

146 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 11:02:26 ]
>>145
すみません。自己解決しました。
Update()関数で更新できました。お騒がせしました(汗)

147 名前:デフォルトの名無しさん [2007/03/10(土) 00:07:38 ]
wxPanelのサイズを実行時に変更するにはどうしたらいいでしょうか?

148 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 00:35:21 ]
実行時に変更じゃわかんねーな
実行後に変更か?それともコンパイル時に指定か?

149 名前:デフォルトの名無しさん [2007/03/10(土) 00:41:52 ]
コンパイル時ではなく,アプリケーションの実行時です.
読み込んだ画像の大きさに合わせて変更するような感じです.
言葉足らずですいません..

150 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 01:14:44 ]
wxWindow::SetClientSizeかなあ



151 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 01:15:07 ]
wxImage image("foo.jpg");
panel->SetSize(image.GetWidth(), image.GetHeight());
みたいな感じでいいんじゃない?

152 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 22:42:36 ]
みなさん。
wxFrameにwxGLCanvasセットしているときって、
なぜかwxMessageBoxの表示が全面に出てこなくて、wxFrameを最小化するか、クイック起動の「デスクトップを表示」をするかしないと、
wxMessageBoxが現れなかったりしませんか?

ちなみに当方wxWidgets1.6.3使用。
1.8.2だと治ってるかなぁ・・・。

153 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 08:48:42 ]
>>152
2.8じゃなくて?

154 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 09:16:38 ]
>>153
そうでした。2.6.3使用で、2.8だと直ってるかな、でした。

155 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 09:01:33 ]
Mac の wxPython で使ってみてるんだけど、
wx.DC.GetTextExtent() がラテン文字以外は正しい幅を返してこないようだ。
Windows だとちゃんととれるのに。
これはどこの問題なんだ?

156 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 17:10:57 ]
wxWidgetsの問題.諦めよ.

157 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 17:52:33 ]
べつに諦めなくても自分で書いて送りつければいいんだけどね。
結構反応はやいよ。時々永遠に放置されるけどw

実装具合はポートによって様々。
一応実装されていても細かいところで違っていて、それを吸収する
クラスを書かないといけないこともある。

158 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 16:41:07 ]
groups.yahoo.co.jp/group/wxmljp/

日本語版メーリングリストが無いから作っといた
テンプレにいれといて

159 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 00:08:15 ]
なぁなぁ
wxWidgetsってさ、UTFの扱いどうなってるな?F8とか押すとさ、たまーにゴミ文字列
挿入されるんだがあれまじキレそうになるからなんとかしたいんだけど
どうすればいい?

160 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 00:49:26 ]
コンパイラをUnicodeにすればいいんでない?



161 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 01:42:17 ]
155だけど、日本語のフォントにしたら日本語についてはちゃんと取れた。
フォントのフォールバックが起こると取れなくなるみたい。
157のいう実装上の差異というところか。直せるのかな。
wxMAC のソースをちょっと覗いてみたら、元のAPIの仕様でそうなってるようにも見える。
Mac 詳しくないのでわかんないけど。

wxて Unicode や XML に詳しい人がコアにいないんじゃないかと思うことがある。
XRC の文法もなんか素人くさいよね。size をリテラルとして指定するとことか。
Uniscribe や TextLayoutManager(だっけ?)相当の機能がつくといいんだけどな。
ワイド文字列でコンパイルしただけじゃUnicode対応とはいえなかろう。

でも古典的な範囲でふつうに使ってる分にはやりやすい。嫌いなわけではないのよ。

あとインプットメソッドまわりは日本人がやらないと絶対始まらないと思うぞ。

162 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 10:10:45 ]
ソース見てきた。Unicode実装してない
嘘Unicode絶対間違って実装してるからバグバグになる。
最悪buffer overflowとかも平気でありありな実装で
こいつら死ねよって今からメール送りまくろうと思ってます。
メインの開発者全員にしねよねハゲゴルァメールを送りつけて気を引き締めて
あげたいであります。

163 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 23:49:22 ]
>>162
そんなことよりパッチ送ってやれ。
どーせ理解できねーんだから。

164 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 04:19:49 ]
ソース見てないけど
Unicodeが問題になることといえばコードの上下関係だけじゃないの?
日本語をソートするとばらばらになるとかでしょ
基底はWindowsAPIをUnicode版に切り替えるだけだから切り替えミスでもしてない限りはOverFlowはないと思うけど
切り替えしてないならアフォだけど
LinuxとMacは単純にUnicodeAPIが無いから非対応という話ではないのか?
ちなみに一からlinuxやMacでUnicode作ろうと思ったら全部書き換えないと無理だろ

165 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 07:36:26 ]
>>164
>LinuxとMacは単純にUnicodeAPIが無い

UnicodeAPI って何だよw
もしかして Windows 以外では UTF-8 とか 16 とか弄れないと思ってるの?

166 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 13:27:31 ]
kernelレベルでデフォルトキャラセットをUnicodeにしないと無理でしょ

167 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 14:31:15 ]
ふぅん、カーネルレベルねぇ...
デフォルトキャラセットとな...
全部書き換えないと無理と...

Linux も Mac も使ったこと無いのに色々知ってるんだ
偉いねえ

168 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 16:54:12 ]
Unicodeはkernelレベルでサポートするべきものだったんだよ!

169 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 16:55:32 ]
な,なんだってーっ!

170 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 17:47:29 ]
>>168
当然そうあるべきだと思うが。
ファイルシステムやカーネルオブジェクト等に使われる名前の
エンコーディングに一貫性が無いとロクなことにならない。

名前のエンコーディングが不明では、文字列として正しく処理をしようが無い。
一方名前にエンコーディング情報も付与することにしたら無駄に
データ量が増えインタフェースも複雑化するだけ。

だから、Windows NTやPlan 9はUnicodeだよな。
Unixが時代遅れなだけ。



171 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 17:59:31 ]
一応書いておくと、カーネルモジュールでもファイルシステムとかは
Unicode 扱えないとちょっとダサイ。でもこれはユーザランドのアプリ
とは関係無い話。

172 名前:171 mailto:sage [2007/04/08(日) 18:04:28 ]
スマン。ボーッとしてたら被った。

>>170
"カーネルオブジェクト等に使われる名前" って何?
ASCII Code の範囲を超える文字を使うケースってあるの?

つか、カーネルモジュールで Unicode サポートが必要なのって
ファイルシステムだけだよね? そして普通の Un*x なら kiconv
とか(似た様な名前の)機構が既に入ってるよね?

>>170 が時代遅れなだけ?

173 名前:171 mailto:sage [2007/04/08(日) 18:12:33 ]
最後ちょっと下らない煽りっぽくなっちゃったが、カーネル内で実装されていようがいまいが、
ユーザランドのアプリで Unicode を使うには全く問題無いよ。全部書き換える必要なんて
全く無い。それと Mac も Linux もデフォで Unicode 使えるようになってるので、その意味
でも問題無い。

174 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 18:35:28 ]
いや別にネットからダウンロードしたUTF-8の文字をバッファにいれてカーネルEUCの状態で表示しようがしまいが勝手だし
そのためのクラス郡はwxWidgetsに用意されてるのだから好きにすればいいのでは?
今の話ってそういう話じゃないよね
Unicodeの入ったバッファの中身をEUCのAPIにパスして文字が化けるんですけどとかそういうこと言ってんでしょ?
そりゃ当たり前だって言ってるだけw

175 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 18:40:56 ]
strcpyとかstrlenとかAPIだよ
Unicodeの中身そのまま渡したらおかしくなるって

176 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 18:42:08 ]
>>174
>EUCのAPI

もっとくやしく。

177 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 18:51:32 ]
Windowsは2個用意してる
strcpyだとstrcpyAとstrcpyWと2種類のAPIが存在してコンパイルする時に何をベースにプログラムを動かすかで
自動的に切り替わるようになってる
linuxやMacはこういう機構が無いのだから完全にカーネル依存になる
基本的にカーネルの扱う文字コード以外ではコンパイルしてはいけない
別の文字コードを扱う時はバッファ内で変換してからすべての処理に引き渡すようにしないといけない

178 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 19:26:12 ]
>カーネル依存になる

だから、ならねっての。
C/C++ の標準ライブラリとカーネルの話をごっちゃにしてるね。
ついでに言うとロケールについても分かっちゃいない。

179 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 19:40:11 ]
kiconvって、kernel内部コードをUTF-8で統一
全てのシステムコールの界面でLC_CTYPEを使ってchar*のエンコード変換を
行うと解釈していいのかな?
それならWindowsの動作に近いんだが。

いや、kernel側にはユーザ側のLC_CTYPEは分からないか。
むしろシステムコールにラッパーかませるべき?どういう実装になってるの?

180 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 19:44:56 ]
話が全然噛み合ってねえな…



181 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 19:45:09 ]
>>177
> strcpyだとstrcpyAとstrcpyW
1. 存在しません。
2. strcpy()はWindows APIではなくC標準のランタイムライブラリです。
3. MSVC++はC標準ランタイムライブラリに対しても、TCHARベースの
 汎用テキストマッピングの仕掛けは提供しています。
 strcpy()の場合は、_tcscpy() -> strcpy() / wcscpy()です。

182 名前:179 mailto:sage [2007/04/08(日) 19:47:41 ]
よくわからないんだけど。
kiconvってカーネルパッチでしょ?
コールゲート通過後の、カーネル空間に入っちゃったただのchar*のデータを
どうエンコード変換すべきか、どうやって判断してるんだ?

Windows APIの場合は、APIのレイヤで全部UTF-16にしてるよ。
その層だと判断できるし、カーネル内部がUTF-16に閉じてクリーンになるから。

183 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 19:51:06 ]
ネット斜め読みしただけで分かった風に書くなよ…

184 名前:179 mailto:sage [2007/04/08(日) 19:56:40 ]
>>183
単純な話なんだから、分かってるのなら答えて欲しいんだけど。
・マルチユーザシステムであるUnixでは、ユーザ毎にLC_CTYPE設定が異なり得る。
 これが前提。
・何もしなければ(少なくとも昔のUnixでは)システムコールにchar*を渡せば
 それは「そのまま」kernelに素通しで渡るはず。つまり、一貫性の無い
 異なるエンコーディングの名前がkernelに渡されることになる。しかも
 kernelに渡ってしまった後はそのエンコーディングを判断するすべが無い。

 ユーザモードで呼ばれるシステムコールのCインタフェース(ラッパ)には
 呼び出し側プロセスの環境のLC_CTYPEが分かっているので、多分ロケールに
 従った変換をかけるならここがベストである、ように俺には見える。

で、
・↑のような変換を行うシステムコールラッパの仕掛けなんですか
・kernel内部はUTF-8で統一されているのですか
というのが質問。
間違っているのなら、どこがどう間違っているのか説明してほしい。

185 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 20:09:41 ]
>>184
何つーかさ、↓こういう質問が出る時点で答えるのを躊躇しちゃうのよ。

>・kernel内部はUTF-8で統一されているのですか

正直、君のレベルに合わせて回答を作るのは「単純な話」じゃないと思うよ。
誰にとっても。

186 名前:179 mailto:sage [2007/04/08(日) 20:13:21 ]
>>185
>・kernel内部はUTF-8で統一されているのですか
なぜ、この疑問がそんなに問題なの?
Windows NTは、kernelが扱う「名前」「テキスト」は、全てUTF-16だよ。
kernelの扱う名前のエンコーディングに一貫性が無いと、例えばファイルシステム
のファイル名のエンコーディングが統一されていないと、問題でしょ?
UTF-16に統一することで、そのような問題を避けつつ、ASCIIよりはるかに
大きな文字集合を無問題に扱うことが出来ているわけ。
少なくともWindowsでは。

無論ファイルの中に入っていたりネットワークを流れるデータ(バイト列)の
具体的な中身にはkernelは関与しないよ。それはユーザレベルの話。

187 名前:179 mailto:sage [2007/04/08(日) 20:19:48 ]
例えば

fd = creat(filename, 0666);
を実行した時に、

1) filenameはどこかでUTF-8に変換されますか
2) それはどこで行われますか
3) 変換されないならば、「全ての」ユーザコードが「各自」適切な
 エンコーディングを指定しない限り、
 ファイルシステムのエンコーディングの一貫性は保障されないということで
 良いですね。

ということなんだが。

188 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 20:31:18 ]
>>186
前にも書いたけどさ、符号化方式はファイルシステム固有の話であって
「カーネル内部で統一」という言い方はおかしいよね?
単に一個のカーネルモジュールに過ぎない訳だから。
君も一応マイクロカーネルな OS 使ってるんでしょ?

これはオケ?

189 名前:179 mailto:sage [2007/04/08(日) 20:52:19 ]
>>188
・非Unicodeの符号化形式を採用しているファイルシステムは、それだけで
 i18n/m17n対応においてUnicodeベースのもの(FAT32やNTFS)より劣ると
 いわざるを得ないだろう。

・ファイルシステムが非Unicodeの符号化形式を用いている場合、ファイルシステムの
 モジュールなりドライバなりが、相互変換を行うべき。そしてその層に
 それが閉じているならば、カーネルとしてはUnicodeで考えることが出来るので
 「統一」と呼べるのでは。
 統一されていれば、異なるファイルシステム上の名前を比較したり、ファイル
 システム間で名前をコピーすることの問題も無くなるし、
 ユーザの実行環境のロケールが何であろうと、そのロケールとの相互変換を
 どこかのレイヤが行いさえすれば、問題なくファイル名を取り扱うことが出来る。

・今きづいたのだが、ファイルシステムの符号化形式との間の決めウチ変換を
 行うのがkiconvの役目?もしかして。
 だとすれば、それだけではWindowsの提供する環境より
 随分劣るといわざるを得ない。

190 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 20:57:58 ]
相変わらず、話が全然噛み合ってねえな…



191 名前:179 mailto:sage [2007/04/08(日) 21:10:05 ]
>>187のような単純な質問には誰も答えてくれないの?

filenameの中身がUTF-8エンコードされていないなら、結局どうなるの?
1) EILSEQエラーなどではじかれる。
2) 普通にテキストと解釈できないへんな名前のファイルが出来る。
3) プロセス実行環境のLC_CTYPEに応じて、UTF-8に誰かが変換してくれる。
4) ファイルシステムに甚大な被害を及ぼす可能性がある。

192 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 21:14:45 ]
>>191
何答えても屁理屈こねられそうだからみんな嫌がってんだよ。

193 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 21:15:33 ]
>>187
1. いいえ
3. はい

194 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 21:16:49 ]
>>191
2

195 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 21:17:24 ]
↓勝ち誇った書き込みキター

196 名前:179 mailto:sage [2007/04/08(日) 21:19:08 ]
>>192
具体的に俺の「どの」発言が屁理屈なの。
誤っている箇所があるなら指摘してくれよ。

俺はそもそも屁理屈をこねるほど最近のLinuxのことを知らないから、
聞いてるだけなんだが。


197 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 21:21:54 ]
>>196
↓これ

>>189
>・ファイルシステムが非Unicodeの符号化形式を用いている場合、ファイルシステムの
> モジュールなりドライバなりが、相互変換を行うべき。そしてその層に
> それが閉じているならば、カーネルとしてはUnicodeで考えることが出来るので
> 「統一」と呼べるのでは。
> 統一されていれば、異なるファイルシステム上の名前を比較したり、ファイル
> システム間で名前をコピーすることの問題も無くなるし、
> ユーザの実行環境のロケールが何であろうと、そのロケールとの相互変換を
> どこかのレイヤが行いさえすれば、問題なくファイル名を取り扱うことが出来る。

198 名前:179 mailto:sage [2007/04/08(日) 21:22:24 ]
>>193, 194
教えてくれてあんがと。
んじゃ、問題ないとか言い切ってる>>171は勇み足さんかな。

事実上そのUTF-8対応したLinuxとそうでない従来型ロケールベースでは
運用方法から何から全然変わってこない?
皆が皆UTF-8に移行してるわけじゃないでしょ?

どっちでも動くプログラムとか書くの、面倒じゃないの?

199 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 21:25:00 ]
>>198
>>>171は勇み足さんかな。

勝手にあんたの持論に巻き込むな。

200 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 21:31:09 ]
>>198
>事実上そのUTF-8対応したLinuxとそうでない従来型ロケールベースでは
>運用方法から何から全然変わってこない?

誰か俺にも分かるように翻訳してくれ。



201 名前:179 mailto:sage [2007/04/08(日) 21:42:51 ]
>>200
非UTF-8カーネルでユーザ毎にLC_CTYPEが異なる昔ながらのL10N環境と、
カーネルからユーザロケールまでUTF-8を前提とした環境と、
UTF-8カーネルに従来型ロケールの環境では、
ユーザコードでiconv()やwcstombs()等を用いた変換が必要な箇所が
変わってくるんでは?と思ったんだけど。

気のせいだというのならいい。

202 名前:179 mailto:sage [2007/04/08(日) 21:43:50 ]
>>197
えーと、俺は見ての通り頭が悪いし最近のLinuxのことは知らないので、
誤りはもっとピンポイントかつ具体的に指摘してくれると嬉しいのですが。

203 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 21:54:41 ]
>>202
> 誤りはもっとピンポイントかつ具体的に指摘してくれると嬉しいのですが。
スレ違い

204 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 23:46:39 ]
よくある逃げ方だな。
ごくろーさんw

205 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 23:52:15 ]
↑捨て台詞キター

206 名前:179 mailto:sage [2007/04/09(月) 00:00:11 ]
>>204は俺ではないですよ。どうでもよいことですが。

207 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 00:54:49 ]
で結局
EUCベースのlinuxでwxWidgetsでUTF-8を用いたアプリを開発するにはどうすればよいかという話でしょ

1.wxWidgetsが馬鹿なので書き換える
2.アプリをEUCで作る
3.linuxをUTF-8に対応させる

さあどれだw

208 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 00:57:38 ]
話の発端はwxMACだっけ
ということはMACのカーネルは何のコードがデフォなんだ?

209 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 01:32:03 ]
わかってもいないし調べる気もない奴らばっかだということはよくわかったから
もうここで続けるな。どこか他所でやってくれよ。

210 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 01:55:55 ]
>>193-194を見る限り、
$ touch ほげ
とかやった場合、要するにロケール設定によって全然別の名前のファイルが
作られるわけか?
なんかもう脳死してるっていうか、どうしようもないんじゃねぇのこれ




211 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 02:04:26 ]
wow wxWidgetsの話はどこに行ったのさ?

212 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 02:04:34 ]
つか、非ASCII文字を含むファイル名を表示するまともな方法、存在すんのか?
ほげ:sjis
ほげ:euc-jp
ほげ:utf-8
みたいなファイル名が混在し得るんでしょ?
一つのファイルシステムに。

213 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 02:28:20 ]
>>211
readdir()やftsを使ってで読み取ったファイル名のリスト
をリストボックスか何かに表示したいです。
どうするのが正しいのでしょうか。

214 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 02:41:11 ]
WindowsだってeucとかUTF-8のファイル作ろうと思えば作れる罠

215 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 02:45:52 ]
リストボックスは当然ながらKDEとかGNOME依存でこれらは結局kernelの文字コードにあわしてある
kernelがEUCなら当然XシステムもEUCでフォントデータベースもEUCだからEUCのフォントインデックスじゃないと
いわゆる文字化けした状態になる

216 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 02:56:42 ]
>>215
> kernelの文字コード
> kernelがEUCなら

いみが
わかりません。

Linuxでは、文字エンコーディングを指定してカーネルを再構築するのでしょうか?
それによって、具体的にkernelの何が変わるのですか?
Unixはマルチユーザシステムですが、他のLocale設定を使いたいユーザは
どうすればよいのでしょうか?

217 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 03:06:44 ]
>>214
「やろうと思えば出来る」のと、「通常の使用でそういう事故が起きる」
のとでは、当然ながら全然違うんだが。

WindowsのコードページはUnixのロケールほど揮発性でも動的でもないし、
むしろ日本語Windowsなら実質CP932決めウチ、みたいな世界だ。
そしてAnsi版APIは、APIレベルでUTF-16への変換を試みるから、そこで
妙な名前はガードされる。
Unicode版APIは素通しだけどな。CreateFileW()にUTF-16として
正しくない並びの文字列を渡してもそのファイルを作れてしまうのは確か。
ただし、「ユーザが」「普通に」使用していてそういう事態に陥ることは
まずない。


218 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 03:55:56 ]
>>215
もうそのネタを引っ張るのは無理でしょ。流石にフォントの並びは変わらねえw
「カーネルの文字コード」という概念は個人的に破壊力抜群だったけどww
「EUC ベースの Linux」は後々まで語り継がれる名言だったなwww

釣り、なんだよね?

219 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 04:06:30 ]
また過去においては Linux の C Library にはロケール機構の実装は行われて
おらず X Window System の提供するロケール機構を使用していた。近年になっ
て X のロケールから GNU C Library version 2 に実装されたロケールへの移
行が進んでいる。残念ながら現時点では日本語をはじめとする多バイト文字の
ロケール機構は機能していないが実装作業が進行中であり、近日中に利用可能
になるものと思われる。

220 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 04:20:33 ]
>>210,>>212,>>217
Windows だって一緒やがな。メールに添付されたファイルのファイル名が EUC-JP
だったら誰が valid なファイル名を探してくれるのでしょうね。zip に入っていたファイルの
ファイル名が UTF-16 のエンディアン違いだったらどうするのかな?

スレ違いなんで↓続きはこっちでやってね。

文字コード総合スレ part2
pc11.2ch.net/test/read.cgi/tech/1143375639/

>>219
残念ながらそのネタも面白くないと思われるよ。



221 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 04:49:56 ]
>>220
ちゃんと規格確認してから言ってる?
特定の実装の問題を全体に拡大解釈するなよ


222 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 05:18:41 ]
>>221
規格って、zip に入れるファイル名の文字コードの規格があるの?
特定の実装って何の実装の事?

実際には Linux だってわざわざファイル名に複数の文字コードを混在させて使おうと
する人間はいない。混在可能ってだけだし、それは Windows でも一緒。

223 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 05:35:45 ]
知識自慢ばっかで解決策を語れるスマートな人間はまったくいないな
wxWidgetsのソースをいじるなんてのは非現実的だし
ロケールをわざわざUnicodeに変換したって既存のソフトが動かなくなるだけ
答えは1つ、デフォルトロケールにアプリを合わせて自前でコード変換するだけ
それ以外の方法はない
それ以外の方法しか考えられないやつはただの馬鹿

224 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 05:38:24 ]
知識自慢というか、正しい認識を持つことは重要だよ。
で、何の解決策が必要なんだっけ?

225 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 06:06:24 ]
ボケ老人は無理して話に加わらなくていいのに・・・。

226 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 06:51:00 ]
> zip に入れるファイル名の文字コードの規格があるの?
zip に入れるファイル名の文字コードの規格はないの?


227 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 07:26:40 ]
無い

228 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 08:08:56 ]
無いよなぁ…

229 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 08:11:09 ]
>>223
>wxWidgetsのソースをいじるなんてのは非現実的だし

ノンサポートのライブラリなんだから、きちんと全容を把握して
自分で手を入れられるようになっておいた方が良いぜ。

230 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 08:54:57 ]
>>223
オープンソースなんだし常識じゃないの?
カーネルのソースも、wxWidgetsのソースも動作がおかしい場合は、
読んで修正しないとねぇ。




231 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 12:06:11 ]
>>220
あのさぁ。メールの添付ファイルだのzipアーカイブの中身だのに含まれる
ファイル名をどうシステムのファイル名にマップするかってのは、
そのプロトコルなりRFCなりファイルフォーマットなりの話であって
OSの仕事ではないでしょ?
そこに不備があるのなら、それはOSでなくて、符号化形式が
self-containedではないそれらの不備ってだけだろ?

232 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 12:08:37 ]
少なくともWindowsでは
単にシェルでファイルをとりあつかうだけのことで問題が生じることは無い。
ファイル名はUTF-16「である」のがWindowsだ。
Windowsのファイル名はコードページに依存しないし、コードページによらず
漢字や拡張ラテン文字を含むファイル名を同時に正しく扱える。

Linuxでは
$ >ほげ
とかやるとどうなるんだっけ?

233 名前:デフォルトの名無しさん [2007/04/09(月) 12:36:11 ]
スレ違いage

234 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 13:32:49 ]
結局、>>213の答えは?

235 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 13:38:35 ]
>>229
入れられるのと実際に入れるのとでは意味が違う
手を加えたらパッチが当たった時にまたそれに合わせて全部拾い出していくのか?
よっぽど暇なんですね

236 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 13:41:47 ]
せっかくクロスプラットフォームで多くのチェックが入ってバランス統一されたものに
わざわざ手を加えてクロスプラットフォームじゃなくならせるなんてよっぽど馬鹿なんですね

237 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 17:45:41 ]
>>234
見ればわかると思うけど、ここ能無ししかいないから
誰も答えられません。

238 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 18:26:14 ]
じゃあお前が答えろよw

239 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 18:34:55 ]
知識が無いことより、分かっている振りをすることのほうがはるかに馬鹿な事なのに
プログラマはそれがわからない馬鹿が多くて本当に嫌な人種だな
むしろ人間じゃねーな

240 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 20:18:26 ]
>>231
そこまで書いたら自分で気付けよw



241 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 21:49:34 ]
>>240
要するに、Windowsのファイル名はUTF-16固定だが
Unixのファイル名のエンコーディングに関しては、規約も標準も
何も無い無法地帯で、かつシステムグローバルでも何でもないLC_CTYPE
環境変数の設定でエンコーディングがころころ変わってしまい、
結果としてプログラム的にどうあるべき、という正しい判断のしようが無いから
糞なんだろ?

どこが「Windowsも同じ」なの?
Zipのようなファイル形式で困ったことになる点だけは確かに同じだな。
だが、それはOSの問題ではないし、論点ずらしだろ。

242 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 21:51:50 ]
>>241
惜しい。あと一歩真実へ踏み出してみよう。

243 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 21:56:50 ]
つづきまだ〜?(チンチン(AAry

244 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 22:02:56 ]
ちゃんと考えなきゃダメだぜ。

245 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 22:10:28 ]
例えばプレーンなテキストファイルのエンコーディングは分からない
(符号化形式がselfcontainedでない)ってのはOSに限らない
普遍的かつ伝統的な問題なわけで、
ファイルの中のデータを扱う部分はどうしても汚い仕事にならざるを
得ないと思うのよ。典型的なのが日本語のエンコーディングの自動判別の
ようなヒューリスティック。

Unixの世界ではファイル名もこれと同じなわけだけど、Unicodeに
統一できるなら、したほうがいいに決まってるし、完璧ではないにしろ
それが可能な世界だと思うんだ。
Windowsではそうなってるわけでしょ。

246 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 22:18:35 ]
少なくともWindowsでは、何かファイル名を外部からもらった時に、
それをOSに渡す際にはUTF-16に変換するのが「正しい」ことは分かる。
どうやったらUTF-8に変換できるのか分からないならば、それは貰い方、例えば
ファイル形式やプロトコル等に問題があると言うことが出来る。
それはWindowsの問題ではない。

Unixはそれ以前の問題。それが非ASCII文字を含む場合、どう扱うのが
「正しい」のかが全く分からない。
一般解は存在せず、環境・プログラム毎の特殊解のみがあるのだろう。

247 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 23:07:08 ]
>>246
>どう扱うのが「正しい」のかが全く分からない。

どう扱うのが正しいのかを決めるのはユーザ様な世界なんだよ。
分からないんじゃなくて、勝手な決め打ちしないだけ。
全能なるユーザ様が入力なされた物を勝手に変換するなと。
"touch ほげ" の結果生成されるファイル名がロケール依存で
変化するのは UN*X 的に正しい世界。何故ならユーザ様が
ロケールを設定しているから。アプリはロケールに従ってデータを
読み出せば全く問題無い。これが UN*X 的な正しい扱い方。
入力には寛容に。

ファイル名のエンコードは一応それなりに決まっていて、HFS+
なんかは UTF-16 になっている。決まっているだけで EUC でも
書き込めるのは Windows と一緒だね。

248 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 23:26:45 ]
UNIXの世界において、kernelのレイヤでは全て単なるバイト列。
\0と/は特別扱いやけどな。
エンコーディング等は、kernelの知・っ・た・こ・と・で・は・な・い。

249 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 23:39:55 ]
正しいとか正しくないとか俺様理論は他でやってくれないか?

250 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 23:41:01 ]
あのな\0が特別って\0だけで十分にエンコード依存なんだよ馬鹿



251 名前:デフォルトの名無しさん [2007/04/09(月) 23:42:50 ]
俺様理論っつうか、エンコードとかkernelの話は他でやってくれ

252 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 23:47:16 ]
何度も言うけども
wxWidgetsを正常に使いたかったらわざわざロケールを変更するような暇なことしたり
wxWidgetsを自分好みに作り変えたりするのは馬鹿のすることだ
デフォルトロケールのエンコードにあわせるのが正当なやり方だ
Windowsの場合はSJISとUnicodeの両者が共存出来るようなうまいしくみがあるから選べるだけ

253 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 23:50:48 ]
>>249
核心を突いたね。そう。単一の文字コードに決め打ちして正しいとか言ってるのは
俺様理論なんだよね。簡単に破綻するのにね。しかも UTF-16 だからなあ…

254 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 23:53:05 ]
>>252
一生 Windows だけ使ってる分にはそれで良いと思うよ。
Microsoft 以外が出しているおかしな OS なんて使う必要無いよ!

255 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 23:57:45 ]
どうせMACはバージョンによって文字コードが違っても互換性がないのだからw
UNIX系なんてそもそもバイナリ配布できるような環境にないだろw
どうせそのコンピュータでコンパイルして動かすのだからロケールなんて統一したほうがかえってややこしいことになる
コンパイル環境のロケールでそのまま動くように作ればいいだけ
問題になるのはスタティック文字列くらいなもん

256 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 00:02:38 ]
オケ

257 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 01:07:07 ]
また一人気違いが……。よそでやれ。

258 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 01:10:54 ]
>>247
> "touch ほげ" の結果生成されるファイル名がロケール依存で
> 変化するのは UN*X 的に正しい世界。何故ならユーザ様が
> ロケールを設定しているから。アプリはロケールに従ってデータを
> 読み出せば全く問題無い。

touch ほげを実行したユーザが、ファイル名を読み取るユーザと同じとは
限らないのがUnixでしょ。読み取るプロセスはデーモンかもしれないし、
cronあたりから実行されているバッチかもしれない。
ftpやtelnet越しのユーザかもしれない。
実におめでたいね。

>>248
うん、それで?
結果として、単に非ASCII以外の文字を含む名前がひどく扱いにくい世界に
なったわけだよね。
時代遅れだね。

>>253
Unixの「自由」は欲しくない自由なんだよ。俺に言わせれば。
プレーンテキストどころか、ファイルの中の行毎にエンコーディングが
異なる、何がなんだか分からないファイルを考えてみればよい。論外だろ?
「自由」にしたいのなら、せめてエンコーディング方式が分かるようにしろと。

259 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 01:40:40 ]
「議論」したいのなら、せめて該当するスレに移ってくれと。

260 名前:155 mailto:sage [2007/04/10(火) 02:18:16 ]
ぎょえ。なんかすごいことに。
しかもなぜか関係ないファイル名の話になってるし…。
荒れるからもう Unicode の話はふらないよ…。
ゴメンネ。




261 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 08:24:38 ]
>>258
それで問題無いよ。お仕着せが良いなら Windows を使っていれば良い話。
見掛け上の統一感に満足していれば良い。Windows が最高なんでしょ?
俺は、文字コードの揺らぎは常に存在するものである事を前提に、自分で
自由に制御出来る環境の方が優れていると思う。

いつだって他人の流儀を認められないのが Windows ユーザだよなあ。
ぬるい世界で満足しているなら、そこから出て来なければ良いのにね。

262 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 10:12:08 ]
>>261
> いつだって他人の流儀を認められないのが Windows ユーザだよなあ。
イラッとして書いたんだろうけどこういうひとくくりにする発言はやめようよ。
使ってるOSの問題じゃないからさ。


263 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 10:58:01 ]
イラッとして書いたんじゃなくて、そのあたりが>>261のレベルなんです。
あらゆるコミュニティから「お前は入ってこないで」と思われるタイプ。

264 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 12:29:12 ]
こーゆー輩は他人を貶して優越感に浸りたいだけだから放って置いたほうが良いよ

265 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 12:43:38 ]
>>261ね。
テクニカルな内容がほぼゼロ。本人の品性が良く分かる煽り文ですね。

> 俺は、文字コードの揺らぎは常に存在するものである事を前提に、自分で
> 自由に制御出来る環境の方が優れていると思う。

エンコーディング情報が正しく含まれるのならそれもいいだろうけど、
実際には、各行のエンコーディングがごたまぜ、何が使われているか分からない
テキストファイルも同然の状態なわけですよ。ファイル名が何でエンコードされてるか
どこにも記録されない上に、一貫性のある規約も無いのが現実。

自分の環境は自分の都合のいいように運用するからそれでおk?
あなたは仮にもプログラマでしょう?
趣味でLinuxいじってるだけのパソコンオタクじゃないんでしょ?
プログラマとしてコードを書くときに、自分の環境しか考えないの?

例えば「ゆらぎがあることを前提に」、あなたなら>>213のケースにどう
回答するの?
Windowsはあなたに言わせればぬるい環境で、Unixは優れてるんでしょ?

俺様環境でしか通用しない糞コードではなく、
素晴らしい回答を期待してますよ。

266 名前:261 mailto:sage [2007/04/10(火) 19:11:39 ]
なんか変なのがまとめて沸いてきたなぁ。それとも同一人物か?
自分の痛さを指摘されて逆上した Windows ユーザ?

まぁ、まともなレベルのものが書けたら相手してあげるよ。頑張ってね。

267 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 20:25:50 ]
自分が痛いとはこれっぽっちも思ってないらしいな(ワラ

268 名前:261 mailto:sage [2007/04/10(火) 21:00:09 ]
痛くないから当然だな。
まともなことを言ってるのに「痛くてすみません」ってな態度を取るのは
謙虚でもなんでもない。ただ間違っているだけだ。

それにしても、本当に逆上してるんだな。
負け癖のついた議論好きってこんな感じなんだよな。

269 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 21:01:12 ]
新着で100もレスついてるから何かと思えば…

270 名前:261 mailto:sage [2007/04/10(火) 21:07:58 ]
馬鹿は一匹出てくると立て続けに何十匹も出てくるからな。
スレが無駄に伸びる伸びる。



271 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 21:10:27 ]
>>266,>>268,>>270
お、俺がもう一人居る。あんたが >>261 だとすると、俺は誰だw
何にせよ >>261 の書き込みは破壊力抜群だったみたいで何より。
>>262 には悪い事したけど、まともな人はもう居ないと思ってた。

>>265
あんたプログラマだったの?
プログラマは平日昼間から 2ch やれて羨ましいなあ。
エンコーディング情報は環境変数からとって来るから良いんだよ。
あんたが思ってる様なカオスの世界では無いよ。

272 名前:271 mailto:sage [2007/04/10(火) 21:13:42 ]
話を簡単にまとめると、エンコーディングが静的に決まっているのが
NTFS や HFS+(どちらも UTF-16) で、行儀の良いアプリであれば
そのエンコーディングに従って文字列を格納してくれる。勿論、zip
の例の様に、人間にとって valid な文字列を生成出来ない場合も
あるし、ファイル名が ASCII である事を前提に書かれたプログラム
も存在している。
一方で、エンコーディングが環境に合わせて変わるのが UNIX 方式。
ファイルシステムの数も扱うロケールの数も沢山あるし、OS 自体も
色んな種類があるので入力には寛容に作られている。行儀の良い
アプリならロケールを見てきちんとデータを変換してくれる。勿論
入力が ASCII のみを想定している様なプログラムもあって、8 bit
clean じゃないコマンドも残っていたりする。

どちらの方式でも言えるのは、人間にとって valid じゃない文字列を
生成するのは簡単だという事。valid じゃない文字列を生成する
プログラムが良いか悪いかは別として、そういうプログラムが存在する
事は間違いない。だとすると、エンコーディングを決め打ちして満足
しているのは抜けてるんじゃないかなあというのが俺の意見。

Windows な人が共感出来るかどうかは別として、論理としては理解
出来るように書いているつもりだけど、どうよ?

273 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 21:52:01 ]
>>271
> エンコーディング情報は環境変数からとって来るから良いんだよ
環境変数はユーザ毎、プロセス毎、それどころかプロセス実行中にも
変化し得る揮発性のデータでしょ。実際、
$ LANG=C man foo
のように、一時的にLANGを変えてコマンドを実行するようなことは
日常茶飯事のはずだ。

環境変数が指し示すのはあくまで「プロセスの実行環境」であって、
「ファイル名が何でエンコードされているか」ではない。それらは
全く別のものなのに、一体それでなぜ「良いんだよ」と言えるのか。

・ファイル名のエンコーディング方式が固定化されているか
・ファイル名のメタデータとしてエンコーディング方式が取得/設定できるか

以外に正しい解は無いよ。そんなこと、分かりきってるだろうに。

274 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 21:57:11 ]
>>272
> 論理としては理解出来るように書いているつもりだけど、どうよ?

あなたがUnix方式の穴/不備に故意に目を瞑っていることだけはよく理解できる。
そして、「完璧な方式など無い」と主張することで、そこから目をそらさせようと
しているわけだ。

1. エンコーディング固定化方式
2. エンコーディングが可変で、形式をメタデータとして保持する方式
を比較するなら分かる。
どちらにも得失はあるが、「まともな」やり方だ。
Unixはそのいずれでもない。可変で、形式情報が失われてしまう。
Zipと同じだよ。

275 名前:271 mailto:sage [2007/04/10(火) 21:57:12 ]
>>273
ファイル名が何でエンコードされてるかは重要じゃない。
ファイル名のバイト列をどの文字コードで解釈したいと
ユーザが指定しているかが分かれば良い。

エンコードを決め打ちしても当然例外は発生するんだから
正しい解なんて存在しないんだよ。それに気付ければオケ。

276 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 21:59:53 ]
もうちょっと論理的に頼むわ。
馬鹿でもいいから、限界まで頑張って。

277 名前:271 mailto:sage [2007/04/10(火) 22:00:13 ]
>>274
>完璧な方式など無い

まさにその通り。それを認識する事が重要だよ。
そうすればもっと色んな考えに寛容になれるよ。

278 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 22:01:44 ]
Windows方式は完璧ではないよ。無論。誰もそんなことは主張していない。
Unix方式よりずっとマシだ、といっているだけだ。

279 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 22:01:47 ]
>>276
お前は >>261 なんだろ...
自分の役割を忘れるな

280 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 22:03:58 ]
>>275
>ファイル名が何でエンコードされてるかは重要じゃない。
>ファイル名のバイト列をどの文字コードで解釈したいと
>ユーザが指定しているかが分かれば良い。

環境変数という荒くて大雑把な手段では、実際に個々のファイル単位に
エンコーディングを指定することは出来ないし、インタラクティブな
プログラムばかりではない。
問題が大きいのに相変わらず故意に目をつぶりまくっているな。



281 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 22:05:43 ]
>>278
それなら君は Windows ユーザじゃないってことだ。

282 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 22:06:57 ]
>>281
キミ、面白すぎ
Windowsマンセー、欠陥など一切認めないって信者以外はWindows使っちゃ
いけないのネ

283 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 22:09:28 ]
>>282
物事を面白がれるのはいいことだと思うよ。

現実と架空の区別さえついていれば。

284 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 22:10:06 ]
マルチバイト文字の2byte目の引き起こす下らない問題に
煩わされてきた日本人であるならば、
名前なんてただのバイト列でいいよ、エンコーディングなんてどうでもいいよ、
なんてことは言えない筈だぞ。

UnixとCの時代遅れな設計がいかに多くの下らない「日本語対応パッチ」のような
adhocな生産物を意味出してきたことか。

285 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 22:18:40 ]
>>278
悪いけど俺にはとてもそうは思えないし、エンコード決め打ちなんて
俺の基準からすると作法がなっていない。

286 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 22:19:53 ]
>>284
いいからしばらく黙ってろって。襤褸が出まくってる。

287 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 22:25:18 ]
>>285
> エンコード決め打ちなんて俺の基準からすると作法がなっていない。
そういう「気分」「好み」でしか語れないのか?
技術者なら、Unix方式に比べてどういう具体的な問題・欠陥があるか語れよ。

288 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 22:27:47 ]
>>287
散々書いたじゃん。今まで何読んでたの?
鬱陶しいから横から煽るのは止めてくれ。
あと >>284 みたいな見当違いの事書くのも勘弁な。

289 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 22:29:16 ]
>>288
> 散々書いたじゃん
「Windowsも完璧ではない、Windowsも同じ」以上のことは書いてない気が
するが?

290 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 22:32:23 ]
今ある環境を*肯定*して最大公約数的なものを
提供するのがwxWidgetsだと思うのだが。

OS批評がしたいならOS板に行ってくれないかな。



291 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 22:39:22 ]
>>284はそんなに見当違いか?

テキストとバイナリを区別せずただのバイト列として扱うのが
伝統的なUnixおよびCの文化だ。
実際にはそうした愚直で単純なやり方ではマルチバイトテキストを
扱う上で大きな問題を引き起こす。
無論UnixおよびCでそうでないプログラムを書くことは可能だが、
それに対するサポートレベルがWindowsに比べて非常に低い。

Windowsはテキストを明確に区別する。ほぼ全てのテキストを受け渡しする
APIには、Ansi版とUnicode版が存在し、APIユーザ=プログラマは、
自分のプログラムに適したストラテジーによってそれらを使い分けることが出来る。
Ansi版を使う場合はUnixのロケールモデルに近くなり、それらの切り替えは容易だ。
正しくWindowsの作法に従って書かれたプログラムなら、OSに渡るテキストは
全てUTF-16だ。
そうした世界では、もともとm17n対応であり、SJISの2byte目が引き起こす
伝統的な下らない問題とも無縁だ。
ファイルシステム内のファイル名も一貫しており、どんなコードページで
実行していようが全てのファイルを正しく扱える。
テキストを意識し、テキストを正しく扱っているから出来ることだ。

Unixは「何でもあり」と一見自由のようなことを言っていて、
実際にはエラーを起こしがちで問題の多い解でしかないわけだ。
ちょうど行毎にエンコード形式の異なるテキストファイルのように。

292 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 22:41:05 ]
>>291
ガンガレ
もっとガンガレ

293 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 22:59:47 ]
>>289
書いて無くても書いたんだよ!

294 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 23:01:57 ]
案外ここ住人いたんだなあ
なんだかうれしいよ

295 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 23:24:59 ]
ここまで俺の自演

296 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 23:31:07 ]
いやいや、オレオレ

297 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 23:40:31 ]
VC++ 2005 express edision(無料のやつ)

wx_dll.dswをコンパイルすると
MessageBox@16が見つからないとかいうエラーが出てdllが生成されないんだけど
なんじゃこりゃ

298 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 00:27:41 ]
普通の質問になると黙るのがワロス

299 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 01:16:44 ]
ダメ文字と半端バイト、エンディアン、改行の扱いで問題なければ別にどうでも良いよ
……Windows&SJIS/UTF-16が苦手にするところだなぁ。WindowsもUTF-8(N)にならんかね?


300 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 01:22:32 ]
>297
ちゃんとWindowsの開発環境整えてる?Platform SDKとか。




301 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 01:28:18 ]
>>300
libがなかったらそれ以前にlibが無いってエラーが出るからね
その辺はちゃんとやってる
wx.dswのほういわゆる静的リンクは問題なくコンパイルできる
DLLのほうがだめ

302 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 07:49:05 ]
>>299
どこでも UTF-16 は負の遺産と化してるね

303 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 12:00:37 ]
Javaも.NETもTclもICUもUTF-16だけどな。
ファイルやネットワークで使用するデータ交換形式としては無論UTF-8が
望ましいが、マルチバイト処理を必要とするから、内部コードとして
使うにはUTF-32のほうがいいよ。
UTF-16はまぁ中途半端の観は否めないが、内部コードとして使っている分には
それほど大きな不満はないな。

内部コードとしてのUTF-8の問題は、マルチバイト処理を必要とするだけでなく、
全部char*になってしまうということ。これは一見単純で良いようだが、
Unicodeデータかどうかの識別がつきにくく、プログラミング言語の
オーバーロード機能なども利用しにくくなってしまう。

304 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 13:04:20 ]
>>303
内部コードにUTF使うか?
エンディアン無視してUCSそのままだろ。


305 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 16:58:30 ]
>>303
エンコーディングの問題とプログラミング言語の問題も分離できないくせに
偉そうなフリしてて笑えるw

306 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 17:35:01 ]
ここは何のスレ?

307 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 19:06:05 ]
ねぇ、2.6.3のサンプルでpenguinサンプルをビルドして動かしてみたんだけど、
ウィンドウを閉じようとしたら「ハンドルされていないエラーが発生しました」とかいうエラーが
出てしまう。他のOpenGL使うサンプルもみんなそうなんだけど、これってwxWidgetsのバグ?

308 名前:307 mailto:sage [2007/04/13(金) 14:14:50 ]
>>307
原因がわかったぽい。
NVIDIAの提供しているデバッグ用ドライバだとエラーになるっぽい。
通常のGeForceドライバだとエラーにならなかった。

まさかドライバで動作が違うとはね。

309 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 21:16:38 ]
wxPythonで使ってるんだけど、いわゆるショートカットキー(ホットキー)って
どうやって実装するの?
wxAcceleratorKeyはメニュー用のようだし、wxKeyEventはフォーカスされた
ウィンドウにしかトリガーしない。
リファレンスにもそれっぽい方法は見当たらなかったのだけど。

310 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 21:24:15 ]
メニューのファイル(F)の"Alt+F"みたいなの?
それだったら"ファイル(&F)"でできるけど。



311 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 21:50:37 ]
>>310
いや、違うだろ。
グローバルホットキーのことでしょ?
OS依存度高そうだな。


312 名前:307 mailto:sage [2007/04/13(金) 22:01:38 ]
>>308
と思ったら、普通のGLUTアプリでもこけた。
こりゃwxWidgetsとは全然関係のない話で、単にドライバの仕様な予感。
スマンカッタ・・・。

313 名前:309 mailto:sage [2007/04/13(金) 22:18:52 ]
>>311
それもだけど、当面はアプリケーションごとのCtrl+Zで取り消し、みたいなやつ。
wxMenu.Appendでitem="Undo\tCtrl+Z"とすればできるけど
これだとメニューを出せない場合に困るし、どうしたらよいものかと。

314 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 16:11:20 ]
質問です。
条件によってUIを機能しない(ボタンだったら表示が薄くなって押せなくなる)ように
するにはどうすれば良いのでしょうか。
wxWidgetsのサンプルではEVT_UPDATE_UIというイベントを使っているようですが、
真似して試してみたところ上手く行きません。

315 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 16:31:43 ]
Disable()

316 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 16:19:35 ]
ttp://www.averdevelopment.com/python/wxAGG.html
面白いの見つけた(windows限定みたいだし余り魅力的ではないかも…)
でも
dc = AggDC(wx.PaintDC(self))
b = aggBrush(self.dc.GetBrush())
p = aggPen(self.dc.GetPen())
みたいに使用するのは簡潔でいいと思うけど

def aggBrush(wxBrush):
def aggPen(wxPen):
を使うたびにどこかで定義しないといけないとか、これなら
素直にGDI+を使ったほうが良いかなという気もしないでもない。

というか日本語資料が一件しかないしな…

317 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 13:01:11 ]
そんなもん使うことあるか?
ゲーム作るんならどにみちバッファ直接書いたほうが早いぞ
DirectXより早いぞ

318 名前:デフォルトの名無しさん [2007/05/05(土) 02:07:54 ]

誰か、コレを和訳してないかな?

Cross-Platform GUI Programming with wxWidgets


319 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 06:39:51 ]
wxWidgetsによるプラットホーム非依存なグラフィカルユーザインターフェイスプログラミング

してみたけど。

320 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 11:16:14 ]
ああ流石に寒いかなと思ってやらなかったのに…



321 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 22:59:17 ]
だれか、これで2chブラウザつくらないのかな?

322 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 01:33:23 ]
メリットは?

323 名前:デフォルトの名無しさん [2007/05/06(日) 01:41:18 ]
弱酸性です。

324 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 02:00:32 ]
>メリット

ネタになるだろ?

だれかやって味噌〜

325 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 02:25:38 ]
C#の方が簡単だよ

326 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 02:48:26 ]
>>324
ネタと言うか宣伝だわな

327 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 06:59:32 ]
そんなあふれたもん作ってもしょうがないぽ

328 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 09:40:40 ]
あふれた?

329 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 15:18:54 ]
wxPythonなら Monarchってブラウザがあったらしい
ttp://monarch.sourceforge.jp/

330 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 18:26:03 ]
輝けジャンケル(Woo! Ohowo!!)空高く(Owo!!)
技と力と心が通う ザビタン(hehe!!)
         イビル(hehe!!)ガブラ(Woo!Ohooho!!)
うなれジャンケル! アクサイザー3!!




331 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 19:42:18 ]
なんやねん

332 名前:デフォルトの名無しさん [2007/05/06(日) 20:14:11 ]
これの代わりになるものをみんなで作ろう!!

333 名前:デフォルトの名無しさん [2007/05/06(日) 20:16:53 ]
おちつけ!!!!

334 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 20:25:59 ]
行く道ひとつ Ohowo!! ただひとつ
これが われらの 生きる道

アクサイザー!(Zanzan zazan!) アクサイザー!(Zanzan zazan!)
アクサイザー3!!

335 名前:デフォルトの名無しさん [2007/05/06(日) 21:27:25 ]
これって、あまり人気がないのか?

336 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 03:49:37 ]
wxSocketBase::Callbackが2.8で完全に削除されてるけど
コマンドアプリでイベント処理する場合にはどうすれば?
自作クラスにイベントハンドラを作る方法ってあるの?

ちなみにプログラムの特性上スレッドは却下、同期処理も却下

337 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 04:31:27 ]
EVT_SOCKET(id, func)

338 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 05:09:20 ]
自己解決した

ふふり

339 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 20:01:03 ]
みんなもっと使おうぜ!!
便利なんだから(?)

340 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 22:58:07 ]
wxDateTimeについて

システムの時刻とアプリケーションの時刻を独立して管理したいんだけど
wxDateSpanとwxTimeSpanをwxDateTime::Nowに加算すればいいわけですね
問題はアプリケーションで管理すべき時刻とシステム時刻の差の計算はどうすればいいの?
wxDateSpanとwxTimeSpanを2個のwxDateTimeの差から計算するには?



341 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 23:24:29 ]
あ、自己解決w

342 名前:デフォルトの名無しさん [2007/05/12(土) 16:44:23 ]
これ、人気ないですか?

343 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 20:18:49 ]
どうしてそう思うの?

344 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 21:01:48 ]
まだ何も思ってないのでは

345 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 21:53:13 ]
中身が人気無いというより

コンパイルに数時間かかるし
ドキュメントはほとんど英語しかないし
容量が1G以上いくし
内部構造まで解析できないとバグと仕様の区別が付けられないから不安定だし

まあようするに厨房には無理w

346 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 22:33:32 ]
メリットは何ですか?

347 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 22:47:36 ]
環境に左右されない。
でも、コンパイルは各環境で行わないといけない。

MFCの代わり?
(似てるし)


348 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 23:51:09 ]
>容量が1G以上いくし

まじっすか・・・

349 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:23:23 ]
メリットは

MFCライクだけどMFCをさらに洗練したような感じになってること
完全クロスプラットフォームだからネットワーククライアント関係を作るなら便利
完全に無料だからライセンスを一切気にする必要がない
多国語サポートとかとにかく機能はすさまじく充実してるけどクラス設計が洗練されてて覚えやすい

350 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:30:20 ]
クラス設計が洗練されているというのは
クラスの命名規約やパラメータのパターンやイベント処理方法がすべて統一されているから
ダイアログの表示の仕方を覚えると、フレーム作ったりMDI作ったりする方法がなんとなく想像できる
ちょっとそれらしい名前のクラスリファレンスを見るだけでダイアログを表示する方法と同じ方法で
いろんなものが表示できる



351 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 17:04:37 ]
デメリット

英語が出来ないと辛い


352 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 19:36:07 ]
C++のコード読めないとつらい。

当方、wxPython使い。

353 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 20:49:24 ]
GUI以外のシステム依存機能が大量に入ってて便利な反面
使わない機能も勝手に付いてきて重い

354 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 00:01:36 ]
重くは無い
でかいけどw

355 名前:デフォルトの名無しさん [2007/05/14(月) 01:55:39 ]
wxJoystickを使ってゲームパッドで操作するアプリを作成中なのですが、
ボタンの押下はポーリングでスキャンする方法しかないのでしょうか??
ボタンを長押ししたりすると、連打してるようになるし、
ボタンをちょっとだけ押しても反応しない時があるので困ってます。。

ボタンが押された時にだけイベントを発生させることはできないのでしょうか?

356 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 02:41:26 ]
wxJoystick::SetCapture

357 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 10:06:15 ]
すごく・・・おおきいです

358 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 13:49:10 ]
大きい・・・のか

359 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:10:12 ]
英語が出来ないので、断念 ⇒ Turbo C++ 使い方が良くわからないので断念 ⇒ WinAPIでガリガリ書く
みんなが辿る道

360 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:22:29 ]
英語つっても文学作品じゃないんだから嵩が知れてるでしょ。
やっぱりデカイのが痛い。



361 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:33:18 ]
>>360
デカイと痛いのか。。。

力を抜けよ。

362 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:43:01 ]
Turbo C++ で十分

363 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:45:43 ]
アッー!

364 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:45:59 ]
>>361
いやまて、チ○コじゃなくて、オパーイかも知れんぞ。

365 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 22:22:07 ]
>>364
そっちだって、でかいとジャンプするだけで痛いよ?

366 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 23:01:20 ]
>>359
それはつまり,C++を理解できてない人が打ちのめされたあげく,
Cだけで書こうと思い立つもCすらよく理解できていないからハンドラの扱いが
よくわからなくてWinAPIのサンプルをコピペしてダイアログ作って
テキストボックスに身長を入力したら標準体重を表示するだけの
プログラムの計算ルーチンだけを書いていたら頭の中でガリガリなった
ような気がする状態のことですね。あるある。

367 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 01:46:53 ]
wxScintillaの内部で利用しているScintillaをさ1.62から
1.71以上にしたいんだけど、どうすればいいの?

368 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:07:02 ]
DLLにすればでかくないw
しかしDLLを作るには英語力が必要w

369 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 03:35:10 ]
メモリに読み込んだらサイズは一緒

370 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 04:08:22 ]
メモリ量なら.Netは誰にも負けないw



371 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 10:30:44 ]
wxPython使ってるんでサイズ的には只のテキストファイルだ

372 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 20:22:52 ]
py2exe使うとどえりゃーことになるぜ

373 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 20:42:07 ]
パネル一個のアプリが50MBytes超えるしな。

374 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 20:46:30 ]
まじめにDLLとReleaseモードを組み合わせたパターンだと
ランタイム含めても2MBいくかいかないかだけどな
本体はよっぽとすさまじいシステムでもない限りせいぜい500kbくらいか

375 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 21:32:13 ]
>>373
それpy2exeの話?すげーなそれは・・・

376 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 23:21:42 ]
いわば、pythonとwxpythonの本体もまとめてexeに入れてしまうらしいからね

377 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 01:35:24 ]
今どき50MBくらいへでもないじゃん。

378 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 15:39:21 ]
そういう問題じゃないだろ・・

379 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 16:02:13 ]
わざわざPythonを使う理由がわからん
マゾか?w
C++でもJavaでもいいのにw


380 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 19:19:46 ]
その3つの中でPythonしか知らないからだよっ!



381 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 22:34:24 ]
C++ も Java も REPL が無いのが辛い。俺にとってはかなり致命的。
あと C++ は変則的過ぎるから気持ち悪い。

382 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 22:37:38 ]
統制がとれていないのをマルチパラダイム言語とか言ってごまかしてるからな。
俺はそのカオスさも嫌いじゃないが

383 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 23:03:59 ]
ちなみにwxJavaScriptってのもあるぞw

384 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 00:29:48 ]
>>382
あれは、ごまかしてるんじゃない。開き直ってるんだ。

385 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 08:58:48 ]
開き直ってるというのも、ちょっとニュアンス合わないな。
それだと、途中からそう考え出したみたいだから。

C++のあのスタンスは最初からだよ。

386 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 22:21:30 ]
サイズ減らしたいと思ってぐぐってたらこんなの見つけた

ケチケチ wxWidgets
bunysmc.exblog.jp/3647189/


387 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 00:19:53 ]
くだらねーw
てか公式でランタイムのバイナリ配布すればいいのにね

388 名前:デフォルトの名無しさん [2007/05/23(水) 00:13:34 ]
海外品に頼るな!!
国内産を使え!!
自分に合うのがなければ作れ!!

389 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 00:31:34 ]
日本の国産品しか使っちゃいけないくらいなら海外に脱出するよ。

390 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 00:47:17 ]
日本人は馬鹿が多いから無理だな



391 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 01:05:59 ]
ところで
wxURL<wxHTTPはメインスレッドから呼ぶと非同期通信になってGetInputStreamした段階で必ずreturn NULLしやがりますが
イベント登録も無いし、繋がったタイミングを検出する仕組みが一切ないのですが
これは完全にセカンドスレッドで動かすことを想定してこういう仕様にしたのだろうか?
これだけwxWidgetsじゃないような作りになってて使い物にならん

392 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 02:17:48 ]
まともにLinuxで日本語表示できるようにしてくれ

393 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 08:03:41 ]
何年前のLinuxをお使いですか?

394 名前:デフォルトの名無しさん [2007/05/25(金) 00:38:13 ]
なんで、はやらないんだろう?

395 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 00:48:09 ]
>>394
デカイから。

Xcb のラッパーの Xlib のラッパーの Gdk のラッパーの Gtk+ のラッパーな
ライブラリなんて普通は使いたくないでしょ。

396 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 01:03:12 ]
つか未だにUTFとかでゴミはいるだろLinuxでは使えん。

397 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 20:51:34 ]
wxSocketBaseのWaitForRead()するとCPU100%になるんだが
Readでブロックしてしまう前に排他制御したいのでデータの有無を事前に確認したいのだが
このCPU使用率はなんとかできんのか?


398 名前:デフォルトの名無しさん [2007/05/31(木) 10:59:42 ]
これ、MSのSilverLightに食われるんじゃないの?

Windowsは間違いなくそっちの方向へいくし、Macも使えるし、
LinuxはMoonLightでとりあえず自分的にはGTKよりwxWidgetsのほうが
いいなとおもってた口だが、Silverlightのせいでメリットなくなったな。

399 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 15:15:37 ]
SilverLight と wxWidgets が競合するようなものだと思ってるところが凄い…

400 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 17:29:52 ]
「クルマのカタログスペックでやたら語るくせに、免許に1種と2種の区別があることを知らないみたいなもの」だろ。



401 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 18:01:31 ]
例えばある場所からある場所に移動するのに、どの車でどういう行き方をしてるか話し合ってるときに
新幹線が出来ちゃったんでもうその話は終わりだねって感じじゃん?

402 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 18:30:27 ]
そいつは多分新幹線にも車にも乗ったことないから、乗り物にさえ乗ればどこにでもいけると思ってるんだろうな、という話。

403 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 19:50:09 ]
お前らうざいどっかいけ

404 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 20:25:04 ]
Silverlight=アドビ システムズの「Flash Player」に対抗するウェブブラウザ用プラグイン

405 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 13:24:51 ]
ずいぶん前に、公式サンプルのバイナリのサイズがあまりに大きかったので、
WxWidgeに興味がなくなったが、先日v.2.8.4をダウンロードしたら、ずいぶん
サイズが小さくなっている。Windous環境静的リンクで簡単なものなら、EXE
圧縮なしでも1Mくらいになっている。
で、興味がわいてきてお試し中だが、ライブラリが、UNICODEか否か、リンクが
静的か動的か、各OSが準備している部品を使うか否か、Debug版か否か・・
の組み合わせで16種類もあるので、ライブラリ構築にすごく時間がかかった。

406 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 18:01:40 ]
>お願いです。ム板かマ板でやってください。こっちで聞いても泥臭いCocoa使いか
>死亡寸前のPowerPlant使いしか居ません。
>
>日本語での資料の入手のし易さからwxPythonがおすすめかもです。
>本屋でのpython系の本を探ってると結構出てくるし。
>httpはサンプル多いし、GUIもwxPyhtonでそれっぽく造れる。
>
>どっちにしろ、Mac板にはPythonのスキルをもった人間は少ないよ。
>
>ここはMac板です。そうゆう人を隔離するために造られました。
>一掃したら、マカーがPCカテゴリ全体に散らばって収集付かなくなります(>_<)
>
>以下のスレッドでよろしくです。
>
>wxWidgets
>pc11.2ch.net/test/read.cgi/tech/1157727990/
>
>Python
>pc11.2ch.net/test/read.cgi/tech/1181064980/

てわけで、
新人が来るかもしれないので、みなさん準備をしてください。

407 名前:デフォルトの名無しさん [2007/06/15(金) 18:04:25 ]
目立つようにageておきます。
よろしくお願いします。

408 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 20:12:43 ]
新人マダー?

409 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 20:37:28 ]
>>406
何で wx を使えもしない人間が wx がお勧めとか書いてるんだよw
適当な誘導だなあ

410 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 20:46:30 ]
>>409
実際に使ってる人間は勧めたりしないさ…



411 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 23:23:18 ]
使ってるなら勧めるだろw

412 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 00:49:19 ]
流れをぶった切って伺いたい
今MSW版の2.8.4ビルドして、samplesのいくつかをDLL Unicode Releaseの設定でこさえて実行したら
ウイルスバスター2007が警告出しやがったんだが同じ経験した椰子いる?

まぁ、バスタの警告はなんかもう、「俺が知らないプロセスは全部マルウェアだ!!」ってノリに見えるので
それ自体は気にならんけど。

413 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 15:35:16 ]
マニフェスト。

414 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 23:28:28 ]
サンプルの問題では?

415 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 00:16:24 ]
翻訳プロジェクト手伝おうと思うんだけど
管理者の人はまだここを見てるのかな

416 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 12:38:50 ]
みてますが、プロジェクトは死んでます。死なせちゃってごめんなさい。まだこのプロジェクトに割く余力が生まれないので、当分死んだままだと思います。
一人でもいいからやってみる!っていう気概があるなら、メンバーに追加するので、sourceforge.jpのログイン名教えて下さいね。

417 名前:415 mailto:sage [2007/06/26(火) 23:02:44 ]
>>416
「ho-ayn」でお願いします

418 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 06:14:44 ]
追加したよ。

419 名前:415 mailto:sage [2007/06/27(水) 22:44:28 ]
>>418
どうも
とりあえず細々とやっていきます

420 名前:くれくれくん [2007/07/18(水) 00:18:40 ]
すみません、なんでもくれくれ君ですが
WindowsXPノートのHDが暑さでダウン〜。HD交換しましたがシステムが...
間に合わせに日経Linux7月号のDVDからUbuntu7.04日本語版をいれましたが
なかなかいいじゃないですか。
とりあえずLINUXに乗り換えて
前環境を再構築中です(xp+cygwin -> linux)
とりあえずecos cofiguretion tool を動作させたいのですが。
ttp://www.ecoscentric.com/devzone/configtool.shtml
wxWidgetsの実行環境が必要みたいで
ここにたどりつきましたが
簡単インストールはどうすればいいのでしょうか?♪〜
以上くれくれくんでした



421 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 00:44:37 ]
UbuntuだったらSynapticが最初から入ってるじゃないか

422 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 01:34:02 ]
他のスレ見に行ったわけじゃないが明らかにマルチ

423 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 03:19:22 ]
421だけど、ああいうのは無視した方がいいのかな。
あの手のタイプがLinuxに関わっても本人のためにならないとは思うけど。

424 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 01:36:26 ]
>423
本人のためにならない、だけなら自業自得だからいいんジャマイカ。

と、2.8.4 mswでどうにも最小サイズの指定が効かずに四苦八苦しているど素人が言ってみるテスト。

425 名前:デフォルトの名無しさん mailto:sage [2007/08/10(金) 20:34:20 ]
>>412
DEP

426 名前:デフォルトの名無しさん [2007/08/17(金) 01:53:05 ]
あああ

427 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 14:46:54 ]
release buildの途中でコンパイラが落ちちゃうんですが、ご助言を
デバッグビルドはうまくできました。
---
Win2ksp4
MinGW 5.1.3 (GCC 3.4.2)
MSYS 1.0.10
wxMSW 2.8.4
---
configure --with-msw --disable-debug --disable-shared --enable-unicode
---
/c/dev/wxWidgets/build-release/bk-deps g++ -c -o baselib_datetime.o -D__WXMSW__
-I../src/tiff -I../src/jpeg -I../src/png -I../src/zlib -I../src/regex -I../src/expat/lib
-DwxUSE_GUI=0 -DwxUSE_BASE=1 -I/c/dev/wxWidgets/build-release/lib/wx/include/msw-unicode-release-static-2.8
-I../include -mthreads -Wall -Wundef -Wno-ctor-dtor-privacy -ggdb -O2 -fno-strict-aliasing ../src/common/datetime.cpp
../src/common/datetime.cpp: In function `wxString CallStrftime(const wxChar*, const tm*)':
../src/common/datetime.cpp:265: internal compiler error: in dwarf2out_frame_debug_expr, at dwarf2out.c:1602
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:www.mingw.org/bugs.shtml> for instructions.
make: *** [baselib_datetime.o] Error 1
---

以上です

428 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 16:04:33 ]
あ、427ですが、GCCのバージョンが最新じゃないですね。
バージョンを上げたらエラーが出なくなりました。
MinGWインストールで最新バージョンが入るんじゃなかったのか(´・ω・`)
すんませんでした

429 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 02:27:23 ]
wxWidgetsのGUIデザイナで、MSVC8用のアドインみたいなものってあるんでしょうか?
あれば、金払ってでも欲しいんですが。

430 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 02:54:43 ]
あ、俺もそれ欲しい
できれば無料がいいけど



431 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 23:19:38 ]
過去ログ斜め読みで流れぶったぎりながら聞くんだけどさ、
Windows(MinGW) で wxGraphicsContext のあたりのクラス使えた香具師いない?

コンパイルしようとしたら GDI+ のライブラリがないらしくて、
./configure で --enable-graphics-ctx を指定してもエラーだらけだよう。

ちょろちょろぐぐってんだけど、MinGW で GDI+ となると情報見つからないし……助けてー。


432 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 21:56:13 ]
up.nm78.com/dl/32942.jpg

433 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 13:51:53 ]
>>432
グロ注意

434 名前:デフォルトの名無しさん [2007/09/01(土) 12:55:46 ]
Code::Blocks使ってる方いますか?
結構よさげだと思い、wxGladeから移転したいのですが、
xrcのインポートの仕方が分かりません。
知っている方いましたら教えて下さい。お願いします。

435 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 22:48:13 ]
wxPerlのwxHTMLwindowに関して、非常に初歩的ですが質問させてください
(環境:win xp sp2, active perl 5.8.8, wxPerl)
html形式で文書を表示させるウィンドウを表示させようと思い、wxHtmlWindowを利用しようとしました。
まず、一番シンプルな形でテストしようと思い、wxperlのチュートリアルのただのウィンドウを表示させるスクリプト

use Wx;
package MyApp;
use base 'Wx::App';
sub OnInit {
my $frame = Wx::Frame->new( undef, -1, 'wxPerl rules', [-1, -1], [250, 150], );
$frame->Show( 1 );}
package main;
my $app = MyApp->new;
$app->MainLoop;

これをwxHtmlWindowに置き換えてみました。(続きます)

436 名前:435 mailto:sage [2007/09/10(月) 22:49:35 ]
use Wx;
package MyApp;
use base 'Wx::App';
sub OnInit {
my $frame = Wx::wxHtmlWindow -> new( undef, -1, [-1, -1], [250, 150], wxHW_SCROLLBAR_AUTO , "htmlWindow", );
$frame->Show( 1 );}
package main;
my $app = MyApp->new;
$app->MainLoop;

このスクリプトを実行しようとするとエラーメッセージで
Can't locate object method "new" via package "Wx::wxHtmlWindow"(perhaps you
forgot to load"Wx::wxHtmlWindow"?) at (スクリプトのファイル).pl
と表示されます。

ファイルのはじめにwxHtmlWindowを呼び出す必要があるのかと思い、
" use Wx::wxHtmlWindow ; " を足すと 
Can't locate Wx/wxHtmlWindow.pm in @INC (@INC (モジュールの置き場所のパスwx))..
... BEGIN failed--compilation aborted at (スクリプトのファイル).pl
と表示されます。ex自体は正常にインストールされ、これまで問題なく使えていました。wxHtmlWindow特有の
設定などがあるのでしょうか?原因のわかる方がいらしたらアドバイスお願いします。

437 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 05:05:49 ]
>>435
あなたの疑問点とは違うが

> これをwxHtmlWindowに置き換えてみました。(続きます)

ここが既に間違い。wxHtmlWindowはフレームじゃないんで。
他のWindowの中に貼り込むもの。

いきなり見様見真似で突っ込む前にもう少しwxの概念とかを
飲み込んだ方がいいと思う。

438 名前:435 mailto:sage [2007/09/12(水) 02:54:10 ]
>>437
ご指摘のとおり、wxの基本的な部分で勘違いをしていました。親ウィンドウを作って
そのなかにpanelのようにwxHTMLwindowを設定してはりこむのですね。

エラーですがuseの使い方が悪かったようで
ttp://www.opensubscriber.com/message/pdk@listserv.ActiveState.com/2520427.html
とwxPerlのチュートリアルのスクリプトを組み合わせて色々いじってみたら簡単なhtml表示
ウィンドウが出せるようになりました。

wxどころかperlの使い方の基本すらなっていなかったようで、もっと勉強してから書き込むべきでした。

439 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 13:31:59 ]
特に話題もないので初歩的な話もありでは

440 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 18:02:43 ]
話題の枝刈りにこだわるには、ちょいと閑散とし過ぎているからね。



441 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 21:48:42 ]
Open Tech Press | Windows向けFTPの秀作FileZillaがLinuxにも対応
opentechpress.jp/developer/07/09/14/015234.shtml

442 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 00:30:18 ]
FTP なんてコマンドラインやスクリプトでやるもんだと思ってたけど…

443 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 13:54:10 ]
秀丸がlinuxにも対応
と聞いて飛んできますた

が見間違えだった

444 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 23:58:51 ]
wxWidgetsとMySQL一緒に使ってる人いる?

ttp://www.wxwidgets.org/wiki/index.php/ODBC
によるとMySQLのODBCドライバにバグがあるらしいんだけど
ここに書いてあるとおりにしてもサンプルがちゃんと動かないし

直接API使うしかないのかな


445 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 13:44:51 ]
ちょっとしつもん。

wxWidges と OpenGL を組み合わせた無償または有償アプリ
(少なくとも自作部分に関してはソース非公開が前提)
を作るとして、本当だったら、エンドユーザーには
wxWidgets と OpenGL を事前にインストールしてもらわないといけない。
それは面倒なので、インストールしていない環境でもそのまま実行でいるように wxWidgets と OpenGL を組み込んだ状態で
アプリケーションを作成・配布したい(つまり、wxWidgets と OpenGL のDLLを EXEと一緒に配布または販売)んだけど、これってライセンス的に問題ある?

446 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 14:05:59 ]
それぞれのライセンス読もうな。

447 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 15:44:40 ]
FAQ も読めない奴は(・∀・)カエレ!!

Can I use wxWidgets for both proprietary (commercial) projects, and GPL'ed projects?

Yes. Please see the licence for details, but basically you can distribute proprietary binaries without distributing any source code, and neither will wxWidgets conflict with GPL code you may be using or developing with it.
The conditions for using wxWidgets are the same whether you are a personal, academic or commercial developer.

448 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 00:26:11 ]
英語が読めないスーパーハカー

449 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 01:34:39 ]
スーパーハカーと呼ばない

450 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 05:14:10 ]
スーパーバカー



451 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 02:06:20 ]
>450
昨日半徹だたのでちょとフイタw
……いい加減寝よorz

452 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 04:59:01 ]
Can I use wxWidgets for both proprietary (commercial) projects, and GPL'ed projects?
wxWidgetsは商用プロジェクトとGPLプロジェクトの両方で使う事ができますか?

Yes. Please see the licence for details, but basically you can distribute proprietary binaries without distributing any source code, and neither will wxWidgets conflict with GPL code you may be using or developing with it.
はい。詳しくはライセンスを読んでください。
ただ、原則としてあなたの配布物がバイナリ形式(いかなるソースコードも含まない)であり、
なおかつGPLコードが含まれない場合に限ります。

The conditions for using wxWidgets are the same whether you are a personal, academic or commercial developer.
この条件は wxWidget の個人利用、教育利用、商用利用にかかわらず適用されます

。。。みたいなことが書いてあるってことであってる?


453 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 08:27:22 ]
>>452
>but basically you can distribute proprietary binaries without distributing any source code, and neither will wxWidgets conflict with GPL code you may be using or developing with it.

基本的にあなたはいかなるソースコードも配布せずにプロプライエタリなバイナリを配布する事が出来ますし、
wxWidgets はあなたがプログラムの実行や開発に利用するGPL のコードとライセンスの矛盾を起こす事はありません。

454 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 08:36:04 ]
>>452
neither will wxWidgets conflict with ~ は
wxWidgets will not conflict with ~ と読み替えると宜し。

455 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 10:25:13 ]
thx. なるほど、neither ~ の部分はそう訳せば良かったのか。。。
つくづく、学校でちゃんと英語をやっておけば良かったと思うよ。


456 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 08:26:26 ]
GLCanvasつかってるひといる?

これって、一つの frame には GLCanvas しか
配置できないのかな?
frame -> panel -> glcanvas とか、
frame -> gridsizer -> glcanvas + textctrl とか
やろうとすると、フレーム全体が全く描画されなくなってしまう

OpenGLって、コントロール単位ではなく
ウィンドウ単位でしか描画してるのかな?

457 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 11:05:25 ]
2.6時代だけど、普通にsizerに色んな物と一緒に置いても問題なかった

458 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 03:27:37 ]
wxWidgetsは所詮Wrapperだから
普通にOpenGLで多画面出来るかどうかの問題だ
出来るのならプログラムか環境に問題がある

459 名前:デフォルトの名無しさん [2007/10/16(火) 15:06:43 ]
ttp://cc.codegear.com/Item/24937

wxForms - wxWidgets Form Designer for C++ Builder

これってどうよ?

460 名前:デフォルトの名無しさん [2007/10/16(火) 15:54:23 ]
wxDialog based と wxFrame based について教えて下さい。

・1つのプロジェクト(というかmakefile?)ではどちらにするか決定するものでしょうか?
・どう違うのでしょうか?(どちらが良いのでしょうか?)

解説サイトでも何でも良いので教えて下さいorz



461 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 18:29:28 ]
メインがダイアログかフレームかってこと?

462 名前:460 mailto:sage [2007/10/16(火) 18:33:54 ]
そうです。

メイン以外もどうすべきか教えて下さい。

463 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 01:33:37 ]
おれの理解ではメニューバーやステータスバーが欲しければFrame、欲しくなければDialogだ。
どちらがいいとか悪いとかいう問題じゃない。好きなほうにしたらいい。決められないなら鉛筆ころがせ。

464 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 01:59:55 ]
>>460
python.matrix.jp/projects/wxPython/bad-know-how.html


465 名前:460 mailto:sage [2007/10/17(水) 08:39:03 ]
>>463
>>464

そういう内容を知りたかったんです。

この問題は解決しましたが、
1つ1つ問題を解決するの大変orz

Delphiなんかだと、
TFormがウィンドウで、その中に貼り付けるのがTFrameだったりするので、
危うく間違えるところですた。


466 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 09:11:38 ]
>>465
知らないものを触る時はまず付属のサンプルを見た方が良いのでは?
余計なお世話かも知れませんが。

467 名前:デフォルトの名無しさん [2007/10/17(水) 10:47:19 ]
MacでwxWidgetsする場合は、
コンパイラはgccですか?Xcodeですか?

468 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 12:22:55 ]
>>467
Xcodeでgccですよ

469 名前:467 mailto:sage [2007/10/17(水) 18:25:11 ]
あ、XcodeってIDEであってコンパイラは別なんですか。
Eclipseみたいなもんかぁ。

サンクス

470 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 01:29:59 ]
皆さんが、画面を作成するときは、どんなツールを使用していますか?




471 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 07:15:42 ]
テキストエディタ

472 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 10:10:48 ]
紙とペン、鉛筆

473 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 10:11:31 ]
>【A3】C++Builderテクニカルセッション
>「wxFormsで始めるwxWidgetsプログラミング」

こういう答えを希望してるわけ?

474 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 21:07:42 ]
自動生成だといらない物がごちゃごちゃ入り込んで気持ち悪い

475 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 09:08:22 ]
自動生成の要らないものごちゃごちゃに対するアンチテーゼというかアウフヘーベンが、
”クラスライブラリ+IDE”だお。

これだと差分コードしか表れない。

但し、VC++/MFCは除く。

476 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 00:09:58 ]
MFCはAppWizardなしでも使えるよ

477 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 08:52:03 ]
>>476
それって何て手書き?

478 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 18:37:55 ]
>>477
いや、MFCは手書き不可みたいに書いてたから。
手書きMFCなんてやる理由はないとは思うけど。

479 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 22:42:12 ]
クロスプラットフォームで独自形式のrich text editorを作りたいと思ってwxWidgetsを使ってみました。
ちょうどrich textのサンプルあったので動かしてみましたが、これって日本語入力できないですね。
どうやらeditor boxみたいなおネイティブのコントロール使ってる場合はOKなんですが
自力で作るコントロールの場合はそのままでは無理っぽいです。
そのあたりハンドルできる方法ってないですか?
今はWinowsでVC使って動かしています。

このあたりクロスプラットフォームで日本語入力も完璧なのって結局Javaなんですかね・・・
なるべくならC/C++でやりたいと思ってます。
wxWidgets以外にもいい候補あったら教えてください。

480 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 00:27:43 ]
>>479
自分で実装するか、IIIMF とか Anthy とか使ってみるかじゃないかな。



481 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 01:29:40 ]
Windowsって書いてるけど

482 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 01:35:22 ]
クロスプラットフォームって書いてるけど

483 名前:479 mailto:sage [2007/10/29(月) 00:04:53 ]
ありがとうございます。
wxWidgetsだけではやっぱり無理っぽいですね。
インライン入力の制御は面倒なのでできればありもので済ましたいです。

で思いあたったことにマルチプラットフォームといえばOpenOfficeがありました。
あれのtoolkitってどうなってるんですかね。
SDKあるみたいなのでちょっと調べてみます。

484 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 00:10:51 ]
Mozilla も見てみると良いよ。

485 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 01:27:04 ]
Mozillaといえば、wxWidgets本家のScreenShotで上がっている
Kirix StrataがMozillaベースに変わってるっぽい。
ttp://www.kirix.com/index.html
wxAUIは今後も開発とあるけど。

486 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 23:46:59 ]
wxImage::Rescale(w, h, wxIMAGE_QUALITY_HIGH)
が遅すぎて使えないんだけど・・・。
なんかないですか?

487 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 00:29:32 ]
>486
思いつきだがそこはImageMagickに任せてしまうとか。
wxImage <-> ImageMagickのイメージ形式
の変換コストが問題になるほどだとあかんけど。

488 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 00:51:48 ]
>>486
パッと見ただけの実に適当な印象だが。

wxImageはRGB24bitのピクセルデータと、8bitのαチャンネルのデータを
別々に持ってるようだねえ。で、イメージの配列には当然のように
バイト単位でアクセスしている。
ネイティブな形式が例えばAGBRなら、さらにそれをいちいち変換して描画
するんだろうね。

いかにも遅そうだねえ。

489 名前:486 mailto:sage [2007/11/01(木) 01:21:15 ]
>487
>488
レスありがとうございます。

>486
別プロセスで ImageMagick 起動ってことですよね。
たぶんそっちの方がコスト的には高いかと。
うーん。せめて StretchBlt でリサイズしつつメモリに転送とか
できたらいいのに・・・。

490 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 01:29:20 ]
>489
ん? ライブラリリンクしちゃえば、という積もりだったんだけど。
っても今確認したらGPLかぁ > ImageMagick



491 名前:デフォルトの名無しさん [2007/11/01(木) 08:04:20 ]
wxImageは内部が汎用なので、
ポインタで直接処理した後wxBitmapに変換して使用するしかないかと。
画面がリサイズされたときなど必要に応じて最低限の変換で対応するか、
OpenGLあたりを使うほうがよさそう。

492 名前:デフォルトの名無しさん [2007/11/01(木) 15:56:10 ]
>ttp://e-words.jp/w/LGPL.html
>LGPLでは動的な(実行時)リンクに限り、GPL/LGPLに従わないソフトウェアでの利用も許容している。

あれ?
wxWigetsってLGPLだから、静的リンクした場合、ソースを公開しなきゃならないの?


493 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 16:49:00 ]
公開以前に、ライセンスを読んでもいない奴は使うな、が正しい。

494 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 22:11:22 ]
>>492
1. LGPL にソース公開の義務は無い
2. wxWidget は LGPL の制限を緩める為の追加条項を加えたライセンスを採用している
3. 何か契約をする際は必ず原文に目を通した方が良い

495 名前:486 mailto:sage [2007/11/02(金) 01:02:56 ]
>490
大変失礼しました。
ImageMagickのライブラリってあるんですね。勉強不足でしたorz

wxIMAGE_QUALITY_NORMALで写真の画像をリスケール
したところ、思ったよりも画像が崩れなかったので、
しばらくはコレを使おうと思います。

32x32とかのアイコンとかを拡大するとダメダメだけど・・・

496 名前:デフォルトの名無しさん [2007/11/04(日) 14:03:59 ]

ボタンの配置について質問です。

ダイアログで「OK」ボタンと、「キャンセル」ボタンを横並びで表示したいのですが、
縦に並んでしまいます。

どうしたらよいのでしょうか?


497 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 15:11:34 ]
スレタイ嫁

498 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 22:22:30 ]
>496
エスパー初心者がいってみよう

wxHORIZONTAL

499 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 22:50:39 ]
絵スパー初心者二号がテレパシー中

・・・ ・・ ・・ ・ ・・・

ディスプレイを縦にするといいと思うよ。

500 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 01:10:47 ]
日本語マニュアルが中途半端なのがな〜



501 名前:デフォルトの名無しさん [2007/11/06(火) 01:08:10 ]
zipを扱うことができるみたいですが、どうやったらいいのかわかりません。
サンプルを見てもよくわかりません。
ほかにわかりやすいサンプルはありませんか?

サンプル:console.cpp 3238行目

502 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 04:34:48 ]
以前使ったが、別段何を悩むこともなかったぞ。

503 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 00:20:09 ]
これからVC2005EE使って開発する予定なのですが
GtkmmとwxWidgetsのどちらを使うか迷っています
既に両方使ったことのあるかたにアドバイスを
頂きたいのですが

504 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 00:54:22 ]
gtkmm の方が開発してて気持ちいいけど、
wxWidgets の方がアプリを使ってて気持ちいい

505 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 02:01:39 ]
テキストボックスやComboBoxでダブルクリックしたら
これまで打ち込んだやつがヒストリーとして表示するように
したいんだけどこういうのはなんか用意されているでしょうか?

506 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 04:37:15 ]
>>504
すごく分かりやすい説明です
本当にありがとうございました

とりあえず両方やってみます

wxWidgetsで分からないときは
ここを頼りにしていますので
よろしくお願いします


507 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 05:54:31 ]
>>506
> wxWidgetsで分からないときは

なんたらoverview
リファレンス
本体ソースコード
サンプル

の順かなあ、俺が頼りにしたのは。

508 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 03:42:08 ]
>>505
wxBlog見たらver3.0でつきそうな感じだね。

509 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 12:03:09 ]
>>84
1,ゴッドサイザー
2,アステサイザー
3,三ツ矢サイザー
4,グレンサイザー

510 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 13:59:57 ]
wxBlogでの3.0の新機能の説明(英語)がいまいち良く分からんです。
Unicodeがどうのこうのとあるんですが、Unicodeビルドしなくても
デフォルトでUnicodeビルド扱いになるということなんでしょうか?



511 名前:デフォルトの名無しさん [2007/11/14(水) 23:46:59 ]
0xcc.net/pub/uu-2004-08/
このページ見て設定してみたけどコンパイルできません。
wx/wx.h がNo such file or directoryとなりインクルードできないです。
どうしたらよいのでしょうか?


512 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 23:58:01 ]
はい使ってるOSとコンパイラは?

513 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 00:00:09 ]
Windows XPで MinGW 使ってます。


514 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 00:25:15 ]
wx/wx.hがあればいい。それだけ。

515 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 00:36:15 ]
どこにあればいいんですか?
C:\MinGW\includeにはなくて、
C:\msys\1.0\home\Owner\wxMSW-2.8.6\include
にあります。
C:\msys\1.0\home\Owner
にファイルを作りコンパイルしたところできませんでした。

516 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 00:48:08 ]
make install してやってから
`wx-config --cxx` -o hoge.exe hoge.cpp `wx-config --cflags --libs`
みたいにしてコンパイルしれ

517 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 01:01:32 ]
ありがとうございます。できました!
今までやってた
$g++ -c hello.cpp 'wx-config --cppflags'
ではできないみたいですね。


518 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 01:52:51 ]
cppflagsが返すのはCプリプロセッサのためのオプションだぞ

519 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 03:49:16 ]
>>510
・今までANSIとUnicodeの二つのビルドがあったのが、一つになる。
・wx内部では全部Unicodeで処理するが、APIはANSIとUnicode両方が用意される。
・ANSIのAPIは逐一Unicodeにエンコードして処理する。
ってところだと思う。

520 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 05:35:38 ]
>>486
それのプログラム見たらわかるけど効率悪い
自分で組んだ方がいいよ



521 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 05:37:35 ]
wxImageMagickを今開発中のはず
wxImageにラップするようだけど
それを待ってもいいかも

522 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 00:52:43 ]
サイザーの使い方を教えてください。

**********************
*                *
*       A         *
*                *
*                *
**********************
* B  *      C     *
**********************

以上のようなレイアウトで、
 ・縦幅が変化した場合はAのみ
 ・横幅が変化した場合はAとC
それぞれ動かしたいのですが、
いったいどうやってサイザーを設定すればいいのでしょうか?
よろしくお願いします。

523 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 01:32:23 ]
>>522
試してないけどこんなんでどう?

wxSizer *root = new wxBoxSizer(wxVERTICAL);
root->Add(A, 1, wxEXPAND);

wxSizer *sub = new wxBoxSizer(wxHORIZONTAL);
sub->Add(B, 0, 0);
sub->Add(C, 1, 0);
root->Add(sub, 0, wxEXPAND);

SetSizerAndFit(root);

BoxSizerの指定方向に対しては、Add()のproportionを1以上にするとサイズ変更される。
もう一つの方向に対しては、wxEXPAND指定すれば、領域を埋めるようにサイズ変更される。



524 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 02:02:10 ]
>>523
それでできました!
CにEXPANDを指定したら、縦に広がったりしてかなり困っていました。
サイザーってそういうふうになっているんですね。
どうもありがとうございます。

525 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 22:18:22 ]
フォントの高さをピクセル単位で取得したいのですが、
> font.GetPointSize();
だと値が表示されている高さよりも明らかに小さくなります。
正確な値を得るにはどうすればいいのでしょうか?
よろしくお願いします。

526 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 23:15:35 ]
ポイントとピクセルは全然違う単位だ

527 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 00:51:21 ]
>>526
それなら、ポイントをピクセルに直すにはいったいどうすればいいのでしょうか?
解像度とか関係ありそうなのですが、よく分からないのです。

528 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 01:38:57 ]
>>527
wxDC::GetCharHeight()
がそれっぽいですがベースラインより下の部分も含んでるのかどうかはわかりません

529 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 20:09:11 ]
>>528
それを参考にして書いていたら、wxWindowにも
同じ名前のドンピシャなメソッドがあることが分かりました。
ありがとうございました。

530 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 20:34:52 ]
分割ウィンドウ(wxSplitterWindow)を使用した場合、ステータスバーの表示/非表示
切り替えは出来ないものなのでしょうか。サンプルのsplitterに、statbarからの表示/非表示
切り替えコードを追加してみたのですが、初回の非表示(失敗)後に、分割ウィンドウの
サイズが変更不能となってしまいます。



531 名前:530 mailto:sage [2007/12/05(水) 21:18:50 ]
すみません、自己解決しました。
wxStatusBar* statbar = GetStatusBar();

statbar->Hide();
//SetStatusBar(NULL); // <- 親フレームと分割ウィンドウの連動が解除されてしまうのでコメントアウト
SendSizeEvent(); // 非表示部が即時更新されないので追加


532 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 16:52:55 ]
VS2005の変数ウォッチのようなことがしたいのですが、そのためのコントロールを探しています。
変数ウォッチとは、プログラムのデバッグ時にint型やクラス型で定義された変数の
名前や中身や型を表示するものです。

変数の名前や型だけを表示するならばwxListCtrlでもwxDataViewCtrlでも何を使ってもいいのですが、
メンバをもつ変数を表示させることを考えると、
どうしてもオブジェクトをツリー形式で表示させたくなります。
また、デバッグ中にウォッチする変数を新たに追加したくなった場合にも
簡単に追加できるものがいいのです。

つまるところ、
 ・できれば名前や型などの欄が作れる
 ・ツリー形式で表示できる
 ・新規のアイテムが簡単に追加できる
これらのことができるコントロールを探しています。
個別の条件を満たすものは見つかるのですが、そのすべてを満たすものが見つからず苦心しています。
(ちなみに、VS2005ではwxDataViewCtrl(wxGrid)のアイテム中にwxTreeCtrlのようなものを表示しています)

条件に合うコントロールがあれば教えていただきたいのです。
よろしくお願いします。

533 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 18:55:29 ]
使ったことないですが、下記サイトのwxTreeListCtrlがそれっぽいような…。
homepage2.nifty.com/bkclass/doc_wxcode.html

534 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 01:40:55 ]
>>533
wxCoreというのは初めて知りました。
サンプルも動かしてみたのですが、これは素晴らしいですね。
どうもありがとうございました。

535 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 20:16:12 ]
スクロールバー領域を除いた
ウィンドウのクライアント領域のサイズを得ることはできますか?

536 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 20:20:35 ]
ウィンドウのクライアント領域−スクロールバー領域=スクロールバー領域を除いた
ウィンドウのクライアント領域のサイズ

537 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 21:21:45 ]
>>536
すいません。説明が足りませんでした。

クライアント領域からスクロールバーの領域を除くためには
1,スクロールバーが表示されているかを検出する
2,表示されていたら、そのスクロールバーのサイズ分だけクライアント領域から除く
という主順を踏む必要があります。ところが自分にはこの二つともやり方が分かりません。

例えば、スクロールーバーはコントロールの内容によって表示されたり消えたりしますよね。
HasScrollbarメソッドはどうもスクロールバーの非表示を検出してくれないようで、
ウィンドウスタイルによって値が決まってしまいます。
つまり、スクロールバーが表示されているかを正しく知る方法が自分には分かりません。

また、普通のウィンドウクラスにはスクロールバーのサイズを得るメソッドが無い
(多分どこかにはあると思うのですが自分は知らない)
のでスクロールバーのサイズを得ることもできません。

538 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 22:22:35 ]
wxScrolledWindow::GetViewStart

void GetViewStart(int* x, int* y) const
Get the position at which the visible portion of the window starts.

Parameters
x Receives the first visible x position in scroll units.
y Receives the first visible y position in scroll units.

Remarks
If either of the scrollbars is not at the home position,
x and/or y will be greater than zero.
Combined with wxWindow::GetClientSize,
the application can use this function to efficiently redraw only the visible portion of the window.
The positions are in logical scroll units,
not pixels, so to convert to pixels you will have to multiply by the number of pixels per scroll increment.

539 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 22:57:22 ]
>>538
またまたすいません。

対象としているコントロールにはwxTextCtrlやwxTreeCtrlなどの
wxScrolledWindowを継承しないものも含まれています。

540 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 23:22:23 ]
おいおいいいかげんにしろよ
さすがにエスパーはいないぜ
自分で英語のリファレンス読めよ糞



541 名前:デフォルトの名無しさん [2007/12/17(月) 17:40:00 ]
例えば、ボタンをディセイブルにする、とかを調べたくて、
コントロールのリファレンスを読みたいのですが、教えて頂けないでしょうか?



542 名前:541 [2007/12/17(月) 17:57:54 ]
ヘルプにAlphabetical class referenceってのがありますた。
これがコントロールリファレンスですか。

>Members
ってのがメソッドで、

>Derived from
というのが派生元クラスでしょうか?


イベントも理解できれば完璧ですが、wx-Devがイベントハンドラ作ってくれるから、理解しなくても良いかなぁ?

543 名前:541 mailto:sage [2007/12/17(月) 18:33:28 ]
wxDevってコード補間ありますたorz

でも、WxButton::Enable(bool)が候補に出ないなぁ。コンパイルはトオタケド

544 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 18:42:19 ]
wxWindow::Enable
virtual bool Enable(bool enable = true)

545 名前:デフォルトの名無しさん [2007/12/28(金) 10:15:54 ]
wxFrameって、OnCreateみたいなイベントハンドラはありませんか?



546 名前:545 mailto:sage [2007/12/28(金) 10:18:15 ]
あ、OnInitDialogは、Frameオブジェクトの生成された後、1回コールされると考えてあってますか?

547 名前:545 mailto:sage [2007/12/28(金) 11:18:39 ]
wxFrame::OnInitDialogがコールされないんですが、、、
仕様ですか?

548 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 12:34:30 ]
>>545
EVT_WINDOW_CREATE

549 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 18:48:32 ]
Linuxでwxのアプリ閉じる時必ずsegfaultするのは俺だけでしょうか。
wxのサンプルについてくるのでも必ず
(a.out:32364): GLib-GObject-WARNING **: gsignal.c:1741: instance `0x908820' has no handler with id `673'

(a.out:32364): GLib-GObject-WARNING **: gsignal.c:1741: instance `0x8b4d30' has no handler with id `531'

(a.out:32364): GLib-GObject-WARNING **: gsignal.c:1741: instance `0x8cfa90' has no handler with id `604'

(a.out:32364): GLib-GObject-WARNING **: gsignal.c:1741: instance `0x8b4850' has no handler with id `465'

(a.out:32364): GLib-GObject-WARNING **: gsignal.c:1741: instance `0x5f4df0' has no handler with id `326'

(a.out:32364): GLib-GObject-WARNING **: gsignal.c:1741: instance `0x5f4840' has no handler with id `48'
zsh: segmentation fault ./a.out
みたいな感じで落ちます。
Glib-GObject-WARNINGの部分はInput Methodがuimだかららしいのですが。

550 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 02:47:58 ]
ライブラリorファイルが足りてないに一票




551 名前:549 mailto:sage [2008/01/07(月) 03:37:44 ]
>>550
ありがとうございます。

環境を書き忘れてました、すいません。
当方64bitのGentooでしたのですが、試しに32bitのDebianで試してみたところ
segfaultで落ちることは無いようです。Glib-Object-WARNINGはuimを切ると出なくなりました。
wxGTKのバージョンは2.8.7.1です。
もしかしたら私の環境だけなのかと思い書かせて頂いた次第です。

552 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 04:20:21 ]
/lib64 だったりとか

553 名前:549 mailto:sage [2008/01/08(火) 00:14:53 ]
wxGTKのバージョンを2.8.7.1-r1にしたら落ちなくなりました。
どうやらwxGTKのバグのようでした。どうもありがとうございました。

554 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 00:53:45 ]
wxPythonでwxGridのwxGridCellChoiceEditor
でセルにプルダウンなメニューを出しているのですが、動作がおかしいのです。
Windowsでは期待道理に動くのですが、Linuxだと候補から選択してもセルに
値が入りません。

ttp://d.hatena.ne.jp/Megumi221/20071123
の方も同様にいわれているのですが、どなたか解決された方いらっしゃらない
でしょうか?
Linuxのgtkとかのライブラリ依存なのでしょうか・・・

555 名前:554 mailto:sage [2008/01/10(木) 23:50:38 ]
gtk2を2.10.4にしたら出なりました。お騒がせしました。

556 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 03:40:29 ]
そんなもんじょのいこ
ってそれはえなりだよ

557 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 19:53:06 ]
とにかくGTKがダメダメだということだけは分かったw


558 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 23:45:50 ]
このスレで前に似たような質問があったのですが・・
どうしても解決しないので質問させてください。

環境はWindow XP Home MinGW です。
Eclipse CDT からMinGW を使って普通のcppファイルのコンパイル自体はできる状況です。

自分もここ
0xcc.net/pub/uu-2004-08/
を見て色々設定したのですが、wxGladeを使って生成したhello.cppをコンパイルしようとするとエラーが出ます。
このページではwxWigdetsのバージョンは2.5.2が扱われていますが、なぜか自分の環境で2.5.2をインストールしようとすると./configure --disable-shared --disable-threads →make の時点でエラーが出るので
ver2.8.7を./configure --disable-shared --disable-threads →make して、make install もしました。
この状態でwxGladeで生成したhello.cppを上記ページで書かれているように
g++ -c hello.cpp `wx-config --cppflags`
すると、
g++: 'wx-config: No such file or directory
cc1plus.exe: error: unrecognize command line option "-fcppflags'"
というエラーが出てしまいます。
`wx-config --cxx` -o hoge.exe hoge.cpp `wx-config --cflags --libs`
とすると、
''wx-config' は内部コマンド外部コマンド、
操作可能なプログラムまたはバッチファイルとして認識されていません。
というエラーになります。。

どうすればよいのでしょうか??どなたかご教示頂けると幸いです。

559 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 03:02:40 ]
あなたそりゃUNIXのシェルを前提としてる操作をWindowsのコマンドプロンプトで
やってもダメでしょうよ。

560 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 11:12:14 ]
wx-configはコンパイルオプションを吐くシェルスクリプト
MSYSを導入して、rxvt上で実行しろ



561 名前:デフォルトの名無しさん [2008/01/21(月) 11:16:12 ]
回答ありがとうございます。
0xcc.net/pub/uu-2004-08/
ここの、Windowsにインストールする場合の説明のところを見てやったのですが・・
あと558の
wx-config --cxx` -o hoge.exe hoge.cpp `wx-config --cflags --libs`
wx-config --cxx` -o hello.exe hello.cpp `wx-config --cflags --libs`
の間違いでした。

562 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 11:33:27 ]
>560 さん
回答ありがとうございます。MSYSは入ってます。
MSYSを導入して、rxvt上で実行 というのは、C:\MSYS\1.0\bin\rxvt.exe を立ち上げて
そこからg++ 〜 でコンパイルしろってことでいいんでしょうか。
家帰ったら試してみます。ありがとうございます。


563 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 12:20:12 ]
コンパイル云々の前に、そのまま素で
$ wx-config --cflags
とでも打ってみるんだな
どんな効果がでるか一発で分かる

564 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 13:05:17 ]
''wx-config' は内部コマンド外部コマンド、
操作可能なプログラムまたはバッチファイルとして認識されていません。
というエラーになります。。

565 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 13:17:20 ]
いや、だから、wxWidgets はユニックス系なので、
windows のコマンドラインじゃなくて
ユニックス系の shell でやらなきゃ ...

566 名前:558 mailto:sage [2008/01/21(月) 14:00:43 ]
>565さん
564は自分じゃないですよ。
多分あまりにも基本的な部分で間違ってるので他の方に茶化されたのだと・・

でも
> wxWidgets はユニックス系なので、
> windows のコマンドラインじゃなくて
> ユニックス系の shell でやらなきゃ ...
ここらへんわかってなかったのでご指摘いただけてラッキーでした。
ありがとうございます。

シェルの勉強等まだ手をつけておらずほぼ全く分からないもので・・
初心者質問ばかりしてすいません >564さん

>563さん
ありがとうございます。帰ったら試してみます。

567 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 00:24:02 ]
初心者なら、まずLinuxなりFreeBSDなりでやった方がいいよ。
Windowsでやるよりはるかに簡単だから。ネットの情報もほとんどUNIX系だし。

一旦それでやってればWindowsでもすぐできるようになると思う。
UNIX系の情報を見ながらWindowsで一発でやるには両方の知識が必要。

568 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 02:55:34 ]
実行ファイルににxrcを組み込むか、それと同等の事って出来ないでしょうか?
xrcの存在意義を無視してるのは分かるのですが、
ソースは簡潔&実行時にはファイル一つ、にどうしてもしたくて..

569 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 05:10:43 ]
ファイルひとつにこだわるならアーカイブ白と

570 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 05:32:32 ]
>>568
xrcのデータを実行ファイルに持たせることなら普通に出来る。ドキュメント読め。



571 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 17:11:00 ]
558です。
ご指摘されたとおりrxvt上からg++ 〜でやってみたのですが
wx/wx.h No such file or directory
などその他たくさんエラーが出てしまいました。

wx-config --cxx` -o hello.exe hello.cpp `wx-config --cflags --libs`
では wx-config-cxx commnad not found と言われてしまいました。

>567さん
Linuxでやる方が簡単なんですか。。
一度VMwareにUbuntu入れてやろうと思ったのですが重くてやめてしまってました。
Linuxの方が簡単なのであればそっちでやってみることにします。
ありがとうございました。

572 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 17:22:09 ]
簡単にGUIアプリが作りたいだけなら、wxPython でやってみるって手もある。

573 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 18:38:29 ]
>>568に便乗質問なのですが、
xrcでフォームの位置やサイズをアプリケーション終了時に保存することはできますか?

574 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 23:05:56 ]
>>570
出来ました。ありがとうございます

575 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 00:04:51 ]
>>571
もうちっとコマンドラインとか、パスとか、そういうことを勉強したほうがいいと思うな ...

576 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 01:05:42 ]
>>572
そういえばマイナー同士の組み合わせの割には、wxPythonの日本語情報って
ググると意外に出てくるね。

577 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 02:08:03 ]
最近のが多いから
はじめたばかりの君は恵まれている
昔は見つからなかった

578 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 02:15:24 ]
なるほど。ということは、ちょっと前に「情報が少なかったのに頑張った」
猛者たちがあらわれたってことか。感謝感謝。

579 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 05:26:51 ]
っつーかwxHogehogeの中で一番楽なのがwxPythonな気がする

580 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 08:53:58 ]
今pythonがアツいってのもあるね
wxに限らずPyGTKやらPyQtやらで作られたアプリが増殖中



581 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 09:11:20 ]
wxPythonについて概ねまとまってて勉強になったサイト
自信たっぷりの間違いがいくつかあるので注意
ttp://www.harukaze.net/~haruka/wxpython/


582 名前:デフォルトの名無しさん [2008/01/29(火) 18:06:45 ]
アプリケーションのトップのエラーハンドラって書けますか?

C++ Builder/VCL だと、
>void __fastcall TForm1::ApplicationEvents1Exception(TObject *Sender, Exception *E)
みたいな感じで書くんですが。


583 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 19:13:42 ]
C++標準の例外じゃダメなの?

584 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 19:22:52 ]
いや、それで良いのです。throw するのはC++の例外。
アプリの一箇所、一括でcatchしたいだけですが、どう書けば良いでしょう?

585 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:17:40 ]
int main()
{
try {
// main routine
}
catch(...) {
// error handling
}
}

586 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:40:34 ]
wxApp使った場合って、mainが隠蔽されてるんだっけ?
とするとwxApp::OnFatalExceptionとかがそうなのかなぁ。
ttp://wxwindowsjp.sourceforge.jp/docs/html/wx/wx30.htm#wxapponfatalexception

587 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 01:38:35 ]
Ver2.8.6使ってるけど、
wxApp::OnUnhandledExceptionのドキュメント見ると、
OnRunをオーバーライドしてそこでキャッチしろって書いてるよ。

int MyApp::OnRun()
{
 try{
  return wxApp::OnRun();
 }
 catch(std::exception &e){
  ...
 }
}

588 名前:582 mailto:sage [2008/01/30(水) 08:41:31 ]
>>585 >>586 >>587 etc.
回答サンクス。

やっぱ質問してヨカタ。

589 名前:582 [2008/01/30(水) 10:36:01 ]
ヘルプの内容(>>587)確認しました。

OnRunオーバーライドして、エラーはcatchはされるんですが、catchの前にエラーが出てしまうのは何ででしょう。

590 名前:582 [2008/01/30(水) 10:39:12 ]
OnExceptionInMainLoop()をオーバーライドして、return trueしたところ、無問題になりました。
有難うございました。



591 名前:582 mailto:sage [2008/01/30(水) 10:44:40 ]
あれ?例外が補足されなくなちゃったorz

592 名前:587 mailto:sage [2008/01/30(水) 11:20:47 ]
bool MyApp::OnOnExceptionInMainLoop() { throw; }
でMyApp::OnRun()のcatchに直通できた。
wxのエラーダイアログの中止ボタン押したときの処理もこうだから、
たぶんこれで問題ないと思う。

593 名前:582 mailto:sage [2008/01/30(水) 11:28:06 ]
>>592
あ、本当ですね。上手くいきました。

594 名前:582 mailto:sage [2008/01/30(水) 11:51:30 ]
Winでは上手くいったのですが、
wxMac-2.8.7では、MyApp::OnOnExceptionInMainLoop()がコールされずに、
>シグナル 6(SIGABRT)により終了しました。
で終わってしまうのは何ででしょう?

throw を丸々囲んだら、ちゃんとcatchされますので、C++例外オフの問題じゃないみたいです。
念の為configureを調べても、
>checking for --enable-no_rtti... no
>checking for --enable-no_exceptions... no
です。


595 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 12:07:13 ]
サンプルみつけました:

wxWidgets/samples/except
cvs.wxwidgets.org/viewcvs.cgi/wxWidgets/samples/except/
cvs.wxwidgets.org/viewcvs.cgi/wxWidgets/samples/except/except.cpp?rev=1.13&content-type=text/vnd.viewcvs-markup

596 名前:582 mailto:sage [2008/01/30(水) 13:25:38 ]
あれー、
>wxMac-2.8.7\samples\except
で、
コンソールからmakeしましたが、
アプリでThrowメニュー(int/string/object)を実行すると、アプリがエラーで吹っ飛びます。

どうも、wxMacのバグですね。
当面は、実行メニューをそれぞれtry-catchで囲んでおきます。
開発中にcatch内容が変わったりすると、メンドイですね。

597 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 15:29:47 ]
www.wxwidgets.org/docs/technote/patches.htm

598 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 16:16:31 ]
すいません質問させて頂きたいのですが、
0xcc.net/pub/uu-2004-08/
このページ見てwxGladeでc++のコードを生成しようと思って、プレビューまでは普通に出来たのですが、Generate Codeボタンを押すと

An exception occurred while generating the code for the application.
This is the error message associated with it:
'ascii' codec can't encode characters in position 28-33: ordinal not in range(128)

こんなエラーが出てコードが生成できません。どうすればいいでしょうか?

環境は
Ubuntu7.1.0
libwxbase 2.8.4.0
libwxgtk 2.8.4.0
python-wxglade 0.5
python-wxgtk 2.8.4.0
python-wxtools 2.8.4.0
python-wxversion2.8.4.0
です。

どなたかアドバイス頂けると幸いです。。


599 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 17:14:43 ]
対症療法だが日本語使うのをやめろ

600 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 22:16:10 ]
てかエラーメッセージ読めよ…



601 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:01:50 ]
レスありがとうございます。

エラーメッセージ読んでますが読んで意味が分からなかったので質問させて頂きました。
エラーメッセージで検索したりもしてみたんですが関係ありそうなのが出てこなかったので・・

日本語ですか。特に使ってないと思うのですが・・


602 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:02:14 ]
レスありがとうございます。

エラーメッセージ読んでますが読んで意味が分からなかったので質問させて頂きました。
エラーメッセージで検索したりもしてみたんですが関係ありそうなのが出てこなかったので・・

日本語ですか。特に使ってないと思うのですが・・


603 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:17:53 ]
英語が読めないならば、エラーメッセージを英日翻訳ソフトに入れると良いかもよ。
ascii文字以外が入っているかもう一度確認して見てください。
ascii文字の意味はわかりますか?


604 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:44:01 ]
親切にありがとうございます。
いえ、英語は分かるのでエラーメッセージの翻訳はできるんですが、それでも意味が分からないということなんです。
ASCII文字は分かります。
「ascii文字以外が入っているか」っていうのは、どこを確認すればいいのでしょう??

605 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:56:32 ]
インターフェースに日本語つかってるということなんじゃないの?
アルファベットだけつかったつもりでも、
まちがって全角スペースが入るということもあります

606 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:03:41 ]
>>602
直接的な答えじゃなくて申し訳ないけど、俺がやるなら:

・エラーメッセージを出力している部分の wxGlade のソースコードを読む
・エラーが出なくなるまでウィジェットを減らしてみる

607 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:11:46 ]
ソースファイルを1バイトずつ読み込んで値が全部0以上127以下になってるか調べればいいと思うよ

608 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 01:42:06 ]
解決しました。
単純にコードを吐き出すパスに「デスクトップ」が入っていただけでした・・汗
回答くださった方々ありがとうございましたm(_ _)m

609 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 03:11:59 ]
これはずっこけざるを得ない. まぁありがちだとは思うが.
ubuntu-jpも余計なことしてくれるよな. 'デスクトップ'は英語名に直しとき.

610 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 04:05:20 ]
デスクトップで作業してんじゃねーよ、カス




611 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 09:53:13 ]
まあ、トラブルの原因のほとんどは「単純」なミスだよね

612 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 17:49:53 ]
fedora8のwxwidgets(2.8.4)で
wxDirPickerCtrlで起動後初回の選択のみ反応しないのですが,
(GetPathに反映されず,ハンドラも呼ばれない)
同じような症状の方いませんでしょうか?
使い方でミスをしてるのか,バグなのか分からなくて困ってます.

613 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 02:36:57 ]
今ようやくHello,worldが作れたんだけれど、66KBだった。
4MBぐらいになるってどこかに書いてあったのだけれど。


614 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 03:13:40 ]
静的リンクだとMBになるよ

615 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 03:22:02 ]
てことは、静的リンクになってなかったってことですよね。
特別なにもしてないと静的リンクにならないんでしょうか。

ところで、Linuxだと

g++ -c hello.cpp `wx-config --cppflags`
g++ -o hello hello.o `wx-config --libs`

で普通にコンパイルできたんですが、
Windows Home でやろうとすると

g++ -c hello.cpp `wx-config --cppflags`

wx-config -cppflags: No such file or directory
と言われる、けど、hello.oは生成される。

そして
g++ -o hello hello.o `wx-config --libs`
でも同じように
wx-config --libs: No such file or directory
と言われるけど、今度は何も生成してくれない。

のはなんででしょう。。

616 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 03:26:45 ]
>>615
>特別なにもしてないと静的リンクにならないんでしょうか。

つ ldd

617 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 03:52:29 ]
>>615
>>558-563

618 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 04:42:37 ]
スレ違い
C初心者スレ池


619 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 04:58:13 ]
>>615
>今度は何も生成してくれない。
>のはなんででしょう。。

太陽が眩しかったから

620 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 09:23:53 ]
Linux が素人にも使いやすくなって、Windows のコマンドラインと
Unix のシェルの違いもわからないひとが GUI プログラムを
コンパイルできるようになったというのは良いことなのやら悪いことなのやら ...



621 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 10:04:57 ]
ただの馬鹿なのが問題なんだ。
たとえ素人でも疑問を追及する意思があれば間抜けな質問を垂れ流したりはしない。


622 名前:デフォルトの名無しさん [2008/02/03(日) 17:02:57 ]
>>612について情報をお持ちの方は居ませんでしょうか…

623 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 00:36:25 ]
みんなemacs(Meadow)上でwxWidget使ったコード書くとき、modeどうしてる・・・?
通常のc++-mode設定だとインデント壊れて気持ち悪いよね?
(sample/minimal/minimal.cppに対してindent-regionすると120行目のMyApp::OnInit()が1インデント下がる)

ttp://www.wxwidgets.org/develop/standard.htm#indentation とかの設定もみたけど、
wxWidgetのマクロによるインデントずれの問題は解決してないように見えるんだが・・・


624 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 02:46:40 ]
すいません、お聞きしたいのですが、
ボタンが押されたらアプリを終了するようにしようと思い、

class MyFrame: public wxFrame {

protected:
wxButton* button_1;
}; // wxGlade: end class

BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_BUTTON(button_1, MyFrame::OnExit)
END_EVENT_TABLE()

void MyFrame::OnExit(wxCommandEvent& WXUNUSED(event))
{
Close(TRUE);
}

みたいに書いてみたのですが、(はしょりまくってます)
コンパイルしようとすると
hello2.h:31: error: invalid use of non-static data member ‘MyFrame::button_1’
hello2.cpp:13: error: from this location
のようなエラーが出ます。

どこがおかしいでしょうか??
初心者質問ですいません。

625 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 08:14:57 ]
普段Windows使ってるのでよく分かんないんですが、EVT_BUTTONの後に
指定するのは変数名ではなくて、多分wxButtonをnewする際に指定する
コマンドID(wxID_EXITとか)かも…。
EVT_BUTTON(wxID_OK, MyFrame::OnExit)

MyFrame::MyFrame(...)
  button_1 = new wxButton(this, wxID_EXIT, wxT(“OK”),
wxPoint(200, 200));
  :

626 名前:625 mailto:sage [2008/02/10(日) 08:16:38 ]
orz…
EVT_BUTTON(wxID_OK, MyFrame::OnExit)

EVT_BUTTON(wxID_EXIT, MyFrame::OnExit)

627 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 13:07:31 ]
>>623
おれはDECLARE_EVENT_TABLE()とかの後ろにセミコロンを置いてる。

628 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 09:52:51 ]
wxWigetsのiniファイル読み書き専用関数とかあるんでしょうか?


629 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 13:20:18 ]
>>628
wxwindowsjp.sourceforge.jp/html/2.8.4/wx_wxfileconfig.html

630 名前:628 mailto:sage [2008/02/12(火) 13:24:31 ]
サンクス。やっぱこういうのが標準であると便利ですよね。



631 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 18:16:41 ]
wxWigetsのStringListはありますか?

632 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 19:43:35 ]
>>631
つ wxArrayString

633 名前:631 mailto:sage [2008/02/13(水) 09:46:38 ]
有難うございます。

wxArrayString.Text (Itemを改行コードを挟みながら連結)みたいなメソッドは無いんですね。
自作するしか無いか。


関係ないけど、やっぱ改行コードってC++のendlを使いますよね?
まさか、wxWidgetsで、CRとかLFをラップしてくれてたりしないですよね?

出来れば、wxWidgetsが改行コードのグローバル変数を持ってて、
初期処理でどのプラットフォームでもCRLFで初期化してやろうかと思ったのですが。

634 名前:631 mailto:sage [2008/02/13(水) 09:50:17 ]
>関係ないけど、やっぱ改行コードってC++のendlを使いますよね?

wxWidgetsのヘルプ読んでると、
>std:string互換関数の利用が強く推奨される!
>そして遅かれ早かれstd::stringを使い始めるであろうwxWidgetsの将来のバージョンとの互換性を保つ.
とあるから、
wxStringより、std::string推奨なんですね。

文字列についてはC++の標準を使えって意味は分かるけど、std::stringって機能が弱いおね。

635 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 10:57:42 ]
>>634
>std::stringって機能が弱いおね。
たとえばどんな?

636 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 11:00:08 ]
std::stringだと、

string str1;
str1 = "a" + (string)"b";
みたいに書けないことない?(自分の勉強不足かも)

それとか、UpperCaseが無いわけじゃないけど、書きにくかったりとか。

637 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 11:11:28 ]
string std::operator+(const char *lh, const string &rh);
は標準で入ってたと思う。

638 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 11:18:50 ]
あ、+ 演算子は実装されてますか。

gccでエラーだったんですが。(勘違いかも)

639 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 11:47:01 ]
MinGW gcc3.4.5では大丈夫だね。

640 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 16:26:50 ]
STLって、MemoryStreamみたいな可変バイト列ってありましたっけ?

vector char とかするのかなぁ?

(ちょっとスレチ)



641 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 16:41:34 ]
stringstream

642 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 16:48:22 ]
>>641

どうも。それ使います。insertメソッドとかもありますね。
NULLで切れないと信じて。

643 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 18:30:57 ]
>string str1;
>str1 = "a" + "b";
は書けます。

>str1 += "a" + "b";
は書けないんですね。

ちょっと不便。

644 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 19:04:47 ]
全然

645 名前:デフォルトの名無しさん [2008/02/13(水) 20:10:56 ]
べつに

646 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 20:38:05 ]
str += "a";
str += "b";
は出来るだろ。
ていうかC++スレでやるべきだと思うんだ・・・。

647 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 21:58:27 ]
ま、C++だしな。
そのへん楽したかったら、
wxPython
wxErlang
wxHaskell
wxLua
wxPerl
wxRuby
wxSqueak
wx4j
wxJavaScript
あたり使ったらいんじゃね?

648 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 22:16:15 ]
C/C++は
"a" "b"
って書いたら
"ab"
って書いたのと同じだけどな。
リテラルだけだが。

649 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 10:58:06 ]
> wx4j

へえー、4j ってプログラミング言語があったのか・・と思った
ググって見ると、・・このスレのテンプレにすでに書いてあった・・

650 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 17:55:06 ]
1、プロセスを跨いだ書き込みができるコンソールクラスはありますか?
 (wxで無くともポータブルなら何でもかまいません)

2、↑を押すと以前選択された文字列が出てきたり、
  選択可能な文字列群を設定すればtabキーで勝手に補完してくれる
  なんちゃってシェルのようなクラスはありませんか?

よろしくお願いします。



651 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 20:59:46 ]
2番目はreadlineじゃ駄目なのか?

652 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 00:34:08 ]
>>651
readlineってこういう事に使うライブラリなのですか。
初めて知りました^^

これで全然問題ないです。
どうもありがとうございました。

653 名前:624 [2008/02/16(土) 00:48:57 ]
>>625 さん
返信めちゃくちゃ遅れてすいません。
ご指摘された通り直したら意図した通りに動きました。
ありがとうございましたm(_ _)m

654 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 01:22:37 ]
>>652
readline はガチガチの GPL なので、代わりにより自由な libedit をお勧めする

sourceforge.net/projects/libedit/

655 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 09:51:47 ]
>>654
自分も探しましたよ。ストールマンの呪縛から逃れるために^^

そこのlibeditの最終リリースが2001年8月だったので
何じゃコリャと思ってしまったのですが、
Googleで探してみるとちゃんと新しいのもあるみたいですね。
ただ、マルチバイトが使えない&直すのは難しくないが「需要がない」
という内容のMLを見たときは少しびっくりしました。

656 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 12:28:10 ]
たしかにコンソールで日本語打ちたいと思うケースはあまりない


657 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 13:05:57 ]
> cd C:¥デスクトップ¥夏休みの宿題¥プロジェクト1¥宇宙シミュレータ
> bigbang.exe 初期値1.xls > 結果1.xls

658 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 13:46:08 ]
後々ターミナルからアクセスすることを考えると日本語ファイル名は打つのめんどくさいから付けない

659 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 13:48:26 ]
ubuntuの「デスクトップ」をどうにかしてください

660 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 13:58:16 ]
>>658
自分で作らなくても、仕事だと嫌ほど受け取る。




661 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 14:52:22 ]
>>655
あとは Tecla というのもあるよ
マルチバイトが使えるかは知らないけど…

www.astro.caltech.edu/~mcs/tecla/

662 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 23:17:58 ]
>>659
ディレクトリ名書き換えれたけど

663 名前:デフォルトの名無しさん [2008/02/17(日) 02:32:40 ]
2.8.7リリースされてるけど最近は流行ってないの?

てかスレ違い?

664 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 02:33:33 ]
ごめん微妙に誤爆

665 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 04:03:32 ]
というか、流行ってた頃ってあったの?

666 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 15:01:23 ]
気づかずにお世話になってる人はいると思うがね
vlcとか

667 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 21:57:27 ]
vlcねぇ〜
あれってなんであんなにバイナリのサイズが小さいの?
VCとかで作ってるとどんなに気を使ってもMBサイズの大きさになってしまう・・・


668 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 22:01:05 ]
libwxwidgets_plugin.dll
2.66 MB (2,793,984 bytes)

こういうカラクリ

669 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 23:55:57 ]
あー、もしかしてライブラリをビルドするときにDLLでビルドすればいいのか
納得しました

670 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 02:15:57 ]
実行ファイルさえ小さければDLLが多少でかくてもそんなに文句は出ないという
意外と盲点かもしれないね



671 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 23:25:28 ]
てかサイズ大きくてもいいからDLL1ファイルだけってできないん?

672 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 23:45:30 ]
MONOLITHICのSHAREDじゃ駄目なのか。
試したことないが。

673 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 18:56:33 ]
wxWidgets用のRADツールはWinでならどれ使うのが良いでしょうか?

674 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 20:28:21 ]
どれを、と言うほど選択肢あるのか?

wxGlade, wxFormBuilder, wxDesigner, wxSmith, VisualWx...

あ、結構あるなw

675 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 20:39:39 ]
wxWorksってのも違うの?

676 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 22:38:31 ]
比較サイト見っけた
wiki.codeblocks.org/index.php?title=Comparison_of_wxSmith_features

677 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 23:59:22 ]
いやいや、DLL分けた分起動遅くなるだけじゃん。
Linuxのように、ディス取り標準ビルドの共有ライブラリが一つあってそれが基準になるなら良いけど、
Windowsではオレオレビルドのdllがまかり通るからstaticリンクが無難。

678 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 01:17:48 ]
wxってsetup.hでビルドオプション変更できるみたいだけど、
Linuxで共有ライブラリのビルドオプションが気に入らなかったら、
staticリンクにしろってことでいいのかな?

679 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 11:10:38 ]
>>678
UN*X 系は RUNPATH や LD_LIBRARY_PATH で対処する方が多いんじゃないかな。
wx みたいな、でかいライブラリを static にする事は殆ど無いと思うよ。

680 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 01:10:25 ]
wxPythonの2.6なのですが、
gridの任意のセルに、Ctrl押し下げ+マウスの左クリックイベントを送りたいのですが
どのようにすればいいですか?
だれかとっかかりだけでも教えてください。お願いします。



681 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 03:00:16 ]
wxDev-C++いれてみたけど
かなり頑張ってるな。


682 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 20:04:15 ]
wxwidgetsってエラーが出てコンパイルできねーんだけどやる気あんのか中の人。

683 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 20:08:42 ]
>>682
おまえはやる気あんのか?

684 名前:デフォルトの名無しさん [2008/02/24(日) 10:02:28 ]
C言語でクロスプラットフォームなGUIプログラミングしようと思ったら
wxWigets or QT or GTK どれが良いですか?

wxWigets の環境をうまく作れなかったので、QT入れてみたのですが・・・。

685 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 10:26:47 ]
初体験するなら、恋人、ナンパ娘、風俗嬢の誰がいいですか?
恋人をうまく作れなかったので、風俗嬢に挿れてみたのですが・・・。

686 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 10:31:45 ]
>>684 が挙げた3つの中でC言語なのはGTK+だけ

687 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 11:55:18 ]
妹に一緒にお風呂に入ろうと誘われたんですがどうすればいいですか?

688 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 15:11:32 ]
>>685
初体験なのに3つも選択権をもっているような人は
このスレに来てはいけません

>>687
具体的に何を迷っているのか分からない。
なぜ考える必要があるの?

689 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 16:07:33 ]
妹=42歳(千代大海似)

690 名前:デフォルトの名無しさん [2008/02/24(日) 19:56:56 ]
wxを使ってMindmapエディタを自作したいと思ってるんですが、
複数のテキストボックス(サークル)間にリンクを張って
表示するのに便利なモジュールってありますか?
# うまく説明できなくてすみません。

snapshotを見ると、UML図を書けるようなアプリはあるようですが、、、



691 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 22:22:27 ]
そんな程度の考えでマインドマップ作ろうってのは無謀な気がするが
それはおいとくとして、
けっこうプラットフォームによってまちまちな部分があるので、
マルチプラットフォームを考えてるなら、ありもののパーツで
なんとかならない場合はwxはやめといた方がいいかも。
たとえばマインドマップとかペイントソフトとかだとキャレットの操作が必要になると
思うけど、Win版はちゃんとネイティブのキャレットを操作してるが
GTK版なんかは自前でキャレットらしき棒を描く場所を変更してるだけ。

692 名前:デフォルトの名無しさん [2008/02/25(月) 00:33:32 ]
wxGladeのTextCtrlのlayoutプロパティでoptionっていう項目がありますが、これってなんの値なんでしょうか??

693 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 01:06:09 ]
>>692
最近のはproportionと呼び名が変わったようだ。
>>523 の説明がわかりやすいと思う。

694 名前:デフォルトの名無しさん [2008/02/25(月) 09:50:19 ]
親ウィンドウと子ウィンドウを連動しようと思い。
親ウィンドウのMoveEventから
子ウィンドウのMoveを呼び出したのですが、
エラー落ちしてしまいます。

何か方法があるのでしょうか?

695 名前:692 [2008/02/26(火) 01:20:38 ]
>>693さん
なるほど。523見てなんとなく分かりました。
ありがとうございました。

696 名前:694 mailto:sage [2008/02/26(火) 08:35:58 ]
コンストラクタ内でMoveEventが呼ばれ(たぶんCenter関数)
その時にはまだ子ウィンドウが生成されてなかった。

しかも初期化が完了してない無効なポインタだったので
当然エラーということだった

コンストラクタで始めに関数が呼ばれる前に
事前初期化してないとエライことになる可能性があるという教訓でした。


697 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 16:20:52 ]
メニューのフォントを変更しようと思い、
wxMenuBarにフォント設定したけど反映されない・・・
なぜ・・・

698 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 09:25:53 ]
wxMenuBar

wxWindowsを継承しるのになんでそのフォント使わないで
インラインで別のフォント使うのか理解できん。



699 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 11:01:34 ]
早くwx-usersに要望を出す作業に戻るんだ

700 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 21:31:15 ]
メニューバーが自前で描画するモノなんかあったっけ?



701 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 00:38:09 ]
wxWidgetsってWindows Mobile環境でも動作するんでしょうか?
あと、その場合、バインディング言語(wxPython等)でも利用可能なんでしょうか?

702 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 09:36:44 ]
wxpyce.wikispaces.com/

703 名前:701 mailto:sage [2008/03/01(土) 09:55:26 ]
>>702
サンクスです。

704 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 01:02:32 ]
あるウィンドウのZオーダーを動かしたい(一番手前に表示したい)
のですがどうやればいいのでしょうか?
よろしくお願いします。

705 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 01:36:52 ]
>>704
Raise()

706 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 18:51:07 ]
2年以上開発版のままだったCode::Blocksが2/28に8.02をリリースしてた。
www.codeblocks.org/


707 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 18:52:50 ]
使えそう?

708 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 19:22:07 ]
>>705
できました。ありがとうございました

709 名前:706 mailto:sage [2008/03/03(月) 20:05:07 ]
>>707
Fedora8で昔使ってみたときのプロジェクト試してみたけど、
Buildしたときのerrorとwarningが入れかわってる気がする。一応動いたけど。
ちょっと前にチェックしてたけど、
2、3日に一回くらい開発版だしてて追いつけなかったからリリースをまってた。
いろんなOSで動くところが好きなので、そのうち本格的に使うかも。
macportsにもきてた。


710 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 01:37:13 ]
wxGladeで画面を作成しているのですが、
widgetを配置する画面(Frameをダブルクリックして出てくる画面)に、
配置してあるボタン等が収まりきらなくなりました。
しかしながら、Previewで見るときちんと全部収まっています。
Panelを削除するとこの現象は出ないのですが、どこか作り方が
おかしいのでしょうか?
どなたか教えてください。




711 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 01:50:20 ]
>>710
Previewの方が正しい。
wxGladeを立ち上げ直すと直ることもある。
けど,まあそんなもんだと思っている。

712 名前:710 mailto:sage [2008/03/04(火) 23:36:30 ]
>>711
レスありがとうございます。
そうですか。
Panelを捨ててしまうと、タブ移動が出来なくなるので困っていました。
wxGladeのバージョンアップに期待というところでしょうか?
sizerの入れ子の数とかでおかしくなるのかなー。

713 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 16:00:25 ]
wxRubyでXRCでGUI部分作って、メニューアイテムやら押したときにメッセージボックスを表示させたいんだがどうやればいいんだ?

ボタンを対象にfind_window_by_name('TEST')とかやって
evt_button(@update.get_id){
Wx::message_box("テストだよ", "test", Wx::OK | Wx::ICON_INFORMATION, self)
}
とかするとちゃんとメッセージボックスやらが出せるんだけど
find_window_by_name('MENUBAR')とかやってもnilが返ってきてしまうんだ…

714 名前:デフォルトの名無しさん [2008/03/15(土) 16:01:46 ]
下がってるのであげてみることにする

ちなみにwxRubyについてるサンプルソース読むと、XRCのサンプルでもコード上でメニューバーとか追加してた

715 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 20:02:14 ]
事故解決した
Wx::Frame#get_menu_bar
ちぅのがあるのね…

716 名前:デフォルトの名無しさん [2008/03/16(日) 09:00:11 ]
widestudioとどっちがいいですか??

717 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 17:25:52 ]
どっちがいいか言い切れるんならもう片方は消滅してるよ

718 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 02:22:43 ]
wx-gladeでseparate for each classというオプションにチェックを入れてコードを吐かせてみたのですが
wxAppクラスを継承したMyAppクラスの宣言部がmain.cppとして一個増えただけでした。

www.h3.dion.ne.jp/~k5_n/wxwin/memo/ver0_0.html
このページみたいにモジュールを分割していきたいのですが、wxTextCtrlを継承させる予定のwxTextCtrl2クラスのコードを別ファイルで吐かせたりするにはどうすればよいのでしょうか。


719 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 01:24:25 ]
長らく使ってないけど
wxTextCtrl2っていうCustom Widgetを作るんじゃなかったかな

720 名前:デフォルトの名無しさん [2008/03/18(火) 16:17:05 ]
EditDlg *dlg = new EditDlg(this);
dlg->ShowModal();
dlg->Destroy();

メニューの実行で、上記を実行していますが、
最後のDestroyでアプリが落ちてしまいます。
Destroyは不要ですか?

環境は、Mac OS X 10.4 /wxMac-2.8.7を使っています。



721 名前:720 mailto:sage [2008/03/18(火) 16:28:26 ]
もう少し状況が分かりました。

ダイアログのシステムボタンで閉じる → ×
Close()で閉じる → ×
Hide()で閉じる → ○

つまり、閉じ方によって、ウィンドウのDestroyが呼ばれるかどうかが決まるんですね?

詳しい方、情報もしくは、同意よろorz

722 名前:デフォルトの名無しさん [2008/03/19(水) 14:39:14 ]
wxWidgetsの環境変数で、
ファイルのパスのデリミタや、
実行ファイルのディレクトリを
取得できますか?

723 名前:デフォルトの名無しさん [2008/03/19(水) 16:01:40 ]
argv[0]を参照する方法はありますか?

724 名前:723 mailto:sage [2008/03/19(水) 16:07:02 ]
みつけますた ---> ttp://wxwindowsjp.sourceforge.jp/docs/html/wx/wx30.htm#wxappargv

725 名前:723 mailto:sage [2008/03/19(水) 16:29:58 ]
で、wxAPPのインスタンスってダイアログ側からどうやって取るんでしょう?


726 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 16:33:30 ]
::wxGetApp

727 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 16:44:51 ]
thx!>>726
orz

728 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 13:36:28 ]
>>722
デリミタは、wxFileName::GetPathSeparator()

実行ファイルディレクトリは、
wxFileName exepath(wxStandardPaths::Get().GetExecutablePath());
wxString exedir = exepath.GetPath();
でexedirに入る。


729 名前:718 mailto:sage [2008/03/20(木) 19:48:39 ]
>>719さん
レスありがとうございます。試してみます!
お礼遅れてすいません。


730 名前:729 mailto:sage [2008/03/20(木) 19:58:09 ]
と・・調べてみたのですが、custom widgetsってwx-gladeのパレットに新しい項目追加するような感じで自分でカスタムしなければいけないのですね。
これだとクラス継承する毎にパレットに追加しなくてはならなくなりますよね。。(当然ですが)

クラス継承して使いたい場合、みなさんどうやってコードを書いているのでしょうか??
自分で継承して作ったクラスを全部wx-Gladeで描画できるようにするのはけっこう面倒くさそうですし・・
あんまりファイル分割しない方がいいんでしょうか。
それとも、wx-gladeはあんまり使わない、とか・・




731 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 20:29:23 ]
wx-gladeはあんまり使わない

732 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 20:50:35 ]
wxFormBuilderがおすすめ
適当なコントロールから継承したカスタムコントロールやウィンドウなら、
継承元の見た目で作って、クラスを指定してヘッダファイル名まで指定できる。

733 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 22:55:02 ]
>>728
有難うございます。まだ調査している最中だったので助かりました。

>>732
そうなんですか。。。
知らなかったのでwxDev C++ を使ってますorz



734 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 15:19:46 ]
Windows環境だと、
>std::string str;
>wxString wstr = str;
と書けるんですが、
wxMacだと、
>wxString wstr = str.c_str();
と書かないとコンパイル通らないみたいです。

何でだろ。。。

735 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 16:09:27 ]
ユニコードを使ってるかどうかかな?

736 名前:734 mailto:sage [2008/03/21(金) 16:19:02 ]
あ、なるほど。>>735

wxMacは、環境設定でユニコードをオンにしてmakeしたようなかすかな記憶。
Windows版は、wx-debcppをインスコしただけだったような記憶。

この問題って難しい問題ですね。

737 名前:デフォルトの名無しさん [2008/03/21(金) 23:32:17 ]
すみません。初心者です。
wxDev-C++で作成したコードをLinuxでコンパイルできますか?
できるとしたら、makefileは自作ですか?
分かる方がいましたらよろしくお願いします。

738 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 23:59:59 ]
自作でもいいが、autotools(automake/autoconf)あたりがおすすめ

739 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 04:43:56 ]
wxが採用してるbakefileがいいんじゃないの。

740 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 10:55:32 ]
>>738 >>739
ありがとうございます。試してみます。
まず、configure自体を知らないとダメなんでしょうね。勉強します。



741 名前:730 mailto:sage [2008/03/23(日) 13:31:54 ]
情報ありがとうございます!
wxformbuilder、インストールしてみようと思ったのですが

Dependency is not satisfiable libwxbase2.8-0

とエラーが出てインストールできず・・

libwxbase2.8-0の再インストールとかしてみたのですがダメでした。
解決方法分かる方いらっしゃったら教えて頂けるとありがたいのですが・・

742 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 14:07:53 ]
wxのC言語バインディングってないのかのう?

743 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 15:26:47 ]
>737
wx-configを調べてみて
wxConfigクラスではなくてwx-configってコマンド

744 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 15:26:51 ]
>>741
とりあえず、ver3 RC8を落として、解凍すればインストールいらないのでは?
downloads.sourceforge.net/wxformbuilder/wxFormBuilder_v3.0.56-RC8-archive.exe?download
wxFormBuilder.exe起動したら動いたよ?ソースからビルドしようとしてる?

745 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 21:33:15 ]
>741
ちょいと使ってるOS回りの詳細を書いてくれ
なんとなくLinuxじゃないかと思うが、だとすっとdistroとバージョンは?

746 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 21:59:32 ]
wxDev-C++でデバッグしていて、ブレイクポントの2、3ステップ先で止まる
んですけど、こういうもん?Code::Blocksの方が使いやすいですかね?(Windowsです)

747 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 22:01:31 ]
>>741
>Dependency is not satisfiable libwxbase2.8-0
の時点でUn*x系だろうけど…
wxがちゃんと動いてるなら自前でビルドした方が良いんじゃないか?

748 名前:730 mailto:sage [2008/03/23(日) 22:34:56 ]
ご親切にありがとうございます!

OSはUbuntuで7.10です。wxWidgets自体は動いてます。

downloads.sourceforge.net/wxformbuilder/wxFormBuilder_v3.0.56-RC8-archive.exe?download
の方、試しに落として起動しようとしてみたのですが、エラーが出て起動できませんでした。

自分が落とそうとしていたのはこっちです。
sourceforge.net/project/downloading.php?group_id=135521&use_mirror=jaist&filename=wxformbuilder_3.0.56-0ubuntu1dapper1_i386.deb&93744357

こっちの方をダウンロードすると勝手にgdebi-gtkというので開かれ、パッケージインストーラというのが出るのですが、そこで

Dependency is not satisfiable libwxbase2.8-0

と言われます。

ubuntuforums.org/showthread.php?t=536984
とか
www.developpez.net/forums/showthread.php?t=369200 (イタリア語・・?)
とか見て色々試してみたのですが、解決しません・・

wxwidets の導入に手間取って、色んなパッケージのインストールとアンインストールを繰り返しまくってたのでなんか完全にインストールできてない状態になっているのかなと思ったのですが、libwxbase2.8-0をSynapticで完全削除後再インストールしても状況変わらず・・。

sudo apt-get install libwxbase2.8-0 でも 既に最新のパッケージです と言われてしまう状態です。


749 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 01:25:04 ]
>>748
ダウンロードしたら、パッケージのあるディレクトリ行って
%sudo dpkg -i wxformbuilder_3.0.56-0ubuntu1dapper1_i386.deb
みたいな感じじゃなかったか
…物凄い基本だった気がするが、Linuxやめちゃったからよく覚えてないや

つーかWindowsバイナリ走らせようとするなwwww

750 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 01:25:44 ]
Linuxじゃない、Debianだ



751 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 08:27:41 ]
debでインストールしようとするならubuntuスレで聞け

./configure & make & sudo make install
ならこのスレでもok...か?

752 名前:730 mailto:sage [2008/03/25(火) 00:08:06 ]
レスありがとうございます。
Linux初心者なもので・・ご親切にありがとうございます。

sudo dpkg -i wxformbuilder_3.0.56-0ubuntu1dapper1_i386.deb
これをやってみると、

wxformbuilder は以下に依存 (depends) します: libwxbase2.8-0 (>= 2.8.7.1) ...しかし:
システム上の libwxbase2.8-0 のバージョン は 2.8.4.0-0ubuntu3 です。

のようなエラーが出ました。どうもlibwxGtkとかlibwxbaseのバージョンが古かっただけみたいです汗
再インストールするのがめんどくさいのでwxformbuilderの方のバージョンを前のにしてインストールしてみたら今度は成功しました。
wxWidgetsのソース群はsynapticでインストールしたのですが、レポジトリが最新じゃないのですね・・

というわけで、解決しました。
微妙にスレ違いすいません&ありがとうございましたm(_ _)m


753 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 18:13:28 ]
wxWidgetsのUTF-8版はありますか?

754 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 18:22:01 ]
>>753ググレカス
www.wxwidgets.org/wiki/index.php/Development:_UTF-8_Support

755 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 02:19:49 ]
すみません。wxDev-C++でBreakPointに止まってくれないのですが、そういう症状出たことある人いますか?
バージョンは6.10です。VB感覚で作成できそうなので、残念です。
もしwxDev-C++が候補から外れると、
Code:Blocksを使ってみようかと重うのですが、そちらはちゃんとデバッグできますか?

756 名前:753 mailto:sage [2008/03/27(木) 08:58:47 ]
>>754
ありがとう。
UTF-8は目標ですか。

AnsiToUnicode/UnicodeToAnsiみたいな関数が欲しいですが、
wxWidgetsにあるんだろうか。。。

>>755
そういう症状でます。
自分の場合、ターゲットOSのデバッガでデバッグできました。
デザイン用のGUIエディタと割り切って、デバッグIDEは別のものにしてみたら?

757 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 10:08:28 ]
何でwxWidgetsだけで何でもかんでもやろうとするんだ・・・

758 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 11:24:28 ]
>>756ググレ(ry
・・・っていうかAPIリファレンスくらい目を通しておけ
wxwindowsjp.sourceforge.jp/html/2.8.4/wx_wxstring.html#wxstringwcstr

UTF-8の事だけど、試してないから正確なことはわからないが
未完成なだけで、一応使えるんだろ?
これから使うんだったら報告よろ



759 名前:756 mailto:sage [2008/03/27(木) 11:53:38 ]
>>758
さんくす。

実際にwxConvUTF8.使ってるサイトハッケソ
ttp://diary.imou.to/~AoiMoe/2004.09/middle.html
今すぐ動作させてみます。



関係ないけど、マニュアルのuft8_strを使うとコンパイルエラー、みたいな。

760 名前:756 mailto:sage [2008/03/27(木) 13:42:08 ]
>wxString SBuf;
>SBuf = "UTF-8文字列";
>wxMessageBox(SBuf, wxT("SBuf"), wxOK);
>SBuf = wxConvUTF8.cMB2WC(SBuf);
>wxMessageBox(SBuf, wxT("SBuf"), wxOK);

2番めメッセージで、空文字になってるようなorz




761 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 17:01:21 ]
Windows上で使っています。
wxWidgetsでIMEを制御する方法があったら教えてください。

TextCtrlにフォーカスが移ったらIMEがONになる、などの使い方がしたいです。

762 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 17:23:15 ]
>>760
気分転換にデバッガで追ってみた
原因はよくわからんが文字列に日本語が入ってるのがいかんらしい
"UTF-8String"で問題なかった

>>761
公式にはないようだから
自分で作るか適当に探してみ

あとwxTextCtrlはデフォで日本語入力ができるから
IMEが制御できてもあんまり意味ないとおも

763 名前:761 mailto:sage [2008/03/27(木) 17:36:16 ]
>>762
ありがとうございます。
数値を入れるTextCtrlではIMEが自動でOFFになる、と説明すればよかったです。
ググっても出てこないので、自作の道を考えてみます。

764 名前:760 mailto:sage [2008/03/27(木) 18:10:35 ]
>>762
調査ありがうとうございます。
言われるとおり日本語があるかないかで動作変わるみたいです。

ソースの日本語表記の問題ではないことを確かめるため、
コントロールから日本語入れてみました。

>wxString SBuf = WxEditPath->GetValue();
>SBuf = wxConvUTF8.cMB2WC(SBuf);

これで、Editに"aaa"と入れると、SBufは"aaa"で、sizeが3でした。
しかし、"あああ"と入れると、SBufは""でsizeは0。
日本語入れると動作しないUTF-8コンバートだなんて(><)


765 名前:760 mailto:sage [2008/03/27(木) 18:44:31 ]
>wxUSE_UNICODE
を定義してコンパイルすると、

>catch (std::logic_error &e) {
> wxMessageBox(wxT(e.what()), wxT("Error"), wxOK);
>}

といったwxMessageBoxがコンパイルエラー起こすんですが、何でですか?
ソースコードのファイルはSJISですが関係あるのかなぁ。


766 名前:760 mailto:sage [2008/03/27(木) 18:53:43 ]
あれ、wxDev-C++で、新規プロジェクトを作った直後wxUSE_UNICODEをつけてmakeすると、
コンパイルは通るけど、リンクエラーだ。
なんか難しいなorz

767 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 18:59:21 ]
>>766
wxDev-C++なんてよくわからないもの使わないでVC++を使ってください

768 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 22:22:51 ]
>>765
ソースがSJISならwxConvUTF8は使えないと思う

769 名前:755 mailto:sage [2008/03/27(木) 23:57:05 ]
>>756
ありがとうございます。デザインだけwxDev使えば良いんだね。
そういう使い方もあったか。

770 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 07:02:56 ]
>>764
根本的にわかってないなあ。overviewとかリファレンスとか読めよ。
なんでこう手探りでやろうとするかね。

c??2?? というのは MB, WC, WX があって、MBはマルチバイト文字列、
WCはwchar、WXはwxChar。
wxWidgets的にはwcharとwxCharは違う。陽にwcharを操作する状況でない限りはWXを使うべき。で、
wxConvUTF8.cMB2WC
はUTF-8表現されたマルチバイト文字列からwcharへの変換。
そこにWindowsでANSIビルド使ってるならSJISか? を渡せば変換に失敗して
何も出てこないのは当たり前の話。

>> 765
> >wxUSE_UNICODE
> を定義してコンパイルすると、

それはwxをビルドするときの設定で定義されるものだ。必要ならANSIビルドと
unicodeビルドと両方入れて、wx-configのオプションによって使い分けるんだよ。



771 名前:764 mailto:sage [2008/03/28(金) 09:28:54 ]
ありがとう。>>770

文字変換関数のみはunicodeビルドをするしかないですね。

>wx-configのオプションによって使い分けるんだよ。

難しいorz

772 名前:764 mailto:sage [2008/03/28(金) 09:32:44 ]
>wx-configのオプションによって使い分けるんだよ。

あ、wxConfigオブジェクトとwxAppオブジェクトの連携かと思って劇しく難しいのかと思ったら、
コンパイルのコマンドラインの話ですね?

なら、文字変換関数のみ別プロジェクトでwxUSE_UNICODEを定義してコンパイルしてオブジェクトモジュールを作っとくだけですよね。

その後、>>766 のリンクエラーを対処すれば終わり?

773 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 15:58:39 ]
そんなうまくいくかどうかわからんような小細工は
ここで質問してるような奴がやることじゃないと思うがなあ。

774 名前:764 mailto:sage [2008/03/28(金) 16:12:19 ]
その通りかもしれない。

wxWigetsの文字変換はやめときます。

ドズで動作するのは、ICUだけですか?
iconvは動作しませんよね。

775 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 17:27:03 ]
iconvはない。でもWindowsならOS自体に変換APIがあったと思うけど。詳細は忘れた。

776 名前:デフォルトの名無しさん [2008/03/28(金) 19:56:57 ]
windowsならmlang.dllが使える。
iconvのI/Fがいいなら

ttp://gtklab.sourceforge.jp/iconvmlang/index.html
なんかどう?


777 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 20:28:23 ]
もしかして、新Mac板にいたwx君なのか?

778 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 12:27:39 ]
ListCtrlを使っているのですが、MFCでいうオーナードローとかカスタムドローって
できないのでしょうか?
描画時のイベントやメソッドが見つからないのですが・・・


779 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 19:32:18 ]
wxFormBuilder使ってみたのですが、C++Editorでソースをいじってみようとしたら、文字の書いたり消したりが全くできませんでした。(ショートカットメニューのCopy と Select ALLだけが動く・・)
これはバグではなくて、wxFormBuilderはそういうもんなのでしょうか?
ショートカットメニューにcutとかpasteとかもあるのにdisableになっている感じなので、バグのような気がするのですが・・。

780 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 08:47:27 ]
>>776
それ、良いですね。

何でかというと、wxDev使ってるせいで、デザイン中はWinなんです。
そこで、iconvでWinとUNIX系と同じコードにできるなんて理想。



781 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 18:16:01 ]
wxLocalのオブジェクトってグローバルであるのでしょうか?
どうやって取得すれば。。。

それとも自分でnewするもんでしょうか。

782 名前:781 mailto:sage [2008/03/31(月) 18:45:34 ]
なんか分らないけど、
>include
して、
>wxLocal::メソッド
と書くと、
コンパイル&動作しました。

グローバルオブジェクトなのか、スタティックメソッドなのかどっちかでしょう。

783 名前:デフォルトの名無しさん [2008/03/31(月) 19:25:03 ]
>wxLocale::GetSystemEncodingName()
>windows-932

この値は、iconv_openで使う文字列でしょうか?

784 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 20:05:31 ]
>>782-783
理解できないまま、推測だらけでコーディングするのは良くないよ
自分で試したり、質問する前にちゃんとドキュメント読んだり、検索してる?

785 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 23:51:05 ]
似たような事を別スレで言われてMac板へ向かった彼じゃないか?

786 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 02:05:32 ]
>>778
wxListCtrl - Ownerdraw: msg#00755

osdir.com/ml/lib.wxwindows.general/2004-01/msg00755.html
で質問している外人さんがいるけれど、答えは「自作リストコントロールを作りました」になっています。

しかし、
jaist.dl.sourceforge.net/sourceforge/wxwindows/changes-2.8.7.txt
ここを見ると、「Support right-aligned/centered owner drawn items in wxListCtrl」と書いてあるので、何かやり方があるのかも。

787 名前:デフォルトの名無しさん [2008/04/01(火) 16:04:23 ]
wxMac(Mac OS X)で、
システムメニューのHelpを押したときの処理を書く方法はありますか?
もしくはシステムメニューのHelpの下にサブメニューを作りたいです。

(IDEはwx-Dev C++ですが、手書きで良いので)

788 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 00:31:40 ]
すみません。 eclipse + CDT + MinGW + wxWidgets の環境構築の方法を解説したサイトはありますか?
ちなみにOS は Windows XP です。
古い情報は何件か見つけたのですが、うまくいきませんでした。



789 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 10:30:04 ]
>>787
www.wxwindows.org/docs/faqmac.htm#aboutmenu
ここに書いてあるみたいだけど、英語だからワカンネー (´・ω・`)

790 名前:787 mailto:sage [2008/04/02(水) 10:44:08 ]
サンクス>>789

ググる翻訳でうっすらと分かる感じです。
とりあえず、Menu IDを合わせると動くのかなぁ。

----------
アップル社はどのような標準をサポートしてwxmacメニュー項目については、ヘルプメニューですか?
wxwidgetsがないため、特定のAPIには、 [ ヘルプ ]メニューまたはメニュー項目については、 Mac OSのポートが使用する静的変数を助けるためのいくつかのエンジンを的確に判断する:

・それを前提としてメニュー項目については、 ヘルプメニュー部分です。
・ [ ヘルプ ]メニューのタイトルは、保存されwxapp : : s_machelpmenutitlenameと、デフォルトの" &ヘルプ"が、それを変更することができますし、お客様の特定のコンストラクタをメニューのタイトルです。
・メニューアイテムのID については、保存されwxapp : : s_macaboutmenuitemid 、 wxid_aboutデフォルトでは、変更することもできますが、お客様のニーズに合わせている。
・wxwidgets 、他のアイテムは、 [ヘルプ]メニューに追加されると、マックOS ヘルプ ]メニューの翻訳文のお申込みのためのIDは透過的に処理されます。



791 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 12:18:01 ]
wxpython だったらできた。

ttp://www.harukaze.net/~haruka/wxpython/wxpy09.html
を参考に、

self.HelpMenu = wx.Menu()
ID100 = wx.NewId()
self.HelpMenu.Append(ID100, u"ヘルプ", "help") #Helpメニューの下にプルダウンされる内容
MyMenuBar = wx.MenuBar()
MyMenuBar.Append(self.HelpMenu, "&Help") #Helpメニューを追加する
self.Frm.SetMenuBar(MyMenuBar)
self.Frm.Bind(wx.EVT_MENU, self.Alert, id=ID100)

とした。
About の方は、wx.ID_ABOUT で指定しても動かなかった

792 名前:787 mailto:sage [2008/04/02(水) 12:50:31 ]
>>791
wxpythonででも、出来るってことは出来るってことだね。

そのままC++コードに移せそうですね。

ま、最悪、wxpythonをデバッガでトレースか。

793 名前:788 mailto:sage [2008/04/02(水) 23:31:49 ]
windows版 eclipseでは、wx-configを指定したらダメなんでしょうか。

794 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 02:22:32 ]
wxFormBuilderで、既に存在しているウィジェットを継承したクラスをwxFormBuilder上で作って、
そのクラスをや他のクラスを含んだコードをクラス毎に1ファイルずつ分割して吐かせたいのですが、どうすればできるでしょうか??

subclassやらcustom control などの情報を探して色々やってみたのですが分かりませんでした。
どなたか教えていただけると幸いです。


795 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 10:47:50 ]
wxMacを使っていますが、デバッグコンパイルでさえ実行ファイルが92KBしかありません。
多分、ランタイムが必要なコンパイルとなってると思うのですが、
スタティックリンクにするための手順をご存知の方教えて頂けないでしょうか?

796 名前:デフォルトの名無しさん [2008/04/04(金) 17:42:29 ]
 ↑
この内容ヨロ!

797 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 18:24:41 ]
Mac板で聞くほうがいいんじゃね?

798 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 18:27:39 ]
 ↑
あんまり回答こないYO!

799 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 18:33:29 ]
何が原因かわからないけど、もうちょっと問題の切り分けをしたほうがいいんじゃね?
wxWidget の問題なのか、C++なのか、XCode なのかとかさ。

800 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 18:37:47 ]
するどいですね。
XCode使ってます。

逆に言うと、全く皆目見当つかなくて、切り分けできないので質問なげてます。
切り分け出来たら、あとはリファレンスとか何とか手に入れて全パターン試すだけですもんね。

ライブラリの構築(--disable-sharedですか?)の失敗なのか、
プロジェクトのmakeのコマンドラインが悪いのか。。。



801 名前:795 mailto:sage [2008/04/04(金) 18:48:38 ]
もしくは、バンドルするDLLを特定できれば良いのですが。。。

802 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 18:58:07 ]
XCodeでどう設定されてるかわからんけど、
wx-config --static=yes --libs
で出てくるオプション指定するとどうかな

使ってる共有ライブラリを特定するには
otool -L バイナリファイル名
で出てくる

803 名前:794 mailto:sage [2008/04/04(金) 19:07:00 ]
放置されっぱなしの794ですが、分かる方いらっしゃいましたらこちらも教えていただけると幸いです。

795さんうらやますぃ

804 名前:795 mailto:sage [2008/04/04(金) 19:15:39 ]
サンクス。

>wx-config --static=yes --libs
「他のリンクフラグ」に入れましたが、ダメみたいです。(入れ方が悪いのかも。いろいろ試してみます。)

>otool -L バイナリファイル名
/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 128.0.0)
/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 18.0.0)
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 22.0.0)
/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 11.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.1.3)
/System/Library/Frameworks/WebKit.framework/Versions/A/WebKit (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/QuickTime.framework/Versions/A/QuickTime (compatibility version 1.0.0, current version 63.0.0)
/System/Library/PrivateFrameworks/ZeroLink.framework/Versions/A/ZeroLink (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)

こんな感じです。多杉orz

805 名前:795 mailto:sage [2008/04/04(金) 19:36:51 ]
プロジェクトのオプションが、
>ライブラリ検索パス
>フレームワーク検索パス
が空文字でした。

これが問題なのかな?

806 名前:795 mailto:sage [2008/04/04(金) 19:47:29 ]
検索パスは空ですが、
プロジェクトのメンバーにライブラリファイル
>mac-ansi-release-static-2.8
がちゃんと入っていました。

逆に、
>*.a
ファイルまで入ってるため、ダイナミックリンクになっちゃうのかな?

807 名前:795 mailto:sage [2008/04/04(金) 19:58:03 ]
やっぱり、*.aファイルも無いと動作しません。

リリースビルドを行うと、
>/usr/bin/ld: can't locate file for: -lwx_base_carbon-2.8
というエラーになりましたorz

808 名前:デフォルトの名無しさん [2008/04/04(金) 22:57:30 ]
>>794
もっと図太くならないと。バンバンageながら、質問やら状況を795並みにするんだ。
恥ずかしくなんか無い!!


809 名前:転載せざるをえない mailto:sage [2008/04/04(金) 23:05:24 ]
「エスパーきぼんぬ」「氏ね」「(゚Д゚)ハァ?」等のレスを貰う八ヶ条。
1. ハードウェア、OSのバージョン等には一字一句触れない。
2. 大切な個人情報が漏れるとまずいので、己の行った操作、変更などは秘密。
3. エラーメッセージの類は決して書かない。「エラーが出るんです」で留める。
目の前で生じている現象をそのまま具体的に書くなどもっての外。
事実より俺様の脳内解釈を優先すべし。
4. 独り言文体で必勝。
「…なんだけど、どうすればいいのかなぁ」「何が悪いんだろう?」
5. 「急いでいます」「困っています」等、自分の都合を全面に押し出す。
6. もう試したことを得意げに指摘してくる奴には、厳しく対応。
「それが駄目だったから質問してるんです」「それはもう試してみて駄目でした」
"どう"だめだったのか、本当に実際それを行ったかどうかなんか問題じゃない。
7. ストレートに答えを書かないもったいぶったレスには、逆切れで対応。
「だからどうすればいいんですか?」「分からないなら引っ込んでろやゴルァ」
示されたURL等を参照するなんて態度は、回答者を甘やかすことに他ならないので
絶対に避ける。
8. 情報は小出しに。

「エスパーきぼんぬ」 補足
上の八ヵ条を「一つでも」満たす者は質問者として不適格だということだ。
そのような悪い質問に対して答えられるのは,
質問者の意図をすべて汲み取ることのできるエスパーでもなければムリ,
という意味であって,決して,高度な技術を持つユーザに対する尊称ではない。
まちがっても「エスパーの方,回答お願いします」
なんて痛い質問するな。つうか氏ね。

810 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 23:11:06 ]
wx-config --static=yes --libs
をオプションに入れるんじゃなくて、これを実行して出てくるオプションを入れてくれ
というか一体どうやってビルドできるところまで設定したのよ



811 名前:デフォルトの名無しさん [2008/04/04(金) 23:20:44 ]
エスパーって(w
794がかわいそうすぎる

812 名前:794 mailto:sage [2008/04/04(金) 23:26:42 ]
>>808 さん
ありがとうございます。

神経細いわけではないと思うんですが笑、
状況を詳しく書こうと思っても、エラーが出るとかじゃないですしOSどうこうってわけでもなく、単純に使い方が分からないってだけなのでこれ以上説明できることが何もないのです・・。

wxFormbuilder使えば、wxFormbuilder上で既存のウィジェットを継承したクラスを作成できると思っているのですが、そもそもそれが間違っているのでしょうか??

ていうか809は俺のこと言ってるんですかね?汗


813 名前:809 mailto:sage [2008/04/05(土) 02:55:06 ]
あぁ御免、誤爆だな
そういや開いてから3時間ぐらい放置してたわ

…それだけだと何なので、
wiki.wxformbuilder.org/Tutorials/UsingSubclass
こういうことではないの?

814 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 09:25:00 ]
>>794
wxFBではクラスを作ることはできないので、自分で作るしかない。
ただ、作ったクラスを使うことはできる。適当にコントロールを置いて、プロパティのところに、includeするヘッダとクラス名を書けば
そのクラスを使うようにはなるが、コンストラクタへの引数やスタイルなどのプロパティは置いたコントロールに依存するので、paneあたりを
継承すれば、wxWindowあたりを継承したコントロールなどにも対応できる。

MS VC++のMFCのようなものではなくて、リソースファイルを作るぐらいに考えるといいのかな。
ウィンドウやダイアログごとに別ファイルにしたいなら、作者に要望を出すとか、ソース公開されてるから自分で変えるとか・・・

815 名前:794 mailto:sage [2008/04/05(土) 13:54:14 ]
レスありがとうございます。

> 813 さん
そのページも見たのですが、どうもサブクラスに使う名前とヘッダーファイルを指定できるだけのような感じがして、求めているものじゃない感じでした。


> 814 さん
>>wxFBではクラスを作ることはできないので、自分で作るしかない。
>>MS VC++のMFCのようなものではなくて、リソースファイルを作るぐらいに考えるといいのかな。
やっぱりそういうものだったのですか。
情報ありがとうございました。

逆に、継承クラスを書いたり、クラス別にファイルを吐き出してくれたりするwx関連のRADツールみたいなものはないのでしょうか??


816 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 19:23:00 ]
>>815
自分でコードを書いて作ったコントロールを
wxFormBuilder上でフォームに貼ることならできるみたい。
wiki.wxformbuilder.org/Tutorials/CreatingCustomWidgets

これだけ調べて出てこないということは、
wxでは、コントロールはコードで書く必要があるのではないかと。

817 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 23:58:12 ]
自分もRADツール使おうと思って色々探していて、
wxFormbuilder か wxDev C++ っていうのが一番よく見かけるような気がしたのでどちらかにしようかと思っているのですが、それぞれどういった特徴があるんでしょうか??
なんか上のやりとり見ているとの実際使ってみても何ができて何ができないのかすぐに分からなそうな気がしたので、詳しい方に教えてもらう方が早いかと思いました。
よろしかったらどなたかご教示ください。

818 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 19:05:35 ]
wxFormBuilderはRADツールではない。

819 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 12:50:10 ]
RAD なら wxForms がいいかも。
ただし Borland/CodeGear C++ Builder 用のアドインだけど。

820 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 13:11:03 ]
>>819
それ使って上での話?
C++Builderなら使ってるんだけど、
wxWidgetsは心機一転、別のIDE(wx-dev)にしちゃったおorz



821 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 13:50:41 ]
>>820
いや、使ってない。
Web 上の資料を見て「RAD じゃん!」と思ったので。

822 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 13:57:35 ]
自分は Python な人なので、GUI 作成には XRCed を使ってます。

823 名前:795 mailto:sage [2008/04/09(水) 13:59:07 ]
>>810
有り難うございます。出力されました。

-L/MyDev/wxMac-2.8.7/lib -framework IOKit -framework Carbon -framework Cocoa -framework System -framework QuickTime
/MyDev/wxMac-2.8.7/lib/libwx_mac_richtext-2.8.a /MyDev/wxMac-2.8.7/lib/libwx_mac_aui-2.8.a /MyDev/wxMac-2.8.7/lib/libwx_mac_xrc-2.8.a
/MyDev/wxMac-2.8.7/lib/libwx_mac_qa-2.8.a /MyDev/wxMac-2.8.7/lib/libwx_mac_html-2.8.a /MyDev/wxMac-2.8.7/lib/libwx_mac_adv-2.8.a
/MyDev/wxMac-2.8.7/lib/libwx_mac_core-2.8.a /MyDev/wxMac-2.8.7/lib/libwx_base_carbon_xml-2.8.a
/MyDev/wxMac-2.8.7/lib/libwx_base_carbon_net-2.8.a /MyDev/wxMac-2.8.7/lib/libwx_base_carbon-2.8.a
-framework WebKit -lwxregex-2.8 -lwxexpat-2.8 -lwxtiff-2.8 -lwxjpeg-2.8 -lwxpng-2.8 -lz -lpthread -liconv

>というか一体どうやってビルドできるところまで設定したのよ

XCodeにFinderからてきとーにD&Dしました。

824 名前:815 mailto:sage [2008/04/09(水) 14:24:18 ]
>>816さん
うーむないのしょうかね・・
レスありがとうございましたm(_ _)m

825 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 19:05:59 ]
>>823
頼むから、内容を細切れにして、いろんなスレでマルチで聞くのはやめてくれ。
誘導元か、関連するレスのリンクを貼ってくれないと状況が理解できない。
そんなんだと、根本的な問題の原因を見抜けなくてドツボにはまるかもよ。

826 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 20:14:28 ]
原因を解決する気があればこうも糞みたいな書き込みを続けないって。


827 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 21:35:35 ]
>>822
俺はRubyな人だけどXRCedが一番使いやすいと思ったわ

828 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 07:55:35 ]
いいよね

829 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 21:00:42 ]
>>822 wxGlade はだめなの?

830 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 21:18:14 ]
Gladeは安定性が低い



831 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 17:21:30 ]
windows Home, MinGW 5.1 wxMSW2.8.7 で開発しています。

簡単なGUIハローワールド程度のプログラムならコンパイルできる状態なのですが、
普通に g++ sample1.cpp sample2.cpp `wx-config --cppflags --libs`
とした時に、リンク時に、
undefined reference to `wxWindow::RegisterHotKey(int, int, int)'

undefined reference to `wxWindow::UnregisterHotKey(int)'
などのエラーが出るソースがあります。(コンパイルには成功しているみたいです。)

ググってみたのですが、情報が少なく解決できていません。(英語苦手というのもあります汗)
www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLJ,GGLJ:2006-39,GGLJ:ja&q=undefined+reference+to+%60wxWindow%3a%3aRegisterHotKey%28int%2c+int%2c+int%29%27

解決方法分かる方いらっしゃいましたら、教えていただけると幸いです。


832 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 17:37:29 ]
すいません追記です。
上記のソースは1つのLinux環境と2つのWindows home 環境で試したのですが、Linux環境ではリンクにも成功してビルドできるのですが、Windows Home 環境では両方ともリンクに失敗します。
なので、WindowsにインストールされているwxMSWで設定がおかしいところがあるのかなと思うのですが・・


833 名前:831 mailto:sage [2008/04/11(金) 18:54:27 ]
すいません自己解決しました。

wx-config --libs で使うライブラリがmsys の /usr/lib
になければいけなかったのですが、なぜだか/local/lib にインストールされていたせいでした。
/usr/lib にコピーするだけで解決しました。
wxWidgetsインストール時のバグだったんでしょうか。。


834 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 20:31:28 ]
>>829
wxGlade は、次の2点が理由で好きではないのです。

1. 自分の書いたコードと自動生成されたコードがまざるのが不安
2. Output Path に指定したパスが保存したファイル(*.wxg)に入ってしまう。

特に2番は、複数マシンで開発をしているときに困ります。

835 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 20:41:34 ]
>>833
>wx-config --libs で使うライブラリがmsys の /usr/lib
>になければいけなかったのですが、なぜだか/local/lib にインストールされていたせいでした。

prefix指定しなかったのならデフォルトで /usr/local/lib にインストールされる。それが普通。
あと別に /usr/lib になければいけないなんてことはなくて
コンパイル時に -L/usr/local/lib つければいいだけ。
wx以前にgccの使い方の話なんでその辺勉強してみるといいかも。

836 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 00:57:03 ]
>>834
>1. 自分の書いたコードと自動生成されたコードがまざるのが不安
C++で使ってるけど,wxGladeの吐く.cpp, .hとは別のファイルにそれから
派生したクラスを定義して,実装は派生クラスに書いて,wxGladeの吐く
コードとはほぼ完全に分離できている。

>2. Output Path に指定したパスが保存したファイル(*.wxg)に入ってしまう。
.wxgからの相対パスで指定すればOKかと。

837 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 05:51:46 ]
>>835
wx-config って、その -L とかを自動で指定してくれるスクリプトのはずなんだよ。
それが必要なパスを吐かないなら、設定に問題がある。
インストールがうまくいかなかったんじゃないかな。

838 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 10:58:54 ]
>>834
自分は Python 形式で書き出しているので、
書き出されたファイルの一部に手を加える必要があります。
(最低でも ID 宣言とか)

相対パスで指定できるのは知らなかったです。
試してみます。

839 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:18:32 ]
>>837
ど素人なのすが、Windowsではwx-config は msys上でしか使えませんか?
eclipse上で指定したいのですが無理ですか?

840 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 11:54:53 ]
バッチファイル作ってラップするとか
@c:\msys\1.0\bin\sh.exe --login -c "wx-config %*"
こんな感じでwx-config.batとか作るといいかもしれない
eclipseでバッチファイルをそのままオプションに指定できるのかどうかはわからないが



841 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 18:02:18 ]
wxPythonで画像変形の高速化を行ないたい
のですがwxImageの画像データを直接取得する
方法はありませんか。GetData,SetDataでは
コピーしか渡らないようでうまく行きません。
PIL,Pygameによる画像変形は転送がネックに
なり高速になりませんでした。
PyOpenGLでは画像を直接取得できそうなのですが
画像が大きくなる(2048*2048)とリソースで
問題が出るようで試していません。
御教示お願いします

842 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 18:43:25 ]
>>841
wxImageのGetDataならピクセルデータを直接得られるはずだよ。
少なくとも、自分のところではそうなってる

843 名前:841 mailto:sage [2008/04/14(月) 01:39:36 ]
>>842
Python上で出来ました?
言葉が足りなかったので補足しますと、
wxImageの画像アドレスを知りたいのです。
ctypesでGetDataから渡された文字列を
強制的に書き換えても画像に反映されないので
コピーが渡されているようです。

高速化するにはDLLから直接書き換えるしか手が
なさそうなのですが、やっぱり無理
かなぁ。メニューのフォントサイズ変えるため
MenuItem.SetFontしたら落ちるし、前途多難…

844 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 03:11:03 ]
>>843
wx.ImageのGetDataBufferはダメだった?

845 名前:843 mailto:sage [2008/04/14(月) 17:22:28 ]
>>844
御回答有難うございます。
GetDataBufferってあったんですね。_core.py見なおしたら
見つかりました。返却値はbufferオブジェクトですね。
str()はありますがアドレスは隠蔽されてるみたいです。
Pythonからのアクセスはかなり快適で面白いオブジェクト
でしたが…残念。

答えていただけそうなのでもう1件お尋ねします。
wxBitmapを大量に格納しようとするとすぐ落ちて
しまいます。wxImageでは問題無いのでシステムリソースに
格納してるのかとも思っているのですが、その
限界を知る方法がよく分りません。御存知の方が
いましたら御教示お願いします。

846 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 19:52:08 ]
Python から wxDC を渡してやって、
DLL 側で画像描画をできないだろうか…と
ちょっと思ったり。

ファイルからの Bitmap の読み込みも DLL 側でやる感じで。

847 名前:843 mailto:sage [2008/04/14(月) 22:50:17 ]
GetDataBufferの件でやっと気付いた。
bufferオブジェクトってインタラクティブな状態で
見ると実体アドレスが出てる。bufferオブジェク構造体から
アドレスを拾えるみたいです。ctypesで直接書き込んで
確認できました。pyrex使えばなんとかなる…かも
教えていただき有難うございました。

>>846
ちょっと似たことをPILのImageWin.Dibでやってみました。
描画はPILからwxでwxのDCにPILからpasteする方法です。
結果はクリッピングがとても面倒で実用になりません
でした。pythonオブジェクトはpyrexで簡単に
拾えるかもしれませんが私の能力では実現は厳しそうです。


848 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 19:07:29 ]
ちょっとお尋ねしたいのですが、ubuntuでwxWidgetsを使って開発していたソースをWindowsの方に移してコンパイルしようとすると、文字化けしました。
ソースの文字コードがUTF-8だったので、UbuntuではwxWidgetsの文字コードがデフォルトでUTF-8になっていて、WindowsではUTF-8ではない(多分S-JIS?)ということだと思うのですが、結局Windowsでは文字コードは何で開発するのがいいんでしょうか?
どういう観点から考えて決めればいいのか分からないので、ご助言頂けると幸いです。


849 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 22:09:40 ]
>>848
wxWidgets をインスコする際に UTF-8 モードか ANSI モード(すなわち日本語だと shift jis モード)か選択出来るので、
クロスプラットホームのために wxWidgets をつかってるなら使うプラットホームでそれを同じにしておいたほうがいいです。

どっちにするかですが、これからの時代は何も考えず UTF-8 にしておくのがよいと思います。単に業界の趨勢なので。


850 名前:848 mailto:sage [2008/04/16(水) 00:01:26 ]
>>849さん
やはりUTF-8ですか。
,/configure のときに --enable-unicode でいいのですよね。

レスありがとうございましたm(_ _)m



851 名前:850 mailto:sage [2008/04/18(金) 12:54:56 ]
すいません
./configure --enable-unicode
でmake し直したのですが、
やはりUTF-8のソースをビルドするとインターフェース部分のマルチバイト文字が化けてしまいます。
どうすればUTF-8のソースを文字化けせずにビルドできるようになるでしょうか?

Windows Home
wxWidgets 2.8.7 です。

どなたか教えていただけると幸いです。


852 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 17:47:58 ]
コンパイラにUTF-8を認識させなければならない。BOMありUTF-8にできるならファイルを変換すべきだが、gccでは使えなくなる。
VCならBOM有りの場合にはshift jisに変換後にコンパイルしてくれる。当然、埋め込んだ文字列はMBCSのShift_JISになる。
そこで、Shift_JIS->UTF-8への変換をプログラムでやる必要がでてくる。
もう一つの方法は全て英語で書きASCIIにして、.po/.moファイルを作成しi18nにより日本語を表示する。
この場合全てasciiなので、UTF-8とShift_JISは同じものとなるので、特に問題は生じない。

853 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 23:37:55 ]
というかポータビリティーのために wx を使っているのなら、
そもそもマルチバイト文字列をソースコードに書き込むのは
ポータビリティー上良くないということを認識しましょう。
コンパイラによって扱いが変わってくるので。

将来誰かが非日本語版のを作る場合とかも考えて、
(オープンソースなら誰か勝手にやるだろうし、会社でやってても
中韓国語版をつくることになるかもしれない)
ソースは ascii にして、wx の国際化機能をつかってやるのが吉。

ちょっと手間でも、いま払っておいた手間が後で
格段に仕事を節約することになります

854 名前:843 mailto:sage [2008/04/19(土) 01:58:58 ]
>>864
言われた意味がよくわかりました。ConvertToBitmapが
滅茶苦茶遅い!本気でImageからDCに直接描き込もうか
とも考えましたが、別の解決策があったので止めました。
でもScaleやRotateの出力先くらい指定できた方が
扱い良さそう。

実験としてwxPython用のコンボリュ−ション行列と
YUV操作関数作ったけど…誰も要りませんよね

855 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 03:49:33 ]
車輪の再発明をしても仕方がありませんし、公開に値するしろものでもありませんので
将来的にもソースは出せないと思います。
ゆくゆくは自作のプログラムに組み込めればそれでいいかな、と。

856 名前:854 mailto:sage [2008/04/19(土) 05:03:13 ]
>>855
直接wxImageをPythonからいじるノウハウについて
言ってるだけですよ。swig通してオブジェクトを
いじれれば質問もせずに済んだんですけど

857 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 14:34:24 ]
>>864のすばらしいアドアイスにwktk

858 名前:854 mailto:sage [2008/04/19(土) 23:09:46 ]
>>3のコピペは個々の解決法は不要という事ですね。
wxImageからDCに直接描画するwxPythonライブラリも
作ったけど御忠告に従います。有難うございました。

859 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 12:27:47 ]
>>858

いや、>>3 のコピペは「作ったのに公開しない人」を皮肉ったもので
悩まずどんどん公開すべきという意味だと思います。

860 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 12:32:53 ]
口だけで実は何も作ってない奴が成果物提示を要求された時の逃げ口上だろ。



861 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 21:21:39 ]
pc8.2ch.net/test/read.cgi/tech/1097524712/664
664 名前:デフォルトの名無しさん [sage]: 2006/01/09(月) 04:46:55
wxWidgetsのwxScintilla(wxStyledTextCtrl)に手を加えているのですが
意見をもらえないのでしょうか?
www.geocities.jp/full_sarcasm/testedit.html

開発途中のWindows版バイナリです。

車輪の再発明をしても仕方がありませんし、公開に値するしろものでもありませんので
将来的にもソースは出せないと思います。
ゆくゆくは自作のプログラムに組み込めればそれでいいかな、と。

862 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 12:25:27 ]
>>839
遅いけどこんなんあった
miteidesu.seesaa.net/article/93929180.html


863 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 00:21:52 ]
>>862
おぉぉぉ。すばらしい。明日試してみます!

864 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 17:03:40 ]
Eclipse CDT と MinGW でwxWidgets使ったプロジェクトの開発しているのですが、gdbでデバッグしようとすると、頻繁にエラーが出て落ちます。

同じ症状のかたいらっしゃるでしょうか?
wxWidgets と gdbは相性が悪いのだろうか・・


865 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 18:08:21 ]
Linux上では全然問題ないよー
MinGW固有の問題かな?

866 名前:864 mailto:sage [2008/04/25(金) 00:34:38 ]
むーそうですか。。ありがとうございます。


867 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 14:41:33 ]
docs.wxwidgets.org/2.8.6/wx_wxfileconfig.html#wxfileconfigctor
ここを見るとwxFileConfigクラスのインスタンスを宣言する時は、引数にwxInputStreamクラスのオブジェクトが必要なようなのですが、
wxInputStreamクラスのインスタンスはどのように宣言すればいいのでしょうか??
docs.wxwidgets.org/2.6/wx_wxinputstream.html#wxinputstreamctor
ここを見ると creates dummy input sream となっていてよく分かりません。
設定ファイルに使うファイルのパスを何かしらの方法で引数のwxImputStreamクラスのオブジェクトの中に入れておかなければいけないと思うのですが・・
wxwindowsjp.sourceforge.jp/docs/html/wx/wx464.htm
ここも見てみましたが、探している情報は載っていないように感じました。
どなたか教えて頂けると幸いです。


868 名前:845 mailto:sage [2008/04/25(金) 23:36:24 ]
大量のwxBitmap格納で落ちる事への自己レスです。
私の環境はWin98だったのですが、この場合内部で
DIBもしくはDDBを作成する為システムリソースを
食い潰す事が原因のようです。Win9xはリソース上限が
2M程度と聞きますが実際はよく分りません。
Win上でスクリプトからなら大量の画像はwxImageで
管理した方がよさそうです。

wxのソースをみてたらwxImageの処理があんなに
遅い訳がわかります。せめてAlphaの有無で
ループを別けてくれれば拡縮とかは少しは速く
なりそうなんですが…。

869 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 23:58:00 ]
まだ Win 98 なのなら、XP 売っているうちに買っておいたほうが良いよ >>868

870 名前:845 mailto:sage [2008/04/26(土) 00:51:40 ]
>>869
そう出来ればいいですねぇ…
リソース浪費するのは同じなのでWin2000以後も
この件に付いては気をつけたほうが良いとも
思います。ソースを追っていませんし管理方法に
詳しくありませんが、wxはDIBとDDBを使い分けてる
ようでDDBならVRAMの容量が処理能力に直結する
気がします。



871 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 05:17:33 ]
>>867
wxFileInputStreamで開けばいい。

872 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 09:32:15 ]
>>870
Vista WDDM以降、DDBはDIBみたいに振る舞うので注意。

873 名前:845 mailto:sage [2008/04/26(土) 18:13:24 ]
>>872
勉強になりました。
M$の言い分としてはVistaが動かせるようなPCなら
気にする事ではないんでしょうねぇ。

874 名前:867 mailto:sage [2008/04/26(土) 19:59:52 ]
>>871 さん
ありがとうございます。wxFileInputStreamなんてクラスがあるんですね。

ただ、また疑問点が出てきてしまいました。
www.h3.dion.ne.jp/~k5_n/wxwin/memo/ver0_2.html
ここを見て設定ファイル周りのコードを書いていたのですが、
そもそもwxFileConfigのコンストラクタの引数型が
docs.wxwidgets.org/2.8.6/wx_wxfileconfig.html#wxfileconfigctor
ここに書いてあるものと全然違うことに気付きました。
そもそもアプリケーションの設定ファイル周りの機能を作るにはwxFileConfigクラスを使うので正しいのでしょうか?
www.h3.dion.ne.jp/~k5_n/wxwin/memo/ver0_2.html
この資料は大分古いようなので・・(自分はwxwidgets2.8.7を使ってます)

ちなみにこの資料に書いてある通りに書くと、
wxFileConfigクラスのインスタンスのRead関数は正常に動くのですが、Write関数が正常に動きません・・
コンパイルは成功しているのですが、Write関数で設定ファイルを更新しようとしても何も更新されません。。

どなたかアドバイス頂けると幸いです。


875 名前:デフォルトの名無しさん [2008/04/27(日) 08:11:31 ]
MacのwxPythonでwx.MessageDialogのアイコンがどれ選んでも蛇が入ったロケットみたいなアイコンなんですがバグでしょうか?

876 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 10:02:27 ]
仕様です

877 名前:874 mailto:sage [2008/04/28(月) 12:19:09 ]
874です。
wxFileConfig::Write(); が、コンパイルには成功するのに正常に動作しない問題が解決しました。

正常に動かないときは

wxFileConfig* m_pConfig
..略..
m_pConfig->Write(wxT("sample"), 10);

のように、wxFileConfigのポインタからアロー演算子でWriteメソッドにアクセスしていたのですが、

wxFileConfig m_Config(コンストラクタの引数);
m_Config.Write(wxT("sample"), 10);
のように、ポインタにせずドット演算子でWriteメソッドにアクセスすると、書き込みに成功しました。

これはwxWidgetsのバグなんでしょうか??
どなたか同じ症状の方はいらっしゃるでしょうか?

878 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 13:15:54 ]
ポインタだけで実体作ってなかったとかいうオチは許さんぞ。

879 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 13:16:20 ]
>>877
そんなバグは聞いたことがない。
m_pConfigの実体を確保し忘れてるとか、多分そんなのが原因だと思う。

880 名前:874 mailto:sage [2008/04/28(月) 15:38:11 ]
・・・
#include "wx/wx.h"
#include "wx/config.h"
#include "wx/fileconf.h"

wxString config_file = wxGetCwd();
#if defined(__WXMSW__)
config_file += "\\";
#else
config_file += '/';
#endif
config_file += APP_CONFIG_FILE; // APP_CONFIG_FILEはdefineマクロ

wxFileConfig* m_pConfig = new wxFileConfig(
wxEmptyString,
wxEmptyString,
config_file,
wxEmptyString,
wxCONFIG_USE_LOCAL_FILE);

int dt = 10;
m_pConfig->Write(wxT("sample"), long(dt));


newで実体確保できてますよね??(おそるおそる)
これをビルドしようとするとコンパイルもリンクもできるんですが、
m_pConfig->Write(wxT("sample"), long(dt));
の部分を実行しても何も起きないんです。
Read();は普通に動くんですが・・




881 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 15:57:16 ]
ちゃんとdeleteしないと書き込まれないんじゃないか?

882 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 16:20:22 ]
Flush()しない場合はデストラクタで書き込まれる、とあるな。
両方やってないから書き込まれない。

883 名前:874 mailto:sage [2008/04/28(月) 16:39:36 ]
>>881さん
>>882さん

レスありがとうございます。

Write(); のあと Flush(); でいけました!まじありがとうございます!

Flushが必要、という情報が見つけられないのですが、よろしかったらソースを教えて頂けないでしょうか??
あと、「両方やってないから書き込まれない」の「両方」とは、Flush(); と、あともう1つは何でしょうか??


884 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 16:45:51 ]
>>883
>>882 を読んでそれが何かわからないようならC++を勉強しなおした方がいい

885 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 16:48:43 ]
>>883
「両方」じゃなくて「どちらも」の間違いだった。どちらかでも行えば書き込まれる。
あと、人に聞くまえにリファレンスを読め。


886 名前:874 mailto:sage [2008/04/28(月) 17:18:22 ]
docs.wxwidgets.org/stable/wx_wxconfigbase.html#wxconfigbaseflush

permanently writes all changes (otherwise, they're only written from object's destructor)
部分だったんですね。。

docs.wxwidgets.org/stable/wx_wxconfigbase.html#wxconfigbasewrite
こっちのWrite();のリファレンスの方には
write the specified value to the config file
ってあるので、Write();だけでファイルに書き込めるのだと思っていました。全く分かりませんでした。。

ありがとうございましたm(_ _)m


887 名前:851 mailto:sage [2008/05/02(金) 23:40:36 ]
>>852 さん
>>853 さん
めちゃくちゃ遅くなってすいません・・
レスありがとうございましたm(_ _)m
なんか書き込んだと思ったら書き込んでなかった?ようです><
すいませんm(_ _)m

888 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 01:24:28 ]
wxPythonの質問なんだけど、ここで大丈夫?
勉強し始めたばかりなんですが、トップフレームにボタンを作って、
このボタンを押すと、別スレッドで重い処理を実行させて、終わったら
「終わりました。」てメッセージボックスを表示させるプログラムを書いてます。

別スレッドのなかでwx.MessageBox("終わりました。","")を実行すると、
Windowsでは普通に表示されてOKボタンでメッセージボックスが閉じますが、
Linux(GTK)だとメッセージボックスが表示されますが、固まってしまいます。

WindowsとLinuxどちらの動作が正常なんでしょうか?
(wx.Frameなどを継承していない)別スレッドのクラスからwxを使っていいのでしょうか?

889 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 19:56:05 ]
どっちが正常ってか、Windowsで固まらないのはまぐれ
docs.wxwidgets.org/stable/wx_threadfunctions.html#wxmutexguienter

890 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 20:18:36 ]
>>889
ありがとうございます。
やっぱり何も対策を取らないと固まるんですね^^;
wx.MessageBox("終わりました。","")の手前にwxMutexGuiEnter()を書いて、
直後にwxMutexGuiLeave()を書いて試しましたが、wxMutexGuiEnter()で
固まってしまいました。たぶんMutexの初期化?が足りないのかもしれません。

wiki.wxpython.org/LongRunningTasks
ここを参考にwx.PostEventを使って、Windows&Linuxで思い通りの動作になりました。



891 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 07:22:33 ]
windows xp MinGW環境ですが、openGLを使いたいと思い、
config.gccのopenglのオプションを有効にしてgccでコンパイルしました。
openGL用のライブラリがリリース版とデバッグ版の2つできたのですが、
2つともファイルサイズが40kb程度しかありません。
これで正しくライブラリができているのでしょうか?

892 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 12:11:45 ]
wxStringオブジェクトを走査して特定の文字列が何回出てくるか調べたいんですが、それ用の関数ってないですよね??


893 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 12:24:10 ]
>>891
GLCanvasってレンダリングコンテキストのハンドリングぐらいしかやってないんじゃないかな。それだけならそんなもんじゃないかなぁ。


894 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 23:56:39 ]
>>892
>それ用の関数ってないですよね??
質問の仕方、心構えが間違ってる。ありませんか?と自然に聞けば良い。
自分が既に調べてみつからなかったんだけど ... ということをアピールして、
しかも、自分って正しいですよね、という雰囲気である。
これでは自分で心を閉ざしているようなものであって、
API レファレンスを読めばみつかる API もみつからない。

というのは別にして、wxString::find(const wxString&,size_t) ではだめなの?

895 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 23:59:56 ]
なんという紳士

896 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:04:29 ]
>>894の優しさに泣いた!

897 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:28:37 ]
>>894にならほ(ry

898 名前:892 mailto:sage [2008/05/27(火) 02:09:22 ]
レスありがとうございます。

>>質問の仕方、心構えが間違ってる。ありませんか?と自然に聞けば良い。
>>自分が既に調べてみつからなかったんだけど ... ということをアピールして、

う、こういう聞き方、あまりよろしくないのですかね??
単純に「ありませんか??」だとググれと言われてしまうし、かと言って毎回なんか質問書き込む度に既に調べて分からなかったので質問しましたってのは正直億劫だったのでこんな感じの聞き方になっていましたが・・

wxString::Findだと、最初にマッチした部分のインデックスが返ってくるだけですよね??
でもwxString::Cmpとforとif使ってなんとかなったので、質問したこと自体は解決しました。

>API レファレンスを読めばみつかる API もみつからない。
これはなんでですか??
この質問の仕方だとなんでAPIリファレンスに書いてあるAPIも見つからなくなる、のでしょう?
突っ込まれて反論してるのではなく、どういう意味か分からなかったので単純に教えて頂きたいな、ということです。

899 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 02:25:57 ]
>>898
>毎回なんか質問書き込む度に既に調べて分からなかったので質問しました

答える側になった事を考えれば分かると思うが、これが正解
事前に何を調べて自分としてはどう思っていて何が疑問なのかを丁寧に書く
これしか無いよ

900 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 02:32:59 ]
>>898
解決したならいいけどCmp()でどんなコードを書いたの?



901 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 03:13:25 ]
>>898
>wxString::Findだと、最初にマッチした部分のインデックスが返ってくるだけですよね??
この「ですよね??」という聞きかたが良くないです。
自分はこの API は既に知っているけど ... ということをアピールして、
しかも、自分って正しいですよね、という雰囲気である。
これでは自分で心を閉ざしているようなものであって、
この API が使える API であるということを認識出来ない。

自分はこれまで最初にマッチした部分のインデックスが返ってくるだけだと思っていたんだけれど、
相手が wxString::find を言ったということは、実は二つ目以降も返ってくるんではないか?
と謙虚に考えられなくなるわけです。相手に言われたら、
自分を疑って、もういちど自分で API レファレンスを読んでみればわかるはずで、
こうやって小言を言われる必要もなくなるわけです。というのが、
> この質問の仕方だとなんでAPIリファレンスに書いてあるAPIも見つからなくなる、のでしょう?
>突っ込まれて反論してるのではなく、どういう意味か分からなかったので単純に教えて頂きたいな、ということです。
への返答です。
僕は自分自身が、「ですよね?」「じゃないんですか?」と言いたくなったら、
まず自分を疑うことにしています。
その言葉を発した時点で、考えるのを放棄しているからです。

というのはいいとして、wxString::find(const wxString&,size_t) とわざわざ
オーバーロードしてある引数までかいてあるのは何故だとおもいますか?
それはそのバージョンをつかうと、第二変数でどこから調べるかが指定出来るからです。
そうするとそれを繰り返し呼べばいいわけです。
ちなみに find が大文字か小文字かも違います。
docs.wxwidgets.org/2.8.6/wx_wxstring.html#wxstringat
をみてください。

902 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 03:24:20 ]
ためになる話のような気がするから
あとでゆっくり読むぜ

903 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 03:45:34 ]

   _,,....,,_  _人人人人人人人人人人人人人人人_
-''":::::::::::::`''>   ゆっくりしていってね!!!   <
ヽ::::::::::::::::::::: ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄
 |::::::;ノ´ ̄\:::::::::::\_,. -‐ァ     __   _____   ______
 |::::ノ   ヽ、ヽr-r'"´  (.__    ,´ _,, '-´ ̄ ̄`-ゝ 、_ イ、
_,.!イ_  _,.ヘーァ'二ハ二ヽ、へ,_7   'r ´          ヽ、ン、
::::::rー''7コ-‐'"´    ;  ', `ヽ/`7 ,'==─-      -─==', i
r-'ァ'"´/  /! ハ  ハ  !  iヾ_ノ i イ iゝ、イ人レ/_ルヽイ i |
!イ´ ,' | /__,.!/ V 、!__ハ  ,' ,ゝ レリイi (ヒ_]     ヒ_ン ).| .|、i .||
`!  !/レi' (ヒ_]     ヒ_ン レ'i ノ   !Y!""  ,___,   "" 「 !ノ i |
,'  ノ   !'"    ,___,  "' i .レ'    L.',.   ヽ _ン    L」 ノ| .|
 (  ,ハ    ヽ _ン   人!      | ||ヽ、       ,イ| ||イ| /
,.ヘ,)、  )>,、 _____, ,.イ  ハ    レ ル` ー--─ ´ルレ レ´



904 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 10:02:58 ]
なんか知らんが賢人が降臨したようだな

905 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 13:52:47 ]
賢人って… >>903 のこと?

906 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 17:45:13 ]
当たり前だろ

907 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 19:56:55 ]
馬鹿野郎俺に決まってるだろ

908 名前:892 [2008/05/27(火) 22:50:50 ]
レスありがとうございます。

>ちなみに find が大文字か小文字かも違います。
これに気づいてませんでした。C++互換というやつがあったんですね・・。

>相手が wxString::find を言ったということは、実は二つ目以降も返ってくるんではないか?
これはもちろん考えてます。が、それでも完全に見逃していました。。

wxString::find(const wxString&,size_t) でいけそうです。ありがとうございます。

が・・

>>それ用の関数ってないですよね??
>質問の仕方、心構えが間違ってる。ありませんか?と自然に聞けば良い。
これは分かるんですが・・

>>wxString::Findだと、最初にマッチした部分のインデックスが返ってくるだけですよね??
>この「ですよね??」という聞きかたが良くないです。
これはではどう聞けばよかったんでしょう?
これ以外に聞きようが無い気がするんですが・・


909 名前:892 [2008/05/27(火) 22:55:44 ]
>>900
こんなの書いてました汗

wxString str_wk;
int count;
wxString source = "なんか色々";
int length = sourceのデータ長
for (int i = 0; i < length; i++){
str_wk = source.Mid(i, 6);
if (0 == str_wk.Cmp(wxT("sample"))){
count++;
}
}

910 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 23:10:59 ]
>>908
ですよね?と聞く前に、wxString のメンバ関数一覧を再確認すればよかったんじゃないかな。たぶん。



911 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 23:47:43 ]
>>901のエントリについては、何か考えさせられた。

○(調べたけどわかんなかったので)ありませんか?
△(調べずに)ありませんか? … (ググれと言われる)
×ないですよね? … (ないんですよ。そうでしょう?(同意求む)的な感じ)

って感じなのかな。

912 名前:892 [2008/05/27(火) 23:55:56 ]
>>910
再確認して、その上で分からなかった(見逃してた)んです。
なので、言ってしまえば回答に直結するレス頂いてそれでも気づかなかった自分がバカだったってだけの話なのですが汗


913 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 00:03:07 ]
その人は嫌み言ってるだけだと思うので気にしないでいいと思うよ
まあふと疑問がでてドキュメント見たときに、
そのクラスのあんま関係なさそうだけど他のメソッドもついでに
全部勉強しておいてやろうとかいう感じでやってればスキルもあがるんじゃないでしょうか。

914 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 10:19:55 ]
これって、64bit対応してるかな?
コンパイラが64bitなら無問題?

915 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 11:55:45 ]
すくなくとも wxMac は対応してない。なぜなら GUI が Carbon で、それには 64bit 版がないから。

916 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 12:15:03 ]
え”〜、Carbonは64bitには亡くなるのぉ???

wxCocoaの完成を待つしか無い???

917 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 12:53:48 ]
>>916
いまんところの Apple の発表は、 Carbon の GUI 部分は 64 bit にしない、Carbon の非 GUi 部分は 64 bit にする、とのことだけど、まあすぐ気の変わる会社だから誰にも分かりません

Qt はもう方針転換して、Cocoa で組みなおしてます。もう Cocoa 64 bit のβ版がでてるはず。

wxMac はメンテナンスはされてるけど、ドキュメントから何から激烈に古いのでこれを機会に wxCocoa を誰か頑張ってくれ。

918 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 13:03:15 ]
wxGTKはMacでは動かないの?

919 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 13:10:59 ]
wxGTK は OS X 上で X11 を立ちあげて、そのなかで動くというのは可能
Windows でも cygwin とかでX11 サーバをいれとけば wxGTK も動くというのと同じ状況です
OS X の WindowServer は X11 ではないので。
まあ X11 は標準でついてくるけど。

920 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 13:49:29 ]
正直 OS X で X11+GTK とか勘弁してくれって感じだ…



921 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 15:31:32 ]
Mac で Xアプリが動くってのはオマケだね。

クリップボードさえX専用クリップボードだったり、
Windowsの16ビットアプリケーションより連携悪い。

922 名前:デフォルトの名無しさん [2008/05/30(金) 16:00:05 ]
wxStreamToTextRedirectorを使っているんですが、
cout << で、マルチバイト文字が化けて表示されてしまいます。

同じような症状の方、また解決方法を分かる方いらっしゃいましたらご教示いただけると嬉しいです。
ちなみにwxMSWをunicodeモードでインストールして使っています。

923 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 16:03:51 ]
自分の書き込みを何度も読み返すといいよ。

924 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 16:12:39 ]
Code::Blocksのスレが無いので、ここに書かせてくれ。
Code::Blocksのバグなんだ。興味ない人は無視してくれ。
詳細はチラ裏に書いたので、もし偉い人がいたら、本家にバグ報告してほしい。

ここからチラ裏

日本語のMac OS X上のCode::Blocksで、新規プロジェクトをウィザードで作ろうとすると、「Script compile error」というのが出る。
これは、Code::Blockが、ウィザードを記述してるスクリプト(Squirrel)を読み込むときに、U+005CがU+00A5に変換される(ファイルがShift-JISとして読み込まれる)のが原因。
src/sdk/scriptingmanager.cppの中にある、ScriptingManager::LoadScriptがスクリプトをファイルから読み込む関数っぽいので、その中の、cbReadFileContents(f)をcbReadFileContents(f, wxFONTENCODING_UTF8)に置き換えればいい。
だが、俺は英語ができないし、バグ報告のためのユーザアカウントも持っていないので、せめてここに書くぐらいしかできないorz

ここまでチラ裏

925 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 10:58:29 ]
OS X 上で、外人さんの作ったソフトで、unicode つかってないので、そのバグがでることって多いよね。TeX 用のソフトでそれではまることがしばしば ...

926 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 23:48:04 ]
>>924
了解

927 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 00:10:51 ]
Ubuntu 8.04でwxPythonがシンボル見つからないとかで起動しない。
自分でビルドしようと思ってもコンパイルエラー。swigのバージョンかな?
動かぬなら 動くまで待とう wxPython

928 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 19:47:07 ]
待ってねーでバグレポート送れよ

929 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 00:20:54 ]
英語がわからないに1票〜

930 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 00:55:38 ]
>>928
いや、本家フォーラムではもう話題になってる。日本で話題になって無いからチラ裏してみただけ。



931 名前:デフォルトの名無しさん [2008/06/04(水) 00:57:50 ]
なぁ、このフレームワークって人気ないの?

932 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 02:16:47 ]
>>931
ん?採用してるプロダクトも多いし
コミュニティも活発じゃん。

なんでそんな事を思うのかい?

933 名前:デフォルトの名無しさん [2008/06/04(水) 09:00:21 ]
採用しているプロダクトも少ないし
コミュニティも活発じゃないからだろうきっと。

934 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 10:01:18 ]
Qtに負けてる?

935 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 12:26:07 ]
>>934
Photoshop Elements、Opera、Google Earth、SkypeなんかがQtだね。
確かにちょっとよさそうだし、有料なんでサポートもしっかりしてそうだけど
wxWidgetsをすでに使ってるんだったら乗り換えるほどではないかな・・

936 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 12:27:18 ]
あ、そう。
じゃあ乗り換えるのやめる。

937 名前:デフォルトの名無しさん [2008/06/04(水) 18:08:03 ]
wxStringに格納されている改行文字を数えるために、for文などと組み合わせて

if(string::npos != mml.find(wxT("\n"), i ,len)){
line_count++;
}

のように書いてみたのですが、改行文字じゃないところまでマッチしてしまいます。
正しい書き方分かる方いらっしゃいましたら教えて頂けると嬉しいです。

環境はWindows wxMSW2.8.7
文字コードはunicodeです。

938 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 20:03:39 ]
sizerだったかな?
いまいちこの辺の理解ができない。


939 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 22:02:11 ]
>>937
i はどうやって更新してるの ???

940 名前:937 [2008/06/04(水) 22:27:08 ]
>>939
分かりにくくてすいません。
lenはずっと固定1で、
iは1ループで1ずつ加算していく感じです。

単純に一文字ずつ調べていくように書きました。
あとmmlってのがwxStringオブジェクトです。。




941 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 23:39:29 ]
阿呆か。第三引数は、この場合第一引数の長さの指定だろう。
www.cplusplus.com/reference/string/string/find.html
そもそも、findメソッド使いながら一文字ずつ調べようという発想が阿呆過ぎる。


942 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 00:08:18 ]
>>940
find は、i 文字目から探しはじめて、はじめにみつかった文字列を返す、ので、
i を1 ずつ加算していくとそりゃおかしくなるでしょうよ

943 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 02:45:11 ]
#include <iostream>
#include <string>

using namespace std;

int main(void)
{
string src = "aaaa\nbbb\nc\n\nddddd\n";
string::size_type pos = 0;
size_t count = 0;
while ((pos = src.find("\n", pos)) != string::npos) {
pos++;
count++;
}
cout << count << endl;
return 0;
}



944 名前:937 [2008/06/06(金) 14:26:46 ]
iを1ずつ加算していくのは他にちょっと事情があったからなのですが・・説明不足でした。
レスありがとうございました。解決しましたm(_ _)m

945 名前:デフォルトの名無しさん [2008/06/06(金) 15:05:22 ]
wxRichTextCtrl
を使ってみたんですが、マルチバイト文字をテキストコントロールのインターフェースに入力すると、なんか補完ウィンドウ?みたいのが出ます。

これを出ないようにしたいのですが、どうすればいいでしょうか。
リファレンス見ても分かりませんでした。


946 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:30:06 ]
MacOSX 10.6でCarbon廃止されたら、wxMacもなくなるのかなあ。

947 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 23:39:26 ]
10.6で廃止は早すぎるだろう?
そのうちなくなるかもしれないが、俺達にはwxCocoaがある!
未だまともに動かないwxCococaがっ

948 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 00:19:47 ]
誰も 32bit Carbon を廃止はしないだろう、そんなことしたら MS Office が動かなくなる

949 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 00:25:23 ]
MS Office以前にAppleがSnow LepardまでにOS Xの付属アプリを
全部 Cocoa ベースに置き換えられるとは到底思えないんだよなぁ…

950 名前:デフォルトの名無しさん [2008/06/08(日) 18:42:06 ]
>>945 です。
補完ウィンドウが出る、というか、日本語を打つと、書いた文字がスペースキーを押すと漢字変換が出来る状態になりますが、
その状態の文字が、文字を打った場所ではなく、なぜかテキストコントロールのインターフェースの一番上の行に毎回表示されてしまう、という現象のようです。(それを補完をウィンドウ?と455で言っていました。)
wxTextCtrlだと普通に打ったマルチバイト文字がその行に表示されるのですが・・wxRichTextCtrlだとなぜかこうなってしまいます。

解決方法見つからず困っています。どなたかアドバイスいただけると幸いです。




951 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 23:19:46 ]
>>950
wx のソースコードのバグを取って開発に貢献してください。

952 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 23:52:47 ]
バグというか実装されていない機能の中身おくったけどさ、
半年ぐらいしてパッチ当てるよーってメール着たんだが、さらに半年経っても当たる様子無い。
仕方ないんで、ソース取り出してクラス名変えて使ってるよ。

953 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 23:52:54 ]
自己解決しました

954 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 00:08:10 ]
自己解決したときはどう解決したかかいておいてください
あとで同じことにはまる人もいると思うので。

955 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 00:34:26 ]
自分のした質問じゃないのに「自己解決しました」とだけ書いて去っていく荒らしもいるから注意な。

956 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 03:26:30 ]
自己完結しました

957 名前:945 [2008/06/09(月) 11:31:24 ]
解決してません。

やはり自分もwxWidgets自体のバグなのかなと思うのでソースをいじってみることを考えているのですが、
スペースキーで漢字変換できる状態(うまい表現の仕方あったら教えてください・・)の文章の表示位置がおかしい、というのは、wxWidgetsとIMEの連携部分で何かおかしくなっている、ということなのでしょうか。
wxTextCtrlなら正常に動く感じなので、textctrl.hとrichtextctrl.hを比べてみたりしているのですが、どの辺りを見ればいいのか・・


958 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 18:00:33 ]
>>957
気になったので調べてみた。
どうやら wxRichTextCtrl は独自の処理を行っていて
riched32.dll などを使っていないようだ。
wxTextCtrl に wxTE_RICH(2) などを付加して作成すると
riched32(20).dll を使う仕組みになっているっぽい。

959 名前:957 [2008/06/09(月) 19:22:43 ]
貴重な情報ありがとうございます!
ドキュメントを色々読み直していたのですが、もしかしたら自分のやりたいことがwxTextCtrlでもできるかもしれないような記述を見つけたので、
wxTextCtrlをもうちょっといじってみようかと丁度思っていたところでした。

自分のやりたいことというのが、プログラマ向けのエディタによくある予約語の強調表示なのですが、
wxwindowsjp.sourceforge.jp/docs/html/wx/wx381.htm
ここに、
「例えば、1つ1つの文字に色やフォントを指定することも可能である
(ただし、Windows下では、スタイルをサポートするためにwxTE_RICHスタイルが要求されることに注意すること)。」
のように書いてあります。
さらにその下に

text->SetDefaultStyle(wxTextAttr(*wxRED));
text->AppendText("Red text\n");
text->SetDefaultStyle(wxTextAttr(wxNullColour, *wxLIGHT_GREY));
text->AppendText("Red on grey text\n");

のようなソースが示されていて、なんとなく感じは分かるのですが、
これだとインタフェースに文字を打ち込む際、特定の文字を打ち込んだ時リアルタイムに強調表示するようにできるのかどうか
(もちろんその文字を一部消したら、強調表示をリアルタイムで解除するようにもできるかどうか)分かりません。wxTextCtrlでこのようなことは出来るのでしょうか??質問ばかりですいません。


960 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 22:20:00 ]
wxWidgets 一般の話をしているのか、wxMSW の話をしているのか区別をしてくれ ...




961 名前:957 [2008/06/09(月) 23:15:37 ]
今はWindowsで開発しているのでwxMSWですが、
wxTextCtrlで強調表示機能実現できるかどうかってプラットフォームに依るのでしょうか??
wxTE_RICHはMSWでしか使えなくて、それ使わないと無理なので他のプラットフォームでは自動的にwxTextCtrlでは実現不可、ってことでしょうか。


962 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 11:19:56 ]
>>961
wxTE_RICH は wxMSW 専用。ほかの環境では意味をなさない。
(リッチエディットコントロールを使う指定だから)

>>959
入力した文字列をリアルタイムに強調表示したいのであれば、
OnChar(wxKeyEvent &)
あたりを使えばいいんじゃないかな。やってみないとわからないけど。

963 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 11:25:22 ]
>>961
ちょっと説明不足だったけど、強調表示などは
wxTE_RICH を指定しなくても wxTextCtrl::SetStyle() と
wxTextAttr を使えば、実現できるんじゃないかな。

964 名前:957 [2008/06/11(水) 00:01:42 ]
wxTextCtrl::SetStyle
wxwindowsjp.sourceforge.jp/docs/html/wx/wx381.htm#wxtextctrlsetstyle
「選択された部分の」スタイルを変更する。
この部分見逃していました。。

OnChar()ってのはMSW専用なんでしょうか。
msw/textctrl.h には書かれていますが普通のtextctrl.hには無いみたいです。
univ/textctrl.hってのにもありますが、univってのは何用なのか・・

でもとりあえずEVT_KEY_DOWNキーイベント用のハンドラをSetStyle()使って書けば実現できる気がしてきました。
ご丁寧に何度もありがとうございましたm(_ _)m

965 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 10:46:47 ]
>>964
univ ってのは、たぶん Universal Version のこと。
Windows の例で言えば、Windows のコントロールを使わず、
全部自前で処理するようにすること。
いろいろなプラットフォームで共通した動作をするようになる。


966 名前:957 [2008/06/18(水) 18:21:31 ]
なるほど、ありがとうございます。
返信遅れてすいません。

EVT_KEY_DOWN とか EVT_CHARとか使って強調表示機能っぽいものが出来始めたのですが、一つ分からないことが出てきました。

EVT_CHARは、ASCII文字の入力のタイミングは拾えるようなのですが、どうも全角文字の入力タイミングは拾えないみたいなんです。
全角文字でも強調表示したい単語があるので、全角文字が一字書き込まれる毎にそのタイミングを拾って、そのイベントが終了したらwxProcessEventでキャレット周辺の文字列を取得して、所定の文字列が含まれていたら強調表示〜みたいなことがしたいのですが、
そもそも全角文字入力の際に発生しているイベントはなんなのでしょう??

967 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:37:04 ]
>>966
2度EVT_KEY_DOWNが飛んできませんか?
内部で捨てていない限り2度飛んでくるので、
それを漢字1文字分にすればいいと思います。

968 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:14:50 ]
>>966
キー毎に強調表示するんでなくて、タイマーで1秒ごとに処理するとか ...






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<262KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef