5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

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

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

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

主な言語バインディング

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

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

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

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

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

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

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

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


9 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2006/10/03(火) 23:05:04
>>9
wxUSE_THREADSは1(初期値)のまんまですね
wxWidgets自体のバグの線が高そう
環境はmswです

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

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

13 :9: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 :デフォルトの名無しさん:2006/10/04(水) 02:56:03
それなら最初からスレッドでReadしっぱなしのほうがいいなw

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

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



 サ イ サ ゙ ー っ て イ可 ? 



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

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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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


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

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

38 :9: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 :デフォルトの名無しさん:2006/10/15(日) 18:42:04
MFCだってmfcのランタイムまでいれたら相当でかいな

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

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


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

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

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

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

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

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

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

50 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2006/11/09(木) 02:36:59
evt.veto

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

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

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

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

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

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

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

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

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

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

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

63 :デフォルトの名無しさん: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:2006/11/14(火) 14:19:45
>>59
うぃんどうず
率直なところ使い勝手はあまり良くない

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

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

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

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

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

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

70 :デフォルトの名無しさん: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 :毛の生えたブリーフ:2006/11/20(月) 20:42:19
http://wxbasic.sourceforge.net/

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

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

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

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

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

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

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

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

76 :毛の生えたブリーフ: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 :デフォルトの名無しさん:2006/11/21(火) 22:18:10
 サ イ サ ゙ ー っ て イ可 ? 

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

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

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

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



眠い・・・・('A`)

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

('A`) ドッチ?

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

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

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

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

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

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

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

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

90 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2006/12/31(日) 22:20:34
>>90
sourceforgeでバグレポできる。

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

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

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

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

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

97 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2007/02/15(木) 19:48:21
wxWidgets でクロスプラットフォーム GUIアプリを作ろう
http://namazu.org/~satoru/pub/uu-2004-08/

ここ参考にしました

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

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

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

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

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

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

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

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

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

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

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


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



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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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


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

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

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

138 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2007/03/04(日) 02:38:55
wxPanelとかから継承したら?

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

もっとくやしく。

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

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

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

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

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

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

181 :デフォルトの名無しさん: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:2007/04/08(日) 19:47:41
よくわからないんだけど。
kiconvってカーネルパッチでしょ?
コールゲート通過後の、カーネル空間に入っちゃったただのchar*のデータを
どうエンコード変換すべきか、どうやって判断してるんだ?

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

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

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

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

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

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

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

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

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

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

187 :179:2007/04/08(日) 20:19:48
例えば

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

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

ということなんだが。

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

これはオケ?

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

さあどれだw

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

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

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


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

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

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

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

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

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

いみが
わかりません。

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

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

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


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

釣り、なんだよね?

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

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

277 :271:2007/04/10(火) 22:00:13
>>274
>完璧な方式など無い

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

291 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2007/04/10(火) 22:41:05
>>291
ガンガレ
もっとガンガレ

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

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

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

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

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

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

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

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


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


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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

316 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2007/04/22(日) 13:01:11
そんなもん使うことあるか?
ゲーム作るんならどにみちバッファ直接書いたほうが早いぞ
DirectXより早いぞ

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

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

Cross-Platform GUI Programming with wxWidgets


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

してみたけど。

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

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

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

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

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

ネタになるだろ?

だれかやって味噌〜

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

ふふり

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

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

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

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

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

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

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

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

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

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

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

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

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


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

まじっすか・・・

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

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

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

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

英語が出来ないと辛い


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

当方、wxPython使い。

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

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

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

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

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

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

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

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

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

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

力を抜けよ。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

397 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2007/05/31(木) 15:15:37
SilverLight と wxWidgets が競合するようなものだと思ってるところが凄い…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

419 :415: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 :デフォルトの名無しさん:2007/07/18(水) 00:44:37
UbuntuだったらSynapticが最初から入ってるじゃないか

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

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

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

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

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

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

427 :デフォルトの名無しさん: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:http://www.mingw.org/bugs.shtml> for instructions.
make: *** [baselib_datetime.o] Error 1
---

以上です

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

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

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

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

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

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


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

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

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

435 :デフォルトの名無しさん: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: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 :デフォルトの名無しさん:2007/09/11(火) 05:05:49
>>435
あなたの疑問点とは違うが

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

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

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

438 :435: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 :デフォルトの名無しさん:2007/09/12(水) 13:31:59
特に話題もないので初歩的な話もありでは

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

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

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

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

が見間違えだった

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

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

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


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

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

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

447 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2007/10/01(月) 00:26:11
英語が読めないスーパーハカー

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

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

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

452 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2007/10/05(金) 08:36:04
>>452
neither will wxWidgets conflict with ~ は
wxWidgets will not conflict with ~ と読み替えると宜し。

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


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

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

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

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

458 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2007/10/16(火) 18:29:28
メインがダイアログかフレームかってこと?

462 :460:2007/10/16(火) 18:33:54
そうです。

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

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

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


465 :460:2007/10/17(水) 08:39:03
>>463
>>464

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

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

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


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

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

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

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

サンクス

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

いかにも遅そうだねえ。

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

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

490 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2007/11/01(木) 16:49:00
公開以前に、ライセンスを読んでもいない奴は使うな、が正しい。

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

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

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

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

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

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

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

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


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

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

wxHORIZONTAL

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

・・・ ・・ ・・ ・ ・・・

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

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

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

サンプル:console.cpp 3238行目

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

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

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

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

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

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

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


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

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

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

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

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

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

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


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

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


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

515 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2007/11/15(木) 00:48:08
make install してやってから
`wx-config --cxx` -o hoge.exe hoge.cpp `wx-config --cflags --libs`
みたいにしてコンパイルしれ

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

538 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2007/12/16(日) 22:57:22
>>538
またまたすいません。

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

540 :デフォルトの名無しさん: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:2007/12/17(月) 18:33:28
wxDevってコード補間ありますたorz

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

544 :デフォルトの名無しさん: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:2007/12/28(金) 10:18:15
あ、OnInitDialogは、Frameオブジェクトの生成された後、1回コールされると考えてあってますか?

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

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

549 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/07(月) 02:47:58
ライブラリorファイルが足りてないに一票


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

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

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

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

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

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

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

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

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


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

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

自分もここ
http://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 :デフォルトの名無しさん:2008/01/21(月) 03:02:40
あなたそりゃUNIXのシェルを前提としてる操作をWindowsのコマンドプロンプトで
やってもダメでしょうよ。

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

561 :デフォルトの名無しさん:2008/01/21(月) 11:16:12
回答ありがとうございます。
http://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 :デフォルトの名無しさん:2008/01/21(月) 11:33:27
>560 さん
回答ありがとうございます。MSYSは入ってます。
MSYSを導入して、rxvt上で実行 というのは、C:\MSYS\1.0\bin\rxvt.exe を立ち上げて
そこからg++ 〜 でコンパイルしろってことでいいんでしょうか。
家帰ったら試してみます。ありがとうございます。


563 :デフォルトの名無しさん:2008/01/21(月) 12:20:12
コンパイル云々の前に、そのまま素で
$ wx-config --cflags
とでも打ってみるんだな
どんな効果がでるか一発で分かる

564 :デフォルトの名無しさん:2008/01/21(月) 13:05:17
''wx-config' は内部コマンド外部コマンド、
操作可能なプログラムまたはバッチファイルとして認識されていません。
というエラーになります。。

565 :デフォルトの名無しさん:2008/01/21(月) 13:17:20
いや、だから、wxWidgets はユニックス系なので、
windows のコマンドラインじゃなくて
ユニックス系の shell でやらなきゃ ...

566 :558:2008/01/21(月) 14:00:43
>565さん
564は自分じゃないですよ。
多分あまりにも基本的な部分で間違ってるので他の方に茶化されたのだと・・

でも
> wxWidgets はユニックス系なので、
> windows のコマンドラインじゃなくて
> ユニックス系の shell でやらなきゃ ...
ここらへんわかってなかったのでご指摘いただけてラッキーでした。
ありがとうございます。

シェルの勉強等まだ手をつけておらずほぼ全く分からないもので・・
初心者質問ばかりしてすいません >564さん

>563さん
ありがとうございます。帰ったら試してみます。

567 :デフォルトの名無しさん:2008/01/22(火) 00:24:02
初心者なら、まずLinuxなりFreeBSDなりでやった方がいいよ。
Windowsでやるよりはるかに簡単だから。ネットの情報もほとんどUNIX系だし。

一旦それでやってればWindowsでもすぐできるようになると思う。
UNIX系の情報を見ながらWindowsで一発でやるには両方の知識が必要。

568 :デフォルトの名無しさん:2008/01/22(火) 02:55:34
実行ファイルににxrcを組み込むか、それと同等の事って出来ないでしょうか?
xrcの存在意義を無視してるのは分かるのですが、
ソースは簡潔&実行時にはファイル一つ、にどうしてもしたくて..

569 :デフォルトの名無しさん:2008/01/22(火) 05:10:43
ファイルひとつにこだわるならアーカイブ白と

570 :デフォルトの名無しさん:2008/01/22(火) 05:32:32
>>568
xrcのデータを実行ファイルに持たせることなら普通に出来る。ドキュメント読め。

571 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/22(火) 17:22:09
簡単にGUIアプリが作りたいだけなら、wxPython でやってみるって手もある。

573 :デフォルトの名無しさん:2008/01/22(火) 18:38:29
>>568に便乗質問なのですが、
xrcでフォームの位置やサイズをアプリケーション終了時に保存することはできますか?

574 :デフォルトの名無しさん:2008/01/22(火) 23:05:56
>>570
出来ました。ありがとうございます

575 :デフォルトの名無しさん:2008/01/23(水) 00:04:51
>>571
もうちっとコマンドラインとか、パスとか、そういうことを勉強したほうがいいと思うな ...

576 :デフォルトの名無しさん:2008/01/23(水) 01:05:42
>>572
そういえばマイナー同士の組み合わせの割には、wxPythonの日本語情報って
ググると意外に出てくるね。

577 :デフォルトの名無しさん:2008/01/23(水) 02:08:03
最近のが多いから
はじめたばかりの君は恵まれている
昔は見つからなかった

578 :デフォルトの名無しさん:2008/01/23(水) 02:15:24
なるほど。ということは、ちょっと前に「情報が少なかったのに頑張った」
猛者たちがあらわれたってことか。感謝感謝。

579 :デフォルトの名無しさん:2008/01/23(水) 05:26:51
っつーかwxHogehogeの中で一番楽なのがwxPythonな気がする

580 :デフォルトの名無しさん:2008/01/23(水) 08:53:58
今pythonがアツいってのもあるね
wxに限らずPyGTKやらPyQtやらで作られたアプリが増殖中

581 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/01/29(火) 19:13:42
C++標準の例外じゃダメなの?

584 :デフォルトの名無しさん:2008/01/29(火) 19:22:52
いや、それで良いのです。throw するのはC++の例外。
アプリの一箇所、一括でcatchしたいだけですが、どう書けば良いでしょう?

585 :デフォルトの名無しさん:2008/01/29(火) 23:17:40
int main()
{
try {
// main routine
}
catch(...) {
// error handling
}
}

586 :デフォルトの名無しさん:2008/01/29(火) 23:40:34
wxApp使った場合って、mainが隠蔽されてるんだっけ?
とするとwxApp::OnFatalExceptionとかがそうなのかなぁ。
ttp://wxwindowsjp.sourceforge.jp/docs/html/wx/wx30.htm#wxapponfatalexception

587 :デフォルトの名無しさん: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: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:2008/01/30(水) 10:44:40
あれ?例外が補足されなくなちゃったorz

592 :587:2008/01/30(水) 11:20:47
bool MyApp::OnOnExceptionInMainLoop() { throw; }
でMyApp::OnRun()のcatchに直通できた。
wxのエラーダイアログの中止ボタン押したときの処理もこうだから、
たぶんこれで問題ないと思う。

593 :582:2008/01/30(水) 11:28:06
>>592
あ、本当ですね。上手くいきました。

594 :582: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 :デフォルトの名無しさん:2008/01/30(水) 12:07:13
サンプルみつけました:

wxWidgets/samples/except
http://cvs.wxwidgets.org/viewcvs.cgi/wxWidgets/samples/except/
http://cvs.wxwidgets.org/viewcvs.cgi/wxWidgets/samples/except/except.cpp?rev=1.13&content-type=text/vnd.viewcvs-markup

596 :582:2008/01/30(水) 13:25:38
あれー、
>wxMac-2.8.7\samples\except
で、
コンソールからmakeしましたが、
アプリでThrowメニュー(int/string/object)を実行すると、アプリがエラーで吹っ飛びます。

どうも、wxMacのバグですね。
当面は、実行メニューをそれぞれtry-catchで囲んでおきます。
開発中にcatch内容が変わったりすると、メンドイですね。

597 :デフォルトの名無しさん:2008/01/30(水) 15:29:47
http://www.wxwidgets.org/docs/technote/patches.htm

598 :デフォルトの名無しさん:2008/01/31(木) 16:16:31
すいません質問させて頂きたいのですが、
http://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 :デフォルトの名無しさん:2008/01/31(木) 17:14:43
対症療法だが日本語使うのをやめろ

600 :デフォルトの名無しさん:2008/01/31(木) 22:16:10
てかエラーメッセージ読めよ…

601 :デフォルトの名無しさん:2008/01/31(木) 23:01:50
レスありがとうございます。

エラーメッセージ読んでますが読んで意味が分からなかったので質問させて頂きました。
エラーメッセージで検索したりもしてみたんですが関係ありそうなのが出てこなかったので・・

日本語ですか。特に使ってないと思うのですが・・


602 :デフォルトの名無しさん:2008/01/31(木) 23:02:14
レスありがとうございます。

エラーメッセージ読んでますが読んで意味が分からなかったので質問させて頂きました。
エラーメッセージで検索したりもしてみたんですが関係ありそうなのが出てこなかったので・・

日本語ですか。特に使ってないと思うのですが・・


603 :デフォルトの名無しさん:2008/01/31(木) 23:17:53
英語が読めないならば、エラーメッセージを英日翻訳ソフトに入れると良いかもよ。
ascii文字以外が入っているかもう一度確認して見てください。
ascii文字の意味はわかりますか?


604 :デフォルトの名無しさん:2008/01/31(木) 23:44:01
親切にありがとうございます。
いえ、英語は分かるのでエラーメッセージの翻訳はできるんですが、それでも意味が分からないということなんです。
ASCII文字は分かります。
「ascii文字以外が入っているか」っていうのは、どこを確認すればいいのでしょう??

605 :デフォルトの名無しさん:2008/01/31(木) 23:56:32
インターフェースに日本語つかってるということなんじゃないの?
アルファベットだけつかったつもりでも、
まちがって全角スペースが入るということもあります

606 :デフォルトの名無しさん:2008/02/01(金) 00:03:41
>>602
直接的な答えじゃなくて申し訳ないけど、俺がやるなら:

・エラーメッセージを出力している部分の wxGlade のソースコードを読む
・エラーが出なくなるまでウィジェットを減らしてみる

607 :デフォルトの名無しさん:2008/02/01(金) 00:11:46
ソースファイルを1バイトずつ読み込んで値が全部0以上127以下になってるか調べればいいと思うよ

608 :デフォルトの名無しさん:2008/02/01(金) 01:42:06
解決しました。
単純にコードを吐き出すパスに「デスクトップ」が入っていただけでした・・汗
回答くださった方々ありがとうございましたm(_ _)m

609 :デフォルトの名無しさん:2008/02/01(金) 03:11:59
これはずっこけざるを得ない. まぁありがちだとは思うが.
ubuntu-jpも余計なことしてくれるよな. 'デスクトップ'は英語名に直しとき.

610 :デフォルトの名無しさん:2008/02/01(金) 04:05:20
デスクトップで作業してんじゃねーよ、カス


611 :デフォルトの名無しさん:2008/02/01(金) 09:53:13
まあ、トラブルの原因のほとんどは「単純」なミスだよね

612 :デフォルトの名無しさん:2008/02/02(土) 17:49:53
fedora8のwxwidgets(2.8.4)で
wxDirPickerCtrlで起動後初回の選択のみ反応しないのですが,
(GetPathに反映されず,ハンドラも呼ばれない)
同じような症状の方いませんでしょうか?
使い方でミスをしてるのか,バグなのか分からなくて困ってます.

613 :デフォルトの名無しさん:2008/02/03(日) 02:36:57
今ようやくHello,worldが作れたんだけれど、66KBだった。
4MBぐらいになるってどこかに書いてあったのだけれど。


614 :デフォルトの名無しさん:2008/02/03(日) 03:13:40
静的リンクだとMBになるよ

615 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/02/03(日) 03:26:45
>>615
>特別なにもしてないと静的リンクにならないんでしょうか。

つ ldd

617 :デフォルトの名無しさん:2008/02/03(日) 03:52:29
>>615
>>558-563

618 :デフォルトの名無しさん:2008/02/03(日) 04:42:37
スレ違い
C初心者スレ池


619 :デフォルトの名無しさん:2008/02/03(日) 04:58:13
>>615
>今度は何も生成してくれない。
>のはなんででしょう。。

太陽が眩しかったから

620 :デフォルトの名無しさん:2008/02/03(日) 09:23:53
Linux が素人にも使いやすくなって、Windows のコマンドラインと
Unix のシェルの違いもわからないひとが GUI プログラムを
コンパイルできるようになったというのは良いことなのやら悪いことなのやら ...

621 :デフォルトの名無しさん:2008/02/03(日) 10:04:57
ただの馬鹿なのが問題なんだ。
たとえ素人でも疑問を追及する意思があれば間抜けな質問を垂れ流したりはしない。


622 :デフォルトの名無しさん:2008/02/03(日) 17:02:57
>>612について情報をお持ちの方は居ませんでしょうか…

623 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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:2008/02/10(日) 08:16:38
orz…
EVT_BUTTON(wxID_OK, MyFrame::OnExit)

EVT_BUTTON(wxID_EXIT, MyFrame::OnExit)

627 :デフォルトの名無しさん:2008/02/10(日) 13:07:31
>>623
おれはDECLARE_EVENT_TABLE()とかの後ろにセミコロンを置いてる。

628 :デフォルトの名無しさん:2008/02/12(火) 09:52:51
wxWigetsのiniファイル読み書き専用関数とかあるんでしょうか?


629 :デフォルトの名無しさん:2008/02/12(火) 13:20:18
>>628
http://wxwindowsjp.sourceforge.jp/html/2.8.4/wx_wxfileconfig.html

630 :628:2008/02/12(火) 13:24:31
サンクス。やっぱこういうのが標準であると便利ですよね。

631 :デフォルトの名無しさん:2008/02/12(火) 18:16:41
wxWigetsのStringListはありますか?

632 :デフォルトの名無しさん:2008/02/12(火) 19:43:35
>>631
つ wxArrayString

633 :631:2008/02/13(水) 09:46:38
有難うございます。

wxArrayString.Text (Itemを改行コードを挟みながら連結)みたいなメソッドは無いんですね。
自作するしか無いか。


関係ないけど、やっぱ改行コードってC++のendlを使いますよね?
まさか、wxWidgetsで、CRとかLFをラップしてくれてたりしないですよね?

出来れば、wxWidgetsが改行コードのグローバル変数を持ってて、
初期処理でどのプラットフォームでもCRLFで初期化してやろうかと思ったのですが。

634 :631:2008/02/13(水) 09:50:17
>関係ないけど、やっぱ改行コードってC++のendlを使いますよね?

wxWidgetsのヘルプ読んでると、
>std:string互換関数の利用が強く推奨される!
>そして遅かれ早かれstd::stringを使い始めるであろうwxWidgetsの将来のバージョンとの互換性を保つ.
とあるから、
wxStringより、std::string推奨なんですね。

文字列についてはC++の標準を使えって意味は分かるけど、std::stringって機能が弱いおね。

635 :デフォルトの名無しさん:2008/02/13(水) 10:57:42
>>634
>std::stringって機能が弱いおね。
たとえばどんな?

636 :デフォルトの名無しさん:2008/02/13(水) 11:00:08
std::stringだと、

string str1;
str1 = "a" + (string)"b";
みたいに書けないことない?(自分の勉強不足かも)

それとか、UpperCaseが無いわけじゃないけど、書きにくかったりとか。

637 :デフォルトの名無しさん:2008/02/13(水) 11:11:28
string std::operator+(const char *lh, const string &rh);
は標準で入ってたと思う。

638 :デフォルトの名無しさん:2008/02/13(水) 11:18:50
あ、+ 演算子は実装されてますか。

gccでエラーだったんですが。(勘違いかも)

639 :デフォルトの名無しさん:2008/02/13(水) 11:47:01
MinGW gcc3.4.5では大丈夫だね。

640 :デフォルトの名無しさん:2008/02/13(水) 16:26:50
STLって、MemoryStreamみたいな可変バイト列ってありましたっけ?

vector char とかするのかなぁ?

(ちょっとスレチ)

641 :デフォルトの名無しさん:2008/02/13(水) 16:41:34
stringstream

642 :デフォルトの名無しさん:2008/02/13(水) 16:48:22
>>641

どうも。それ使います。insertメソッドとかもありますね。
NULLで切れないと信じて。

643 :デフォルトの名無しさん:2008/02/13(水) 18:30:57
>string str1;
>str1 = "a" + "b";
は書けます。

>str1 += "a" + "b";
は書けないんですね。

ちょっと不便。

644 :デフォルトの名無しさん:2008/02/13(水) 19:04:47
全然

645 :デフォルトの名無しさん:2008/02/13(水) 20:10:56
べつに

646 :デフォルトの名無しさん:2008/02/13(水) 20:38:05
str += "a";
str += "b";
は出来るだろ。
ていうかC++スレでやるべきだと思うんだ・・・。

647 :デフォルトの名無しさん:2008/02/13(水) 21:58:27
ま、C++だしな。
そのへん楽したかったら、
wxPython
wxErlang
wxHaskell
wxLua
wxPerl
wxRuby
wxSqueak
wx4j
wxJavaScript
あたり使ったらいんじゃね?

648 :デフォルトの名無しさん:2008/02/13(水) 22:16:15
C/C++は
"a" "b"
って書いたら
"ab"
って書いたのと同じだけどな。
リテラルだけだが。

649 :デフォルトの名無しさん:2008/02/14(木) 10:58:06
> wx4j

へえー、4j ってプログラミング言語があったのか・・と思った
ググって見ると、・・このスレのテンプレにすでに書いてあった・・

650 :デフォルトの名無しさん:2008/02/15(金) 17:55:06
1、プロセスを跨いだ書き込みができるコンソールクラスはありますか?
 (wxで無くともポータブルなら何でもかまいません)

2、↑を押すと以前選択された文字列が出てきたり、
  選択可能な文字列群を設定すればtabキーで勝手に補完してくれる
  なんちゃってシェルのようなクラスはありませんか?

よろしくお願いします。

651 :デフォルトの名無しさん:2008/02/15(金) 20:59:46
2番目はreadlineじゃ駄目なのか?

652 :デフォルトの名無しさん:2008/02/16(土) 00:34:08
>>651
readlineってこういう事に使うライブラリなのですか。
初めて知りました^^

これで全然問題ないです。
どうもありがとうございました。

653 :624:2008/02/16(土) 00:48:57
>>625 さん
返信めちゃくちゃ遅れてすいません。
ご指摘された通り直したら意図した通りに動きました。
ありがとうございましたm(_ _)m

654 :デフォルトの名無しさん:2008/02/16(土) 01:22:37
>>652
readline はガチガチの GPL なので、代わりにより自由な libedit をお勧めする

http://sourceforge.net/projects/libedit/

655 :デフォルトの名無しさん:2008/02/16(土) 09:51:47
>>654
自分も探しましたよ。ストールマンの呪縛から逃れるために^^

そこのlibeditの最終リリースが2001年8月だったので
何じゃコリャと思ってしまったのですが、
Googleで探してみるとちゃんと新しいのもあるみたいですね。
ただ、マルチバイトが使えない&直すのは難しくないが「需要がない」
という内容のMLを見たときは少しびっくりしました。

656 :デフォルトの名無しさん:2008/02/16(土) 12:28:10
たしかにコンソールで日本語打ちたいと思うケースはあまりない


657 :デフォルトの名無しさん:2008/02/16(土) 13:05:57
> cd C:¥デスクトップ¥夏休みの宿題¥プロジェクト1¥宇宙シミュレータ
> bigbang.exe 初期値1.xls > 結果1.xls

658 :デフォルトの名無しさん:2008/02/16(土) 13:46:08
後々ターミナルからアクセスすることを考えると日本語ファイル名は打つのめんどくさいから付けない

659 :デフォルトの名無しさん:2008/02/16(土) 13:48:26
ubuntuの「デスクトップ」をどうにかしてください

660 :デフォルトの名無しさん:2008/02/16(土) 13:58:16
>>658
自分で作らなくても、仕事だと嫌ほど受け取る。


661 :デフォルトの名無しさん:2008/02/16(土) 14:52:22
>>655
あとは Tecla というのもあるよ
マルチバイトが使えるかは知らないけど…

http://www.astro.caltech.edu/~mcs/tecla/

662 :デフォルトの名無しさん:2008/02/16(土) 23:17:58
>>659
ディレクトリ名書き換えれたけど

663 :デフォルトの名無しさん:2008/02/17(日) 02:32:40
2.8.7リリースされてるけど最近は流行ってないの?

てかスレ違い?

664 :デフォルトの名無しさん:2008/02/17(日) 02:33:33
ごめん微妙に誤爆

665 :デフォルトの名無しさん:2008/02/17(日) 04:03:32
というか、流行ってた頃ってあったの?

666 :デフォルトの名無しさん:2008/02/17(日) 15:01:23
気づかずにお世話になってる人はいると思うがね
vlcとか

667 :デフォルトの名無しさん:2008/02/17(日) 21:57:27
vlcねぇ〜
あれってなんであんなにバイナリのサイズが小さいの?
VCとかで作ってるとどんなに気を使ってもMBサイズの大きさになってしまう・・・


668 :デフォルトの名無しさん:2008/02/17(日) 22:01:05
libwxwidgets_plugin.dll
2.66 MB (2,793,984 bytes)

こういうカラクリ

669 :デフォルトの名無しさん:2008/02/17(日) 23:55:57
あー、もしかしてライブラリをビルドするときにDLLでビルドすればいいのか
納得しました

670 :デフォルトの名無しさん:2008/02/18(月) 02:15:57
実行ファイルさえ小さければDLLが多少でかくてもそんなに文句は出ないという
意外と盲点かもしれないね

671 :デフォルトの名無しさん:2008/02/18(月) 23:25:28
てかサイズ大きくてもいいからDLL1ファイルだけってできないん?

672 :デフォルトの名無しさん:2008/02/18(月) 23:45:30
MONOLITHICのSHAREDじゃ駄目なのか。
試したことないが。

673 :デフォルトの名無しさん:2008/02/19(火) 18:56:33
wxWidgets用のRADツールはWinでならどれ使うのが良いでしょうか?

674 :デフォルトの名無しさん:2008/02/19(火) 20:28:21
どれを、と言うほど選択肢あるのか?

wxGlade, wxFormBuilder, wxDesigner, wxSmith, VisualWx...

あ、結構あるなw

675 :デフォルトの名無しさん:2008/02/19(火) 20:39:39
wxWorksってのも違うの?

676 :デフォルトの名無しさん:2008/02/19(火) 22:38:31
比較サイト見っけた
http://wiki.codeblocks.org/index.php?title=Comparison_of_wxSmith_features

677 :デフォルトの名無しさん:2008/02/19(火) 23:59:22
いやいや、DLL分けた分起動遅くなるだけじゃん。
Linuxのように、ディス取り標準ビルドの共有ライブラリが一つあってそれが基準になるなら良いけど、
Windowsではオレオレビルドのdllがまかり通るからstaticリンクが無難。

678 :デフォルトの名無しさん:2008/02/20(水) 01:17:48
wxってsetup.hでビルドオプション変更できるみたいだけど、
Linuxで共有ライブラリのビルドオプションが気に入らなかったら、
staticリンクにしろってことでいいのかな?

679 :デフォルトの名無しさん:2008/02/20(水) 11:10:38
>>678
UN*X 系は RUNPATH や LD_LIBRARY_PATH で対処する方が多いんじゃないかな。
wx みたいな、でかいライブラリを static にする事は殆ど無いと思うよ。

680 :デフォルトの名無しさん:2008/02/22(金) 01:10:25
wxPythonの2.6なのですが、
gridの任意のセルに、Ctrl押し下げ+マウスの左クリックイベントを送りたいのですが
どのようにすればいいですか?
だれかとっかかりだけでも教えてください。お願いします。

681 :デフォルトの名無しさん:2008/02/23(土) 03:00:16
wxDev-C++いれてみたけど
かなり頑張ってるな。


682 :デフォルトの名無しさん:2008/02/23(土) 20:04:15
wxwidgetsってエラーが出てコンパイルできねーんだけどやる気あんのか中の人。

683 :デフォルトの名無しさん:2008/02/23(土) 20:08:42
>>682
おまえはやる気あんのか?

684 :デフォルトの名無しさん:2008/02/24(日) 10:02:28
C言語でクロスプラットフォームなGUIプログラミングしようと思ったら
wxWigets or QT or GTK どれが良いですか?

wxWigets の環境をうまく作れなかったので、QT入れてみたのですが・・・。

685 :デフォルトの名無しさん:2008/02/24(日) 10:26:47
初体験するなら、恋人、ナンパ娘、風俗嬢の誰がいいですか?
恋人をうまく作れなかったので、風俗嬢に挿れてみたのですが・・・。

686 :デフォルトの名無しさん:2008/02/24(日) 10:31:45
>>684 が挙げた3つの中でC言語なのはGTK+だけ

687 :デフォルトの名無しさん:2008/02/24(日) 11:55:18
妹に一緒にお風呂に入ろうと誘われたんですがどうすればいいですか?

688 :デフォルトの名無しさん:2008/02/24(日) 15:11:32
>>685
初体験なのに3つも選択権をもっているような人は
このスレに来てはいけません

>>687
具体的に何を迷っているのか分からない。
なぜ考える必要があるの?

689 :デフォルトの名無しさん:2008/02/24(日) 16:07:33
妹=42歳(千代大海似)

690 :デフォルトの名無しさん:2008/02/24(日) 19:56:56
wxを使ってMindmapエディタを自作したいと思ってるんですが、
複数のテキストボックス(サークル)間にリンクを張って
表示するのに便利なモジュールってありますか?
# うまく説明できなくてすみません。

snapshotを見ると、UML図を書けるようなアプリはあるようですが、、、

691 :デフォルトの名無しさん:2008/02/24(日) 22:22:27
そんな程度の考えでマインドマップ作ろうってのは無謀な気がするが
それはおいとくとして、
けっこうプラットフォームによってまちまちな部分があるので、
マルチプラットフォームを考えてるなら、ありもののパーツで
なんとかならない場合はwxはやめといた方がいいかも。
たとえばマインドマップとかペイントソフトとかだとキャレットの操作が必要になると
思うけど、Win版はちゃんとネイティブのキャレットを操作してるが
GTK版なんかは自前でキャレットらしき棒を描く場所を変更してるだけ。

692 :デフォルトの名無しさん:2008/02/25(月) 00:33:32
wxGladeのTextCtrlのlayoutプロパティでoptionっていう項目がありますが、これってなんの値なんでしょうか??

693 :デフォルトの名無しさん: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:2008/02/26(火) 08:35:58
コンストラクタ内でMoveEventが呼ばれ(たぶんCenter関数)
その時にはまだ子ウィンドウが生成されてなかった。

しかも初期化が完了してない無効なポインタだったので
当然エラーということだった

コンストラクタで始めに関数が呼ばれる前に
事前初期化してないとエライことになる可能性があるという教訓でした。


697 :デフォルトの名無しさん:2008/02/26(火) 16:20:52
メニューのフォントを変更しようと思い、
wxMenuBarにフォント設定したけど反映されない・・・
なぜ・・・

698 :デフォルトの名無しさん:2008/02/27(水) 09:25:53
wxMenuBar

wxWindowsを継承しるのになんでそのフォント使わないで
インラインで別のフォント使うのか理解できん。



699 :デフォルトの名無しさん:2008/02/27(水) 11:01:34
早くwx-usersに要望を出す作業に戻るんだ

700 :デフォルトの名無しさん:2008/02/27(水) 21:31:15
メニューバーが自前で描画するモノなんかあったっけ?

701 :デフォルトの名無しさん:2008/03/01(土) 00:38:09
wxWidgetsってWindows Mobile環境でも動作するんでしょうか?
あと、その場合、バインディング言語(wxPython等)でも利用可能なんでしょうか?

702 :デフォルトの名無しさん:2008/03/01(土) 09:36:44
http://wxpyce.wikispaces.com/

703 :701:2008/03/01(土) 09:55:26
>>702
サンクスです。

704 :デフォルトの名無しさん:2008/03/03(月) 01:02:32
あるウィンドウのZオーダーを動かしたい(一番手前に表示したい)
のですがどうやればいいのでしょうか?
よろしくお願いします。

705 :デフォルトの名無しさん:2008/03/03(月) 01:36:52
>>704
Raise()

706 :デフォルトの名無しさん:2008/03/03(月) 18:51:07
2年以上開発版のままだったCode::Blocksが2/28に8.02をリリースしてた。
http://www.codeblocks.org/


707 :デフォルトの名無しさん:2008/03/03(月) 18:52:50
使えそう?

708 :デフォルトの名無しさん:2008/03/03(月) 19:22:07
>>705
できました。ありがとうございました

709 :706:2008/03/03(月) 20:05:07
>>707
Fedora8で昔使ってみたときのプロジェクト試してみたけど、
Buildしたときのerrorとwarningが入れかわってる気がする。一応動いたけど。
ちょっと前にチェックしてたけど、
2、3日に一回くらい開発版だしてて追いつけなかったからリリースをまってた。
いろんなOSで動くところが好きなので、そのうち本格的に使うかも。
macportsにもきてた。


710 :デフォルトの名無しさん:2008/03/04(火) 01:37:13
wxGladeで画面を作成しているのですが、
widgetを配置する画面(Frameをダブルクリックして出てくる画面)に、
配置してあるボタン等が収まりきらなくなりました。
しかしながら、Previewで見るときちんと全部収まっています。
Panelを削除するとこの現象は出ないのですが、どこか作り方が
おかしいのでしょうか?
どなたか教えてください。


711 :デフォルトの名無しさん:2008/03/04(火) 01:50:20
>>710
Previewの方が正しい。
wxGladeを立ち上げ直すと直ることもある。
けど,まあそんなもんだと思っている。

712 :710:2008/03/04(火) 23:36:30
>>711
レスありがとうございます。
そうですか。
Panelを捨ててしまうと、タブ移動が出来なくなるので困っていました。
wxGladeのバージョンアップに期待というところでしょうか?
sizerの入れ子の数とかでおかしくなるのかなー。

713 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/03/15(土) 20:02:14
事故解決した
Wx::Frame#get_menu_bar
ちぅのがあるのね…

716 :デフォルトの名無しさん:2008/03/16(日) 09:00:11
widestudioとどっちがいいですか??

717 :デフォルトの名無しさん:2008/03/16(日) 17:25:52
どっちがいいか言い切れるんならもう片方は消滅してるよ

718 :デフォルトの名無しさん:2008/03/17(月) 02:22:43
wx-gladeでseparate for each classというオプションにチェックを入れてコードを吐かせてみたのですが
wxAppクラスを継承したMyAppクラスの宣言部がmain.cppとして一個増えただけでした。

http://www.h3.dion.ne.jp/~k5_n/wxwin/memo/ver0_0.html
このページみたいにモジュールを分割していきたいのですが、wxTextCtrlを継承させる予定のwxTextCtrl2クラスのコードを別ファイルで吐かせたりするにはどうすればよいのでしょうか。


719 :デフォルトの名無しさん: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: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:2008/03/19(水) 16:07:02
みつけますた ---> ttp://wxwindowsjp.sourceforge.jp/docs/html/wx/wx30.htm#wxappargv

725 :723:2008/03/19(水) 16:29:58
で、wxAPPのインスタンスってダイアログ側からどうやって取るんでしょう?


726 :デフォルトの名無しさん:2008/03/19(水) 16:33:30
::wxGetApp

727 :デフォルトの名無しさん:2008/03/19(水) 16:44:51
thx!>>726
orz

728 :デフォルトの名無しさん:2008/03/20(木) 13:36:28
>>722
デリミタは、wxFileName::GetPathSeparator()

実行ファイルディレクトリは、
wxFileName exepath(wxStandardPaths::Get().GetExecutablePath());
wxString exedir = exepath.GetPath();
でexedirに入る。


729 :718:2008/03/20(木) 19:48:39
>>719さん
レスありがとうございます。試してみます!
お礼遅れてすいません。


730 :729:2008/03/20(木) 19:58:09
と・・調べてみたのですが、custom widgetsってwx-gladeのパレットに新しい項目追加するような感じで自分でカスタムしなければいけないのですね。
これだとクラス継承する毎にパレットに追加しなくてはならなくなりますよね。。(当然ですが)

クラス継承して使いたい場合、みなさんどうやってコードを書いているのでしょうか??
自分で継承して作ったクラスを全部wx-Gladeで描画できるようにするのはけっこう面倒くさそうですし・・
あんまりファイル分割しない方がいいんでしょうか。
それとも、wx-gladeはあんまり使わない、とか・・


731 :デフォルトの名無しさん:2008/03/20(木) 20:29:23
wx-gladeはあんまり使わない

732 :デフォルトの名無しさん:2008/03/20(木) 20:50:35
wxFormBuilderがおすすめ
適当なコントロールから継承したカスタムコントロールやウィンドウなら、
継承元の見た目で作って、クラスを指定してヘッダファイル名まで指定できる。

733 :デフォルトの名無しさん:2008/03/20(木) 22:55:02
>>728
有難うございます。まだ調査している最中だったので助かりました。

>>732
そうなんですか。。。
知らなかったのでwxDev C++ を使ってますorz



734 :デフォルトの名無しさん:2008/03/21(金) 15:19:46
Windows環境だと、
>std::string str;
>wxString wstr = str;
と書けるんですが、
wxMacだと、
>wxString wstr = str.c_str();
と書かないとコンパイル通らないみたいです。

何でだろ。。。

735 :デフォルトの名無しさん:2008/03/21(金) 16:09:27
ユニコードを使ってるかどうかかな?

736 :734:2008/03/21(金) 16:19:02
あ、なるほど。>>735

wxMacは、環境設定でユニコードをオンにしてmakeしたようなかすかな記憶。
Windows版は、wx-debcppをインスコしただけだったような記憶。

この問題って難しい問題ですね。

737 :デフォルトの名無しさん:2008/03/21(金) 23:32:17
すみません。初心者です。
wxDev-C++で作成したコードをLinuxでコンパイルできますか?
できるとしたら、makefileは自作ですか?
分かる方がいましたらよろしくお願いします。

738 :デフォルトの名無しさん:2008/03/21(金) 23:59:59
自作でもいいが、autotools(automake/autoconf)あたりがおすすめ

739 :デフォルトの名無しさん:2008/03/22(土) 04:43:56
wxが採用してるbakefileがいいんじゃないの。

740 :デフォルトの名無しさん:2008/03/22(土) 10:55:32
>>738 >>739
ありがとうございます。試してみます。
まず、configure自体を知らないとダメなんでしょうね。勉強します。

741 :730:2008/03/23(日) 13:31:54
情報ありがとうございます!
wxformbuilder、インストールしてみようと思ったのですが

Dependency is not satisfiable libwxbase2.8-0

とエラーが出てインストールできず・・

libwxbase2.8-0の再インストールとかしてみたのですがダメでした。
解決方法分かる方いらっしゃったら教えて頂けるとありがたいのですが・・

742 :デフォルトの名無しさん:2008/03/23(日) 14:07:53
wxのC言語バインディングってないのかのう?

743 :デフォルトの名無しさん:2008/03/23(日) 15:26:47
>737
wx-configを調べてみて
wxConfigクラスではなくてwx-configってコマンド

744 :デフォルトの名無しさん:2008/03/23(日) 15:26:51
>>741
とりあえず、ver3 RC8を落として、解凍すればインストールいらないのでは?
http://downloads.sourceforge.net/wxformbuilder/wxFormBuilder_v3.0.56-RC8-archive.exe?download
wxFormBuilder.exe起動したら動いたよ?ソースからビルドしようとしてる?

745 :デフォルトの名無しさん:2008/03/23(日) 21:33:15
>741
ちょいと使ってるOS回りの詳細を書いてくれ
なんとなくLinuxじゃないかと思うが、だとすっとdistroとバージョンは?

746 :デフォルトの名無しさん:2008/03/23(日) 21:59:32
wxDev-C++でデバッグしていて、ブレイクポントの2、3ステップ先で止まる
んですけど、こういうもん?Code::Blocksの方が使いやすいですかね?(Windowsです)

747 :デフォルトの名無しさん:2008/03/23(日) 22:01:31
>>741
>Dependency is not satisfiable libwxbase2.8-0
の時点でUn*x系だろうけど…
wxがちゃんと動いてるなら自前でビルドした方が良いんじゃないか?

748 :730:2008/03/23(日) 22:34:56
ご親切にありがとうございます!

OSはUbuntuで7.10です。wxWidgets自体は動いてます。

http://downloads.sourceforge.net/wxformbuilder/wxFormBuilder_v3.0.56-RC8-archive.exe?download
の方、試しに落として起動しようとしてみたのですが、エラーが出て起動できませんでした。

自分が落とそうとしていたのはこっちです。
http://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

と言われます。

http://ubuntuforums.org/showthread.php?t=536984
とか
http://www.developpez.net/forums/showthread.php?t=369200 (イタリア語・・?)
とか見て色々試してみたのですが、解決しません・・

wxwidets の導入に手間取って、色んなパッケージのインストールとアンインストールを繰り返しまくってたのでなんか完全にインストールできてない状態になっているのかなと思ったのですが、libwxbase2.8-0をSynapticで完全削除後再インストールしても状況変わらず・・。

sudo apt-get install libwxbase2.8-0 でも 既に最新のパッケージです と言われてしまう状態です。


749 :デフォルトの名無しさん:2008/03/24(月) 01:25:04
>>748
ダウンロードしたら、パッケージのあるディレクトリ行って
%sudo dpkg -i wxformbuilder_3.0.56-0ubuntu1dapper1_i386.deb
みたいな感じじゃなかったか
…物凄い基本だった気がするが、Linuxやめちゃったからよく覚えてないや

つーかWindowsバイナリ走らせようとするなwwww

750 :デフォルトの名無しさん:2008/03/24(月) 01:25:44
Linuxじゃない、Debianだ

751 :デフォルトの名無しさん:2008/03/24(月) 08:27:41
debでインストールしようとするならubuntuスレで聞け

./configure & make & sudo make install
ならこのスレでもok...か?

752 :730: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 :デフォルトの名無しさん:2008/03/26(水) 18:13:28
wxWidgetsのUTF-8版はありますか?

754 :デフォルトの名無しさん:2008/03/26(水) 18:22:01
>>753ググレカス
http://www.wxwidgets.org/wiki/index.php/Development:_UTF-8_Support

755 :デフォルトの名無しさん:2008/03/27(木) 02:19:49
すみません。wxDev-C++でBreakPointに止まってくれないのですが、そういう症状出たことある人いますか?
バージョンは6.10です。VB感覚で作成できそうなので、残念です。
もしwxDev-C++が候補から外れると、
Code:Blocksを使ってみようかと重うのですが、そちらはちゃんとデバッグできますか?

756 :753:2008/03/27(木) 08:58:47
>>754
ありがとう。
UTF-8は目標ですか。

AnsiToUnicode/UnicodeToAnsiみたいな関数が欲しいですが、
wxWidgetsにあるんだろうか。。。

>>755
そういう症状でます。
自分の場合、ターゲットOSのデバッガでデバッグできました。
デザイン用のGUIエディタと割り切って、デバッグIDEは別のものにしてみたら?

757 :デフォルトの名無しさん:2008/03/27(木) 10:08:28
何でwxWidgetsだけで何でもかんでもやろうとするんだ・・・

758 :デフォルトの名無しさん:2008/03/27(木) 11:24:28
>>756ググレ(ry
・・・っていうかAPIリファレンスくらい目を通しておけ
http://wxwindowsjp.sourceforge.jp/html/2.8.4/wx_wxstring.html#wxstringwcstr

UTF-8の事だけど、試してないから正確なことはわからないが
未完成なだけで、一応使えるんだろ?
これから使うんだったら報告よろ



759 :756:2008/03/27(木) 11:53:38
>>758
さんくす。

実際にwxConvUTF8.使ってるサイトハッケソ
ttp://diary.imou.to/~AoiMoe/2004.09/middle.html
今すぐ動作させてみます。



関係ないけど、マニュアルのuft8_strを使うとコンパイルエラー、みたいな。

760 :756: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 :デフォルトの名無しさん:2008/03/27(木) 17:01:21
Windows上で使っています。
wxWidgetsでIMEを制御する方法があったら教えてください。

TextCtrlにフォーカスが移ったらIMEがONになる、などの使い方がしたいです。

762 :デフォルトの名無しさん:2008/03/27(木) 17:23:15
>>760
気分転換にデバッガで追ってみた
原因はよくわからんが文字列に日本語が入ってるのがいかんらしい
"UTF-8String"で問題なかった

>>761
公式にはないようだから
自分で作るか適当に探してみ

あとwxTextCtrlはデフォで日本語入力ができるから
IMEが制御できてもあんまり意味ないとおも

763 :761:2008/03/27(木) 17:36:16
>>762
ありがとうございます。
数値を入れるTextCtrlではIMEが自動でOFFになる、と説明すればよかったです。
ググっても出てこないので、自作の道を考えてみます。

764 :760: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:2008/03/27(木) 18:44:31
>wxUSE_UNICODE
を定義してコンパイルすると、

>catch (std::logic_error &e) {
> wxMessageBox(wxT(e.what()), wxT("Error"), wxOK);
>}

といったwxMessageBoxがコンパイルエラー起こすんですが、何でですか?
ソースコードのファイルはSJISですが関係あるのかなぁ。


766 :760:2008/03/27(木) 18:53:43
あれ、wxDev-C++で、新規プロジェクトを作った直後wxUSE_UNICODEをつけてmakeすると、
コンパイルは通るけど、リンクエラーだ。
なんか難しいなorz

767 :デフォルトの名無しさん:2008/03/27(木) 18:59:21
>>766
wxDev-C++なんてよくわからないもの使わないでVC++を使ってください

768 :デフォルトの名無しさん:2008/03/27(木) 22:22:51
>>765
ソースがSJISならwxConvUTF8は使えないと思う

769 :755:2008/03/27(木) 23:57:05
>>756
ありがとうございます。デザインだけwxDev使えば良いんだね。
そういう使い方もあったか。

770 :デフォルトの名無しさん: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:2008/03/28(金) 09:28:54
ありがとう。>>770

文字変換関数のみはunicodeビルドをするしかないですね。

>wx-configのオプションによって使い分けるんだよ。

難しいorz

772 :764:2008/03/28(金) 09:32:44
>wx-configのオプションによって使い分けるんだよ。

あ、wxConfigオブジェクトとwxAppオブジェクトの連携かと思って劇しく難しいのかと思ったら、
コンパイルのコマンドラインの話ですね?

なら、文字変換関数のみ別プロジェクトでwxUSE_UNICODEを定義してコンパイルしてオブジェクトモジュールを作っとくだけですよね。

その後、>>766 のリンクエラーを対処すれば終わり?

773 :デフォルトの名無しさん:2008/03/28(金) 15:58:39
そんなうまくいくかどうかわからんような小細工は
ここで質問してるような奴がやることじゃないと思うがなあ。

774 :764:2008/03/28(金) 16:12:19
その通りかもしれない。

wxWigetsの文字変換はやめときます。

ドズで動作するのは、ICUだけですか?
iconvは動作しませんよね。

775 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/03/28(金) 20:28:23
もしかして、新Mac板にいたwx君なのか?

778 :デフォルトの名無しさん:2008/03/29(土) 12:27:39
ListCtrlを使っているのですが、MFCでいうオーナードローとかカスタムドローって
できないのでしょうか?
描画時のイベントやメソッドが見つからないのですが・・・


779 :デフォルトの名無しさん:2008/03/29(土) 19:32:18
wxFormBuilder使ってみたのですが、C++Editorでソースをいじってみようとしたら、文字の書いたり消したりが全くできませんでした。(ショートカットメニューのCopy と Select ALLだけが動く・・)
これはバグではなくて、wxFormBuilderはそういうもんなのでしょうか?
ショートカットメニューにcutとかpasteとかもあるのにdisableになっている感じなので、バグのような気がするのですが・・。

780 :デフォルトの名無しさん:2008/03/31(月) 08:47:27
>>776
それ、良いですね。

何でかというと、wxDev使ってるせいで、デザイン中はWinなんです。
そこで、iconvでWinとUNIX系と同じコードにできるなんて理想。

781 :デフォルトの名無しさん:2008/03/31(月) 18:16:01
wxLocalのオブジェクトってグローバルであるのでしょうか?
どうやって取得すれば。。。

それとも自分でnewするもんでしょうか。

782 :781:2008/03/31(月) 18:45:34
なんか分らないけど、
>include
して、
>wxLocal::メソッド
と書くと、
コンパイル&動作しました。

グローバルオブジェクトなのか、スタティックメソッドなのかどっちかでしょう。

783 :デフォルトの名無しさん:2008/03/31(月) 19:25:03
>wxLocale::GetSystemEncodingName()
>windows-932

この値は、iconv_openで使う文字列でしょうか?

784 :デフォルトの名無しさん:2008/03/31(月) 20:05:31
>>782-783
理解できないまま、推測だらけでコーディングするのは良くないよ
自分で試したり、質問する前にちゃんとドキュメント読んだり、検索してる?

785 :デフォルトの名無しさん:2008/03/31(月) 23:51:05
似たような事を別スレで言われてMac板へ向かった彼じゃないか?

786 :デフォルトの名無しさん:2008/04/01(火) 02:05:32
>>778
wxListCtrl - Ownerdraw: msg#00755

http://osdir.com/ml/lib.wxwindows.general/2004-01/msg00755.html
で質問している外人さんがいるけれど、答えは「自作リストコントロールを作りました」になっています。

しかし、
http://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 :デフォルトの名無しさん:2008/04/02(水) 00:31:40
すみません。 eclipse + CDT + MinGW + wxWidgets の環境構築の方法を解説したサイトはありますか?
ちなみにOS は Windows XP です。
古い情報は何件か見つけたのですが、うまくいきませんでした。



789 :デフォルトの名無しさん:2008/04/02(水) 10:30:04
>>787
http://www.wxwindows.org/docs/faqmac.htm#aboutmenu
ここに書いてあるみたいだけど、英語だからワカンネー (´・ω・`)

790 :787: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 :デフォルトの名無しさん: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:2008/04/02(水) 12:50:31
>>791
wxpythonででも、出来るってことは出来るってことだね。

そのままC++コードに移せそうですね。

ま、最悪、wxpythonをデバッガでトレースか。

793 :788:2008/04/02(水) 23:31:49
windows版 eclipseでは、wx-configを指定したらダメなんでしょうか。

794 :デフォルトの名無しさん:2008/04/04(金) 02:22:32
wxFormBuilderで、既に存在しているウィジェットを継承したクラスをwxFormBuilder上で作って、
そのクラスをや他のクラスを含んだコードをクラス毎に1ファイルずつ分割して吐かせたいのですが、どうすればできるでしょうか??

subclassやらcustom control などの情報を探して色々やってみたのですが分かりませんでした。
どなたか教えていただけると幸いです。


795 :デフォルトの名無しさん:2008/04/04(金) 10:47:50
wxMacを使っていますが、デバッグコンパイルでさえ実行ファイルが92KBしかありません。
多分、ランタイムが必要なコンパイルとなってると思うのですが、
スタティックリンクにするための手順をご存知の方教えて頂けないでしょうか?

796 :デフォルトの名無しさん:2008/04/04(金) 17:42:29
 ↑
この内容ヨロ!

797 :デフォルトの名無しさん:2008/04/04(金) 18:24:41
Mac板で聞くほうがいいんじゃね?

798 :デフォルトの名無しさん:2008/04/04(金) 18:27:39
 ↑
あんまり回答こないYO!

799 :デフォルトの名無しさん:2008/04/04(金) 18:33:29
何が原因かわからないけど、もうちょっと問題の切り分けをしたほうがいいんじゃね?
wxWidget の問題なのか、C++なのか、XCode なのかとかさ。

800 :デフォルトの名無しさん:2008/04/04(金) 18:37:47
するどいですね。
XCode使ってます。

逆に言うと、全く皆目見当つかなくて、切り分けできないので質問なげてます。
切り分け出来たら、あとはリファレンスとか何とか手に入れて全パターン試すだけですもんね。

ライブラリの構築(--disable-sharedですか?)の失敗なのか、
プロジェクトのmakeのコマンドラインが悪いのか。。。

801 :795:2008/04/04(金) 18:48:38
もしくは、バンドルするDLLを特定できれば良いのですが。。。

802 :デフォルトの名無しさん:2008/04/04(金) 18:58:07
XCodeでどう設定されてるかわからんけど、
wx-config --static=yes --libs
で出てくるオプション指定するとどうかな

使ってる共有ライブラリを特定するには
otool -L バイナリファイル名
で出てくる

803 :794:2008/04/04(金) 19:07:00
放置されっぱなしの794ですが、分かる方いらっしゃいましたらこちらも教えていただけると幸いです。

795さんうらやますぃ

804 :795: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:2008/04/04(金) 19:36:51
プロジェクトのオプションが、
>ライブラリ検索パス
>フレームワーク検索パス
が空文字でした。

これが問題なのかな?

806 :795:2008/04/04(金) 19:47:29
検索パスは空ですが、
プロジェクトのメンバーにライブラリファイル
>mac-ansi-release-static-2.8
がちゃんと入っていました。

逆に、
>*.a
ファイルまで入ってるため、ダイナミックリンクになっちゃうのかな?

807 :795: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 :転載せざるをえない:2008/04/04(金) 23:05:24
「エスパーきぼんぬ」「氏ね」「(゚Д゚)ハァ?」等のレスを貰う八ヶ条。
1. ハードウェア、OSのバージョン等には一字一句触れない。
2. 大切な個人情報が漏れるとまずいので、己の行った操作、変更などは秘密。
3. エラーメッセージの類は決して書かない。「エラーが出るんです」で留める。
目の前で生じている現象をそのまま具体的に書くなどもっての外。
事実より俺様の脳内解釈を優先すべし。
4. 独り言文体で必勝。
「…なんだけど、どうすればいいのかなぁ」「何が悪いんだろう?」
5. 「急いでいます」「困っています」等、自分の都合を全面に押し出す。
6. もう試したことを得意げに指摘してくる奴には、厳しく対応。
「それが駄目だったから質問してるんです」「それはもう試してみて駄目でした」
"どう"だめだったのか、本当に実際それを行ったかどうかなんか問題じゃない。
7. ストレートに答えを書かないもったいぶったレスには、逆切れで対応。
「だからどうすればいいんですか?」「分からないなら引っ込んでろやゴルァ」
示されたURL等を参照するなんて態度は、回答者を甘やかすことに他ならないので
絶対に避ける。
8. 情報は小出しに。

「エスパーきぼんぬ」 補足
上の八ヵ条を「一つでも」満たす者は質問者として不適格だということだ。
そのような悪い質問に対して答えられるのは,
質問者の意図をすべて汲み取ることのできるエスパーでもなければムリ,
という意味であって,決して,高度な技術を持つユーザに対する尊称ではない。
まちがっても「エスパーの方,回答お願いします」
なんて痛い質問するな。つうか氏ね。

810 :デフォルトの名無しさん:2008/04/04(金) 23:11:06
wx-config --static=yes --libs
をオプションに入れるんじゃなくて、これを実行して出てくるオプションを入れてくれ
というか一体どうやってビルドできるところまで設定したのよ

811 :デフォルトの名無しさん:2008/04/04(金) 23:20:44
エスパーって(w
794がかわいそうすぎる

812 :794:2008/04/04(金) 23:26:42
>>808 さん
ありがとうございます。

神経細いわけではないと思うんですが笑、
状況を詳しく書こうと思っても、エラーが出るとかじゃないですしOSどうこうってわけでもなく、単純に使い方が分からないってだけなのでこれ以上説明できることが何もないのです・・。

wxFormbuilder使えば、wxFormbuilder上で既存のウィジェットを継承したクラスを作成できると思っているのですが、そもそもそれが間違っているのでしょうか??

ていうか809は俺のこと言ってるんですかね?汗


813 :809:2008/04/05(土) 02:55:06
あぁ御免、誤爆だな
そういや開いてから3時間ぐらい放置してたわ

…それだけだと何なので、
http://wiki.wxformbuilder.org/Tutorials/UsingSubclass
こういうことではないの?

814 :デフォルトの名無しさん:2008/04/05(土) 09:25:00
>>794
wxFBではクラスを作ることはできないので、自分で作るしかない。
ただ、作ったクラスを使うことはできる。適当にコントロールを置いて、プロパティのところに、includeするヘッダとクラス名を書けば
そのクラスを使うようにはなるが、コンストラクタへの引数やスタイルなどのプロパティは置いたコントロールに依存するので、paneあたりを
継承すれば、wxWindowあたりを継承したコントロールなどにも対応できる。

MS VC++のMFCのようなものではなくて、リソースファイルを作るぐらいに考えるといいのかな。
ウィンドウやダイアログごとに別ファイルにしたいなら、作者に要望を出すとか、ソース公開されてるから自分で変えるとか・・・

815 :794:2008/04/05(土) 13:54:14
レスありがとうございます。

> 813 さん
そのページも見たのですが、どうもサブクラスに使う名前とヘッダーファイルを指定できるだけのような感じがして、求めているものじゃない感じでした。


> 814 さん
>>wxFBではクラスを作ることはできないので、自分で作るしかない。
>>MS VC++のMFCのようなものではなくて、リソースファイルを作るぐらいに考えるといいのかな。
やっぱりそういうものだったのですか。
情報ありがとうございました。

逆に、継承クラスを書いたり、クラス別にファイルを吐き出してくれたりするwx関連のRADツールみたいなものはないのでしょうか??


816 :デフォルトの名無しさん:2008/04/07(月) 19:23:00
>>815
自分でコードを書いて作ったコントロールを
wxFormBuilder上でフォームに貼ることならできるみたい。
http://wiki.wxformbuilder.org/Tutorials/CreatingCustomWidgets

これだけ調べて出てこないということは、
wxでは、コントロールはコードで書く必要があるのではないかと。

817 :デフォルトの名無しさん:2008/04/07(月) 23:58:12
自分もRADツール使おうと思って色々探していて、
wxFormbuilder か wxDev C++ っていうのが一番よく見かけるような気がしたのでどちらかにしようかと思っているのですが、それぞれどういった特徴があるんでしょうか??
なんか上のやりとり見ているとの実際使ってみても何ができて何ができないのかすぐに分からなそうな気がしたので、詳しい方に教えてもらう方が早いかと思いました。
よろしかったらどなたかご教示ください。

818 :デフォルトの名無しさん:2008/04/08(火) 19:05:35
wxFormBuilderはRADツールではない。

819 :デフォルトの名無しさん:2008/04/09(水) 12:50:10
RAD なら wxForms がいいかも。
ただし Borland/CodeGear C++ Builder 用のアドインだけど。

820 :デフォルトの名無しさん:2008/04/09(水) 13:11:03
>>819
それ使って上での話?
C++Builderなら使ってるんだけど、
wxWidgetsは心機一転、別のIDE(wx-dev)にしちゃったおorz

821 :デフォルトの名無しさん:2008/04/09(水) 13:50:41
>>820
いや、使ってない。
Web 上の資料を見て「RAD じゃん!」と思ったので。

822 :デフォルトの名無しさん:2008/04/09(水) 13:57:35
自分は Python な人なので、GUI 作成には XRCed を使ってます。

823 :795: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:2008/04/09(水) 14:24:18
>>816さん
うーむないのしょうかね・・
レスありがとうございましたm(_ _)m

825 :デフォルトの名無しさん:2008/04/09(水) 19:05:59
>>823
頼むから、内容を細切れにして、いろんなスレでマルチで聞くのはやめてくれ。
誘導元か、関連するレスのリンクを貼ってくれないと状況が理解できない。
そんなんだと、根本的な問題の原因を見抜けなくてドツボにはまるかもよ。

826 :デフォルトの名無しさん:2008/04/09(水) 20:14:28
原因を解決する気があればこうも糞みたいな書き込みを続けないって。


827 :デフォルトの名無しさん:2008/04/09(水) 21:35:35
>>822
俺はRubyな人だけどXRCedが一番使いやすいと思ったわ

828 :デフォルトの名無しさん:2008/04/10(木) 07:55:35
いいよね

829 :デフォルトの名無しさん:2008/04/10(木) 21:00:42
>>822 wxGlade はだめなの?

830 :デフォルトの名無しさん:2008/04/10(木) 21:18:14
Gladeは安定性が低い

831 :デフォルトの名無しさん: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)'
などのエラーが出るソースがあります。(コンパイルには成功しているみたいです。)

ググってみたのですが、情報が少なく解決できていません。(英語苦手というのもあります汗)
http://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 :デフォルトの名無しさん:2008/04/11(金) 17:37:29
すいません追記です。
上記のソースは1つのLinux環境と2つのWindows home 環境で試したのですが、Linux環境ではリンクにも成功してビルドできるのですが、Windows Home 環境では両方ともリンクに失敗します。
なので、WindowsにインストールされているwxMSWで設定がおかしいところがあるのかなと思うのですが・・


833 :831:2008/04/11(金) 18:54:27
すいません自己解決しました。

wx-config --libs で使うライブラリがmsys の /usr/lib
になければいけなかったのですが、なぜだか/local/lib にインストールされていたせいでした。
/usr/lib にコピーするだけで解決しました。
wxWidgetsインストール時のバグだったんでしょうか。。


834 :デフォルトの名無しさん:2008/04/11(金) 20:31:28
>>829
wxGlade は、次の2点が理由で好きではないのです。

1. 自分の書いたコードと自動生成されたコードがまざるのが不安
2. Output Path に指定したパスが保存したファイル(*.wxg)に入ってしまう。

特に2番は、複数マシンで開発をしているときに困ります。

835 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/04/12(土) 00:57:03
>>834
>1. 自分の書いたコードと自動生成されたコードがまざるのが不安
C++で使ってるけど,wxGladeの吐く.cpp, .hとは別のファイルにそれから
派生したクラスを定義して,実装は派生クラスに書いて,wxGladeの吐く
コードとはほぼ完全に分離できている。

>2. Output Path に指定したパスが保存したファイル(*.wxg)に入ってしまう。
.wxgからの相対パスで指定すればOKかと。

837 :デフォルトの名無しさん:2008/04/12(土) 05:51:46
>>835
wx-config って、その -L とかを自動で指定してくれるスクリプトのはずなんだよ。
それが必要なパスを吐かないなら、設定に問題がある。
インストールがうまくいかなかったんじゃないかな。

838 :デフォルトの名無しさん:2008/04/12(土) 10:58:54
>>834
自分は Python 形式で書き出しているので、
書き出されたファイルの一部に手を加える必要があります。
(最低でも ID 宣言とか)

相対パスで指定できるのは知らなかったです。
試してみます。

839 :デフォルトの名無しさん:2008/04/12(土) 21:18:32
>>837
ど素人なのすが、Windowsではwx-config は msys上でしか使えませんか?
eclipse上で指定したいのですが無理ですか?

840 :デフォルトの名無しさん:2008/04/13(日) 11:54:53
バッチファイル作ってラップするとか
@c:\msys\1.0\bin\sh.exe --login -c "wx-config %*"
こんな感じでwx-config.batとか作るといいかもしれない
eclipseでバッチファイルをそのままオプションに指定できるのかどうかはわからないが

841 :デフォルトの名無しさん:2008/04/13(日) 18:02:18
wxPythonで画像変形の高速化を行ないたい
のですがwxImageの画像データを直接取得する
方法はありませんか。GetData,SetDataでは
コピーしか渡らないようでうまく行きません。
PIL,Pygameによる画像変形は転送がネックに
なり高速になりませんでした。
PyOpenGLでは画像を直接取得できそうなのですが
画像が大きくなる(2048*2048)とリソースで
問題が出るようで試していません。
御教示お願いします

842 :デフォルトの名無しさん:2008/04/13(日) 18:43:25
>>841
wxImageのGetDataならピクセルデータを直接得られるはずだよ。
少なくとも、自分のところではそうなってる

843 :841:2008/04/14(月) 01:39:36
>>842
Python上で出来ました?
言葉が足りなかったので補足しますと、
wxImageの画像アドレスを知りたいのです。
ctypesでGetDataから渡された文字列を
強制的に書き換えても画像に反映されないので
コピーが渡されているようです。

高速化するにはDLLから直接書き換えるしか手が
なさそうなのですが、やっぱり無理
かなぁ。メニューのフォントサイズ変えるため
MenuItem.SetFontしたら落ちるし、前途多難…

844 :デフォルトの名無しさん:2008/04/14(月) 03:11:03
>>843
wx.ImageのGetDataBufferはダメだった?

845 :843:2008/04/14(月) 17:22:28
>>844
御回答有難うございます。
GetDataBufferってあったんですね。_core.py見なおしたら
見つかりました。返却値はbufferオブジェクトですね。
str()はありますがアドレスは隠蔽されてるみたいです。
Pythonからのアクセスはかなり快適で面白いオブジェクト
でしたが…残念。

答えていただけそうなのでもう1件お尋ねします。
wxBitmapを大量に格納しようとするとすぐ落ちて
しまいます。wxImageでは問題無いのでシステムリソースに
格納してるのかとも思っているのですが、その
限界を知る方法がよく分りません。御存知の方が
いましたら御教示お願いします。

846 :デフォルトの名無しさん:2008/04/14(月) 19:52:08
Python から wxDC を渡してやって、
DLL 側で画像描画をできないだろうか…と
ちょっと思ったり。

ファイルからの Bitmap の読み込みも DLL 側でやる感じで。

847 :843:2008/04/14(月) 22:50:17
GetDataBufferの件でやっと気付いた。
bufferオブジェクトってインタラクティブな状態で
見ると実体アドレスが出てる。bufferオブジェク構造体から
アドレスを拾えるみたいです。ctypesで直接書き込んで
確認できました。pyrex使えばなんとかなる…かも
教えていただき有難うございました。

>>846
ちょっと似たことをPILのImageWin.Dibでやってみました。
描画はPILからwxでwxのDCにPILからpasteする方法です。
結果はクリッピングがとても面倒で実用になりません
でした。pythonオブジェクトはpyrexで簡単に
拾えるかもしれませんが私の能力では実現は厳しそうです。


848 :デフォルトの名無しさん:2008/04/15(火) 19:07:29
ちょっとお尋ねしたいのですが、ubuntuでwxWidgetsを使って開発していたソースをWindowsの方に移してコンパイルしようとすると、文字化けしました。
ソースの文字コードがUTF-8だったので、UbuntuではwxWidgetsの文字コードがデフォルトでUTF-8になっていて、WindowsではUTF-8ではない(多分S-JIS?)ということだと思うのですが、結局Windowsでは文字コードは何で開発するのがいいんでしょうか?
どういう観点から考えて決めればいいのか分からないので、ご助言頂けると幸いです。


849 :デフォルトの名無しさん:2008/04/15(火) 22:09:40
>>848
wxWidgets をインスコする際に UTF-8 モードか ANSI モード(すなわち日本語だと shift jis モード)か選択出来るので、
クロスプラットホームのために wxWidgets をつかってるなら使うプラットホームでそれを同じにしておいたほうがいいです。

どっちにするかですが、これからの時代は何も考えず UTF-8 にしておくのがよいと思います。単に業界の趨勢なので。


850 :848:2008/04/16(水) 00:01:26
>>849さん
やはりUTF-8ですか。
,/configure のときに --enable-unicode でいいのですよね。

レスありがとうございましたm(_ _)m

851 :850:2008/04/18(金) 12:54:56
すいません
./configure --enable-unicode
でmake し直したのですが、
やはりUTF-8のソースをビルドするとインターフェース部分のマルチバイト文字が化けてしまいます。
どうすればUTF-8のソースを文字化けせずにビルドできるようになるでしょうか?

Windows Home
wxWidgets 2.8.7 です。

どなたか教えていただけると幸いです。


852 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/04/18(金) 23:37:55
というかポータビリティーのために wx を使っているのなら、
そもそもマルチバイト文字列をソースコードに書き込むのは
ポータビリティー上良くないということを認識しましょう。
コンパイラによって扱いが変わってくるので。

将来誰かが非日本語版のを作る場合とかも考えて、
(オープンソースなら誰か勝手にやるだろうし、会社でやってても
中韓国語版をつくることになるかもしれない)
ソースは ascii にして、wx の国際化機能をつかってやるのが吉。

ちょっと手間でも、いま払っておいた手間が後で
格段に仕事を節約することになります

854 :843:2008/04/19(土) 01:58:58
>>864
言われた意味がよくわかりました。ConvertToBitmapが
滅茶苦茶遅い!本気でImageからDCに直接描き込もうか
とも考えましたが、別の解決策があったので止めました。
でもScaleやRotateの出力先くらい指定できた方が
扱い良さそう。

実験としてwxPython用のコンボリュ−ション行列と
YUV操作関数作ったけど…誰も要りませんよね

855 :デフォルトの名無しさん:2008/04/19(土) 03:49:33
車輪の再発明をしても仕方がありませんし、公開に値するしろものでもありませんので
将来的にもソースは出せないと思います。
ゆくゆくは自作のプログラムに組み込めればそれでいいかな、と。

856 :854:2008/04/19(土) 05:03:13
>>855
直接wxImageをPythonからいじるノウハウについて
言ってるだけですよ。swig通してオブジェクトを
いじれれば質問もせずに済んだんですけど

857 :デフォルトの名無しさん:2008/04/19(土) 14:34:24
>>864のすばらしいアドアイスにwktk

858 :854:2008/04/19(土) 23:09:46
>>3のコピペは個々の解決法は不要という事ですね。
wxImageからDCに直接描画するwxPythonライブラリも
作ったけど御忠告に従います。有難うございました。

859 :デフォルトの名無しさん:2008/04/20(日) 12:27:47
>>858

いや、>>3 のコピペは「作ったのに公開しない人」を皮肉ったもので
悩まずどんどん公開すべきという意味だと思います。

860 :デフォルトの名無しさん:2008/04/20(日) 12:32:53
口だけで実は何も作ってない奴が成果物提示を要求された時の逃げ口上だろ。

861 :デフォルトの名無しさん:2008/04/20(日) 21:21:39
http://pc8.2ch.net/test/read.cgi/tech/1097524712/664
664 名前:デフォルトの名無しさん [sage]: 2006/01/09(月) 04:46:55
wxWidgetsのwxScintilla(wxStyledTextCtrl)に手を加えているのですが
意見をもらえないのでしょうか?
http://www.geocities.jp/full_sarcasm/testedit.html

開発途中のWindows版バイナリです。

車輪の再発明をしても仕方がありませんし、公開に値するしろものでもありませんので
将来的にもソースは出せないと思います。
ゆくゆくは自作のプログラムに組み込めればそれでいいかな、と。

862 :デフォルトの名無しさん:2008/04/21(月) 12:25:27
>>839
遅いけどこんなんあった
http://miteidesu.seesaa.net/article/93929180.html


863 :デフォルトの名無しさん:2008/04/22(火) 00:21:52
>>862
おぉぉぉ。すばらしい。明日試してみます!

864 :デフォルトの名無しさん:2008/04/24(木) 17:03:40
Eclipse CDT と MinGW でwxWidgets使ったプロジェクトの開発しているのですが、gdbでデバッグしようとすると、頻繁にエラーが出て落ちます。

同じ症状のかたいらっしゃるでしょうか?
wxWidgets と gdbは相性が悪いのだろうか・・


865 :デフォルトの名無しさん:2008/04/24(木) 18:08:21
Linux上では全然問題ないよー
MinGW固有の問題かな?

866 :864:2008/04/25(金) 00:34:38
むーそうですか。。ありがとうございます。


867 :デフォルトの名無しさん:2008/04/25(金) 14:41:33
http://docs.wxwidgets.org/2.8.6/wx_wxfileconfig.html#wxfileconfigctor
ここを見るとwxFileConfigクラスのインスタンスを宣言する時は、引数にwxInputStreamクラスのオブジェクトが必要なようなのですが、
wxInputStreamクラスのインスタンスはどのように宣言すればいいのでしょうか??
http://docs.wxwidgets.org/2.6/wx_wxinputstream.html#wxinputstreamctor
ここを見ると creates dummy input sream となっていてよく分かりません。
設定ファイルに使うファイルのパスを何かしらの方法で引数のwxImputStreamクラスのオブジェクトの中に入れておかなければいけないと思うのですが・・
http://wxwindowsjp.sourceforge.jp/docs/html/wx/wx464.htm
ここも見てみましたが、探している情報は載っていないように感じました。
どなたか教えて頂けると幸いです。


868 :845:2008/04/25(金) 23:36:24
大量のwxBitmap格納で落ちる事への自己レスです。
私の環境はWin98だったのですが、この場合内部で
DIBもしくはDDBを作成する為システムリソースを
食い潰す事が原因のようです。Win9xはリソース上限が
2M程度と聞きますが実際はよく分りません。
Win上でスクリプトからなら大量の画像はwxImageで
管理した方がよさそうです。

wxのソースをみてたらwxImageの処理があんなに
遅い訳がわかります。せめてAlphaの有無で
ループを別けてくれれば拡縮とかは少しは速く
なりそうなんですが…。

869 :デフォルトの名無しさん:2008/04/25(金) 23:58:00
まだ Win 98 なのなら、XP 売っているうちに買っておいたほうが良いよ >>868

870 :845:2008/04/26(土) 00:51:40
>>869
そう出来ればいいですねぇ…
リソース浪費するのは同じなのでWin2000以後も
この件に付いては気をつけたほうが良いとも
思います。ソースを追っていませんし管理方法に
詳しくありませんが、wxはDIBとDDBを使い分けてる
ようでDDBならVRAMの容量が処理能力に直結する
気がします。

871 :デフォルトの名無しさん:2008/04/26(土) 05:17:33
>>867
wxFileInputStreamで開けばいい。

872 :デフォルトの名無しさん:2008/04/26(土) 09:32:15
>>870
Vista WDDM以降、DDBはDIBみたいに振る舞うので注意。

873 :845:2008/04/26(土) 18:13:24
>>872
勉強になりました。
M$の言い分としてはVistaが動かせるようなPCなら
気にする事ではないんでしょうねぇ。

874 :867:2008/04/26(土) 19:59:52
>>871 さん
ありがとうございます。wxFileInputStreamなんてクラスがあるんですね。

ただ、また疑問点が出てきてしまいました。
http://www.h3.dion.ne.jp/~k5_n/wxwin/memo/ver0_2.html
ここを見て設定ファイル周りのコードを書いていたのですが、
そもそもwxFileConfigのコンストラクタの引数型が
http://docs.wxwidgets.org/2.8.6/wx_wxfileconfig.html#wxfileconfigctor
ここに書いてあるものと全然違うことに気付きました。
そもそもアプリケーションの設定ファイル周りの機能を作るにはwxFileConfigクラスを使うので正しいのでしょうか?
http://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 :デフォルトの名無しさん:2008/04/27(日) 10:02:27
仕様です

877 :874: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 :デフォルトの名無しさん:2008/04/28(月) 13:15:54
ポインタだけで実体作ってなかったとかいうオチは許さんぞ。

879 :デフォルトの名無しさん:2008/04/28(月) 13:16:20
>>877
そんなバグは聞いたことがない。
m_pConfigの実体を確保し忘れてるとか、多分そんなのが原因だと思う。

880 :874: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 :デフォルトの名無しさん:2008/04/28(月) 15:57:16
ちゃんとdeleteしないと書き込まれないんじゃないか?

882 :デフォルトの名無しさん:2008/04/28(月) 16:20:22
Flush()しない場合はデストラクタで書き込まれる、とあるな。
両方やってないから書き込まれない。

883 :874:2008/04/28(月) 16:39:36
>>881さん
>>882さん

レスありがとうございます。

Write(); のあと Flush(); でいけました!まじありがとうございます!

Flushが必要、という情報が見つけられないのですが、よろしかったらソースを教えて頂けないでしょうか??
あと、「両方やってないから書き込まれない」の「両方」とは、Flush(); と、あともう1つは何でしょうか??


884 :デフォルトの名無しさん:2008/04/28(月) 16:45:51
>>883
>>882 を読んでそれが何かわからないようならC++を勉強しなおした方がいい

885 :デフォルトの名無しさん:2008/04/28(月) 16:48:43
>>883
「両方」じゃなくて「どちらも」の間違いだった。どちらかでも行えば書き込まれる。
あと、人に聞くまえにリファレンスを読め。


886 :874:2008/04/28(月) 17:18:22
http://docs.wxwidgets.org/stable/wx_wxconfigbase.html#wxconfigbaseflush

permanently writes all changes (otherwise, they're only written from object's destructor)
部分だったんですね。。

http://docs.wxwidgets.org/stable/wx_wxconfigbase.html#wxconfigbasewrite
こっちのWrite();のリファレンスの方には
write the specified value to the config file
ってあるので、Write();だけでファイルに書き込めるのだと思っていました。全く分かりませんでした。。

ありがとうございましたm(_ _)m


887 :851:2008/05/02(金) 23:40:36
>>852 さん
>>853 さん
めちゃくちゃ遅くなってすいません・・
レスありがとうございましたm(_ _)m
なんか書き込んだと思ったら書き込んでなかった?ようです><
すいませんm(_ _)m

888 :デフォルトの名無しさん:2008/05/06(火) 01:24:28
wxPythonの質問なんだけど、ここで大丈夫?
勉強し始めたばかりなんですが、トップフレームにボタンを作って、
このボタンを押すと、別スレッドで重い処理を実行させて、終わったら
「終わりました。」てメッセージボックスを表示させるプログラムを書いてます。

別スレッドのなかでwx.MessageBox("終わりました。","")を実行すると、
Windowsでは普通に表示されてOKボタンでメッセージボックスが閉じますが、
Linux(GTK)だとメッセージボックスが表示されますが、固まってしまいます。

WindowsとLinuxどちらの動作が正常なんでしょうか?
(wx.Frameなどを継承していない)別スレッドのクラスからwxを使っていいのでしょうか?

889 :デフォルトの名無しさん:2008/05/06(火) 19:56:05
どっちが正常ってか、Windowsで固まらないのはまぐれ
http://docs.wxwidgets.org/stable/wx_threadfunctions.html#wxmutexguienter

890 :デフォルトの名無しさん:2008/05/09(金) 20:18:36
>>889
ありがとうございます。
やっぱり何も対策を取らないと固まるんですね^^;
wx.MessageBox("終わりました。","")の手前にwxMutexGuiEnter()を書いて、
直後にwxMutexGuiLeave()を書いて試しましたが、wxMutexGuiEnter()で
固まってしまいました。たぶんMutexの初期化?が足りないのかもしれません。

http://wiki.wxpython.org/LongRunningTasks
ここを参考にwx.PostEventを使って、Windows&Linuxで思い通りの動作になりました。

891 :デフォルトの名無しさん:2008/05/11(日) 07:22:33
windows xp MinGW環境ですが、openGLを使いたいと思い、
config.gccのopenglのオプションを有効にしてgccでコンパイルしました。
openGL用のライブラリがリリース版とデバッグ版の2つできたのですが、
2つともファイルサイズが40kb程度しかありません。
これで正しくライブラリができているのでしょうか?

892 :デフォルトの名無しさん:2008/05/26(月) 12:11:45
wxStringオブジェクトを走査して特定の文字列が何回出てくるか調べたいんですが、それ用の関数ってないですよね??


893 :デフォルトの名無しさん:2008/05/26(月) 12:24:10
>>891
GLCanvasってレンダリングコンテキストのハンドリングぐらいしかやってないんじゃないかな。それだけならそんなもんじゃないかなぁ。


894 :デフォルトの名無しさん:2008/05/26(月) 23:56:39
>>892
>それ用の関数ってないですよね??
質問の仕方、心構えが間違ってる。ありませんか?と自然に聞けば良い。
自分が既に調べてみつからなかったんだけど ... ということをアピールして、
しかも、自分って正しいですよね、という雰囲気である。
これでは自分で心を閉ざしているようなものであって、
API レファレンスを読めばみつかる API もみつからない。

というのは別にして、wxString::find(const wxString&,size_t) ではだめなの?

895 :デフォルトの名無しさん:2008/05/26(月) 23:59:56
なんという紳士

896 :デフォルトの名無しさん:2008/05/27(火) 00:04:29
>>894の優しさに泣いた!

897 :デフォルトの名無しさん:2008/05/27(火) 00:28:37
>>894にならほ(ry

898 :892:2008/05/27(火) 02:09:22
レスありがとうございます。

>>質問の仕方、心構えが間違ってる。ありませんか?と自然に聞けば良い。
>>自分が既に調べてみつからなかったんだけど ... ということをアピールして、

う、こういう聞き方、あまりよろしくないのですかね??
単純に「ありませんか??」だとググれと言われてしまうし、かと言って毎回なんか質問書き込む度に既に調べて分からなかったので質問しましたってのは正直億劫だったのでこんな感じの聞き方になっていましたが・・

wxString::Findだと、最初にマッチした部分のインデックスが返ってくるだけですよね??
でもwxString::Cmpとforとif使ってなんとかなったので、質問したこと自体は解決しました。

>API レファレンスを読めばみつかる API もみつからない。
これはなんでですか??
この質問の仕方だとなんでAPIリファレンスに書いてあるAPIも見つからなくなる、のでしょう?
突っ込まれて反論してるのではなく、どういう意味か分からなかったので単純に教えて頂きたいな、ということです。

899 :デフォルトの名無しさん:2008/05/27(火) 02:25:57
>>898
>毎回なんか質問書き込む度に既に調べて分からなかったので質問しました

答える側になった事を考えれば分かると思うが、これが正解
事前に何を調べて自分としてはどう思っていて何が疑問なのかを丁寧に書く
これしか無いよ

900 :デフォルトの名無しさん:2008/05/27(火) 02:32:59
>>898
解決したならいいけどCmp()でどんなコードを書いたの?

901 :デフォルトの名無しさん:2008/05/27(火) 03:13:25
>>898
>wxString::Findだと、最初にマッチした部分のインデックスが返ってくるだけですよね??
この「ですよね??」という聞きかたが良くないです。
自分はこの API は既に知っているけど ... ということをアピールして、
しかも、自分って正しいですよね、という雰囲気である。
これでは自分で心を閉ざしているようなものであって、
この API が使える API であるということを認識出来ない。

自分はこれまで最初にマッチした部分のインデックスが返ってくるだけだと思っていたんだけれど、
相手が wxString::find を言ったということは、実は二つ目以降も返ってくるんではないか?
と謙虚に考えられなくなるわけです。相手に言われたら、
自分を疑って、もういちど自分で API レファレンスを読んでみればわかるはずで、
こうやって小言を言われる必要もなくなるわけです。というのが、
> この質問の仕方だとなんでAPIリファレンスに書いてあるAPIも見つからなくなる、のでしょう?
>突っ込まれて反論してるのではなく、どういう意味か分からなかったので単純に教えて頂きたいな、ということです。
への返答です。
僕は自分自身が、「ですよね?」「じゃないんですか?」と言いたくなったら、
まず自分を疑うことにしています。
その言葉を発した時点で、考えるのを放棄しているからです。

というのはいいとして、wxString::find(const wxString&,size_t) とわざわざ
オーバーロードしてある引数までかいてあるのは何故だとおもいますか?
それはそのバージョンをつかうと、第二変数でどこから調べるかが指定出来るからです。
そうするとそれを繰り返し呼べばいいわけです。
ちなみに find が大文字か小文字かも違います。
http://docs.wxwidgets.org/2.8.6/wx_wxstring.html#wxstringat
をみてください。

902 :デフォルトの名無しさん:2008/05/27(火) 03:24:20
ためになる話のような気がするから
あとでゆっくり読むぜ

903 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/05/27(火) 10:02:58
なんか知らんが賢人が降臨したようだな

905 :デフォルトの名無しさん:2008/05/27(火) 13:52:47
賢人って… >>903 のこと?

906 :デフォルトの名無しさん:2008/05/27(火) 17:45:13
当たり前だろ

907 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/05/27(火) 23:10:59
>>908
ですよね?と聞く前に、wxString のメンバ関数一覧を再確認すればよかったんじゃないかな。たぶん。

911 :デフォルトの名無しさん:2008/05/27(火) 23:47:43
>>901のエントリについては、何か考えさせられた。

○(調べたけどわかんなかったので)ありませんか?
△(調べずに)ありませんか? … (ググれと言われる)
×ないですよね? … (ないんですよ。そうでしょう?(同意求む)的な感じ)

って感じなのかな。

912 :892:2008/05/27(火) 23:55:56
>>910
再確認して、その上で分からなかった(見逃してた)んです。
なので、言ってしまえば回答に直結するレス頂いてそれでも気づかなかった自分がバカだったってだけの話なのですが汗


913 :デフォルトの名無しさん:2008/05/28(水) 00:03:07
その人は嫌み言ってるだけだと思うので気にしないでいいと思うよ
まあふと疑問がでてドキュメント見たときに、
そのクラスのあんま関係なさそうだけど他のメソッドもついでに
全部勉強しておいてやろうとかいう感じでやってればスキルもあがるんじゃないでしょうか。

914 :デフォルトの名無しさん:2008/05/30(金) 10:19:55
これって、64bit対応してるかな?
コンパイラが64bitなら無問題?

915 :デフォルトの名無しさん:2008/05/30(金) 11:55:45
すくなくとも wxMac は対応してない。なぜなら GUI が Carbon で、それには 64bit 版がないから。

916 :デフォルトの名無しさん:2008/05/30(金) 12:15:03
え”〜、Carbonは64bitには亡くなるのぉ???

wxCocoaの完成を待つしか無い???

917 :デフォルトの名無しさん:2008/05/30(金) 12:53:48
>>916
いまんところの Apple の発表は、 Carbon の GUI 部分は 64 bit にしない、Carbon の非 GUi 部分は 64 bit にする、とのことだけど、まあすぐ気の変わる会社だから誰にも分かりません

Qt はもう方針転換して、Cocoa で組みなおしてます。もう Cocoa 64 bit のβ版がでてるはず。

wxMac はメンテナンスはされてるけど、ドキュメントから何から激烈に古いのでこれを機会に wxCocoa を誰か頑張ってくれ。

918 :デフォルトの名無しさん:2008/05/30(金) 13:03:15
wxGTKはMacでは動かないの?

919 :デフォルトの名無しさん:2008/05/30(金) 13:10:59
wxGTK は OS X 上で X11 を立ちあげて、そのなかで動くというのは可能
Windows でも cygwin とかでX11 サーバをいれとけば wxGTK も動くというのと同じ状況です
OS X の WindowServer は X11 ではないので。
まあ X11 は標準でついてくるけど。

920 :デフォルトの名無しさん:2008/05/30(金) 13:49:29
正直 OS X で X11+GTK とか勘弁してくれって感じだ…

921 :デフォルトの名無しさん:2008/05/30(金) 15:31:32
Mac で Xアプリが動くってのはオマケだね。

クリップボードさえX専用クリップボードだったり、
Windowsの16ビットアプリケーションより連携悪い。

922 :デフォルトの名無しさん:2008/05/30(金) 16:00:05
wxStreamToTextRedirectorを使っているんですが、
cout << で、マルチバイト文字が化けて表示されてしまいます。

同じような症状の方、また解決方法を分かる方いらっしゃいましたらご教示いただけると嬉しいです。
ちなみにwxMSWをunicodeモードでインストールして使っています。

923 :デフォルトの名無しさん:2008/05/30(金) 16:03:51
自分の書き込みを何度も読み返すといいよ。

924 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/06/01(日) 10:58:29
OS X 上で、外人さんの作ったソフトで、unicode つかってないので、そのバグがでることって多いよね。TeX 用のソフトでそれではまることがしばしば ...

926 :デフォルトの名無しさん:2008/06/02(月) 23:48:04
>>924
了解

927 :デフォルトの名無しさん:2008/06/03(火) 00:10:51
Ubuntu 8.04でwxPythonがシンボル見つからないとかで起動しない。
自分でビルドしようと思ってもコンパイルエラー。swigのバージョンかな?
動かぬなら 動くまで待とう wxPython

928 :デフォルトの名無しさん:2008/06/03(火) 19:47:07
待ってねーでバグレポート送れよ

929 :デフォルトの名無しさん:2008/06/04(水) 00:20:54
英語がわからないに1票〜

930 :デフォルトの名無しさん:2008/06/04(水) 00:55:38
>>928
いや、本家フォーラムではもう話題になってる。日本で話題になって無いからチラ裏してみただけ。

931 :デフォルトの名無しさん:2008/06/04(水) 00:57:50
なぁ、このフレームワークって人気ないの?

932 :デフォルトの名無しさん:2008/06/04(水) 02:16:47
>>931
ん?採用してるプロダクトも多いし
コミュニティも活発じゃん。

なんでそんな事を思うのかい?

933 :デフォルトの名無しさん:2008/06/04(水) 09:00:21
採用しているプロダクトも少ないし
コミュニティも活発じゃないからだろうきっと。

934 :デフォルトの名無しさん:2008/06/04(水) 10:01:18
Qtに負けてる?

935 :デフォルトの名無しさん:2008/06/04(水) 12:26:07
>>934
Photoshop Elements、Opera、Google Earth、SkypeなんかがQtだね。
確かにちょっとよさそうだし、有料なんでサポートもしっかりしてそうだけど
wxWidgetsをすでに使ってるんだったら乗り換えるほどではないかな・・

936 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/06/04(水) 20:03:39
sizerだったかな?
いまいちこの辺の理解ができない。


939 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/06/04(水) 23:39:29
阿呆か。第三引数は、この場合第一引数の長さの指定だろう。
http://www.cplusplus.com/reference/string/string/find.html
そもそも、findメソッド使いながら一文字ずつ調べようという発想が阿呆過ぎる。


942 :デフォルトの名無しさん:2008/06/05(木) 00:08:18
>>940
find は、i 文字目から探しはじめて、はじめにみつかった文字列を返す、ので、
i を1 ずつ加算していくとそりゃおかしくなるでしょうよ

943 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/06/06(金) 15:30:06
MacOSX 10.6でCarbon廃止されたら、wxMacもなくなるのかなあ。

947 :デフォルトの名無しさん:2008/06/06(金) 23:39:26
10.6で廃止は早すぎるだろう?
そのうちなくなるかもしれないが、俺達にはwxCocoaがある!
未だまともに動かないwxCococaがっ

948 :デフォルトの名無しさん:2008/06/07(土) 00:19:47
誰も 32bit Carbon を廃止はしないだろう、そんなことしたら MS Office が動かなくなる

949 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/06/08(日) 23:19:46
>>950
wx のソースコードのバグを取って開発に貢献してください。

952 :デフォルトの名無しさん:2008/06/08(日) 23:52:47
バグというか実装されていない機能の中身おくったけどさ、
半年ぐらいしてパッチ当てるよーってメール着たんだが、さらに半年経っても当たる様子無い。
仕方ないんで、ソース取り出してクラス名変えて使ってるよ。

953 :デフォルトの名無しさん:2008/06/08(日) 23:52:54
自己解決しました

954 :デフォルトの名無しさん:2008/06/09(月) 00:08:10
自己解決したときはどう解決したかかいておいてください
あとで同じことにはまる人もいると思うので。

955 :デフォルトの名無しさん:2008/06/09(月) 00:34:26
自分のした質問じゃないのに「自己解決しました」とだけ書いて去っていく荒らしもいるから注意な。

956 :デフォルトの名無しさん:2008/06/09(月) 03:26:30
自己完結しました

957 :945:2008/06/09(月) 11:31:24
解決してません。

やはり自分もwxWidgets自体のバグなのかなと思うのでソースをいじってみることを考えているのですが、
スペースキーで漢字変換できる状態(うまい表現の仕方あったら教えてください・・)の文章の表示位置がおかしい、というのは、wxWidgetsとIMEの連携部分で何かおかしくなっている、ということなのでしょうか。
wxTextCtrlなら正常に動く感じなので、textctrl.hとrichtextctrl.hを比べてみたりしているのですが、どの辺りを見ればいいのか・・


958 :デフォルトの名無しさん: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をもうちょっといじってみようかと丁度思っていたところでした。

自分のやりたいことというのが、プログラマ向けのエディタによくある予約語の強調表示なのですが、
http://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 :デフォルトの名無しさん:2008/06/09(月) 22:20:00
wxWidgets 一般の話をしているのか、wxMSW の話をしているのか区別をしてくれ ...


961 :957:2008/06/09(月) 23:15:37
今はWindowsで開発しているのでwxMSWですが、
wxTextCtrlで強調表示機能実現できるかどうかってプラットフォームに依るのでしょうか??
wxTE_RICHはMSWでしか使えなくて、それ使わないと無理なので他のプラットフォームでは自動的にwxTextCtrlでは実現不可、ってことでしょうか。


962 :デフォルトの名無しさん:2008/06/10(火) 11:19:56
>>961
wxTE_RICH は wxMSW 専用。ほかの環境では意味をなさない。
(リッチエディットコントロールを使う指定だから)

>>959
入力した文字列をリアルタイムに強調表示したいのであれば、
OnChar(wxKeyEvent &)
あたりを使えばいいんじゃないかな。やってみないとわからないけど。

963 :デフォルトの名無しさん:2008/06/10(火) 11:25:22
>>961
ちょっと説明不足だったけど、強調表示などは
wxTE_RICH を指定しなくても wxTextCtrl::SetStyle() と
wxTextAttr を使えば、実現できるんじゃないかな。

964 :957:2008/06/11(水) 00:01:42
wxTextCtrl::SetStyle
http://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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2008/06/18(水) 21:37:04
>>966
2度EVT_KEY_DOWNが飛んできませんか?
内部で捨てていない限り2度飛んでくるので、
それを漢字1文字分にすればいいと思います。

968 :デフォルトの名無しさん:2008/06/18(水) 23:14:50
>>966
キー毎に強調表示するんでなくて、タイマーで1秒ごとに処理するとか ...

969 :デフォルトの名無しさん:2008/06/23(月) 01:12:54
なんかnoobっぽい質問なんですが

#include <wx/memory.h> して wxDebugContext::PrintStatistics(); すると

error: ‘wxDebugContext’ has not been declared

というエラーになるんですが、なぜなんでしょうか。
プリプロセッサかなにか定義しないといけないんでしょうか。
ちなみに関係ないと思いますがwx-configには--debugを渡しています。
バージョンは2.8.7.1です。


970 :デフォルトの名無しさん:2008/06/23(月) 17:28:25
>>969
noob ってなんだろ…

sample の memcheck.cpp をみてみたけど、 wx/setup.h の下に書いてある
wxUSE_MEMORY_TRACING か wxUSE_DEBUG_CONTEXT を 1 に
しないと使えないみたいだよ。

971 :969:2008/06/23(月) 21:52:45
>>970
どうもありがとうございます、コンパイルはできました。

…ですがリンク時に大量のエラーが。
undefined reference to `wxObject::operator new(unsigned int, wchar_t const*, int)'
とか
undefined reference to `wxObject::operator delete(void*)'
とか
/usr/include/wx-2.8/wx/memory.h:329: undefined reference to `wxDebugContextDumpDelayCounter::sm_count'
とか。

うーん。
g++ `wx-config --libs --debug` *.o
リンクコマンドはこんな感じなんですが。

972 :デフォルトの名無しさん:2008/06/23(月) 23:16:55
--cflagsも付けないと…
wx-config --cflags --libs --debug
でどうよ

973 :デフォルトの名無しさん:2008/06/23(月) 23:17:25
あ、ごめん、リンクコマンドでしたね

974 :デフォルトの名無しさん:2008/06/23(月) 23:25:24
>>971
wx-configだけで実行してみ?
-Lオプションとかちゃんとついてる?

975 :969:2008/06/23(月) 23:42:53
$ wx-config --libs --debug
-pthread -Wl,-Bsymbolic-functions -lwx_gtk2ud_richtext-2.8 -lwx_gtk2ud_aui-2.8 -lwx_gtk2ud_xrc-2.8 -lwx_gtk2ud_qa-2.8 -lwx_gtk2ud_html-2.8 -lwx_gtk2ud_adv-2.8 -lwx_gtk2ud_core-2.8 -lwx_baseud_xml-2.8 -lwx_baseud_net-2.8 -lwx_baseud-2.8

こんなかんじでした。

976 :デフォルトの名無しさん:2008/06/23(月) 23:44:57
>>975
いや、だから、-Lがないじゃん。
--cflagsでも--ldflagsでもいいから、-Lオプションが出るようにしてみ?

977 :969:2008/06/23(月) 23:51:19
>>976
うーん、どのフラグを指定しても-Lオプションは出ないみたいです。
ちなみにwx/setup.hをもとに戻してwxDebugContextの部分を消せば、ほかでwxWidgetクラスを参照していても
リンクまでちゃんとできます。


978 :957:2008/06/24(火) 00:12:13
テキストコントロールの文字列を変更した直後に発生するEVT_TEXTというイベントがあるのを見つけ、それで解決しました。
レスありがとうございましたm(_ _)m

979 :デフォルトの名無しさん:2008/06/24(火) 00:28:58
>>977
あぁごめん、>>969からの流れ見てなかった。
自分でUbuntuにwxWidgets入れてみたら、/usr/lib/libwx*.so になってるから、-Lはいらなかった。多分>>969の環境も-L要らないんだろう。

で、wx/setup.hを勝手に変えちゃいけないよ。
wx/setup.hは、libwx*.soをビルドしたときに使ったオプションだから、変えたかったら自分でwxWidgetsをビルドしなおさないと。

980 :デフォルトの名無しさん:2008/06/24(火) 10:13:06
>>971
979 も書いているけど、ライブラリもリビルドしないと駄目。
リビルド方法は Windows ならやり方わかるんだけど、
Unix 関連だとわかんないや。スマソ。


981 :969:2008/06/24(火) 23:27:51
>>980
なるほど、wxWidgets自体をリビルドですか…
思いのほかめんどいんですね。
ともかく、皆さんどうもありがとうございました。


268 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)