【GUI】wxWidgets(旧wxWindows) その3【サイザー】
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
2006/09/09(土) 00:06:30本家
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
0002デフォルトの名無しさん
2006/09/09(土) 00:07:04http://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/
0003デフォルトの名無しさん
2006/09/09(土) 00:17:35将来的にもソースは出せないと思います。
ゆくゆくは自作のプログラムに組み込めればそれでいいかな、と。
0004デフォルトの名無しさん
2006/09/09(土) 00:18:35http://www.codeproject.com/useritems/wxwidgets.asp
このページはいろいろ参考になると思うんですが、テンプレに入れませんか?
0005デフォルトの名無しさん
2006/09/09(土) 00:21:50ttp://www.phptr.com/promotions/promotion.asp?promo=1484&redir=1&rl=1
http://www.phptr.com/content/images/0131473816/downloads/0131473816_book.pdf
0006デフォルトの名無しさん
2006/09/09(土) 00:35:47一応JavaScriptバインディングもあるよ。
wxJS
http://users.skynet.be/saw/wxJS/
0007デフォルトの名無しさん
2006/09/09(土) 08:36:39>>4は移動になっているらしい。
http://www.codeproject.com/library/wxwidgets.asp
0008デフォルトの名無しさん
2006/10/03(火) 21:40:46wxTreeListCtrlはWin32 Common Controlにも欲しいと思う。
http://wxcode.sourceforge.net/
0009デフォルトの名無しさん
2006/10/03(火) 22:19:18wxSocket使おうとしているので、一応確認したが、
受信スレッドを内部で別に立てているなら、
wxUSE_THREADSを1と定義してビルドする必要があるのだろう。
wxMSWだけでの検証ですまんが、コードを追ってみると、
メインスレッドのみ、wxYieldを呼び出している。
wxYieldは内部でwxTheApp->Yield()を呼んでいるだけで
ここがマルチスレッドセーフではない模様。
他のスレッドはwxThread::Yield()を呼んでいる。
wxThread::Yield()の内部はSleep(0)なので、問題なし。
wxUSE_THREADSが無い時点でスレッドを立てるような
物は使ってはいけないのでイベントハンドラを定義せずに
ブロッキングで組む必要があるということじゃないのかな?
ところで、スレッド無しはわざわざヘッダを書き直さないと
そのようにはならないと思うのだが、実行してデバッグしたわけではないので
間違っていたらすまん。
そのうち自分でもテストはしないとだめなんだろうがねぇ。
0010デフォルトの名無しさん
2006/10/03(火) 23:05:04wxUSE_THREADSは1(初期値)のまんまですね
wxWidgets自体のバグの線が高そう
環境はmswです
0011デフォルトの名無しさん
2006/10/03(火) 23:48:150012デフォルトの名無しさん
2006/10/04(水) 02:09:24勝手に書き換えるのは気持ち悪いでしょう
00139
2006/10/04(水) 02:15:41ソースを追ってみたが、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させるようにするのはどう?
0014デフォルトの名無しさん
2006/10/04(水) 02:56:030015デフォルトの名無しさん
2006/10/05(木) 14:10:04教えてエロい人
0016デフォルトの名無しさん
2006/10/05(木) 14:29:53サ イ サ ゙ ー っ て イ可 ?
0017デフォルトの名無しさん
2006/10/06(金) 17:27:550018デフォルトの名無しさん
2006/10/06(金) 23:36:440019デフォルトの名無しさん
2006/10/07(土) 00:21:00OpenGL描画して最後にwxGLCanvas::SwapBuffer()呼ぶ関数作って
それ呼べばRefresh()呼ばんでもいいんじゃない?
0020デフォルトの名無しさん
2006/10/07(土) 19:30:39だれかサンプルだけでも、日本語に訳してくれ。
0021デフォルトの名無しさん
2006/10/07(土) 23:19:020022デフォルトの名無しさん
2006/10/07(土) 23:25:360023デフォルトの名無しさん
2006/10/07(土) 23:39:23英語っていってもほとんど基礎英語レベルのことしかない
これがわからない人はそもそも言語の構造がわかってないんだろう
MFCでも先に勉強したほうが早いよ
0024デフォルトの名無しさん
2006/10/08(日) 23:42:49wxDialogにwxButton貼り付けたんだけど
Dialogのサイズ変更するとボタンが
最大化しちゃうんだが、何が原因なのかな?
002524
2006/10/08(日) 23:47:54Toolbar必須なのか...
0026デフォルトの名無しさん
2006/10/09(月) 00:35:06もうひとつ何か貼れば最大化しなかったよ
0027デフォルトの名無しさん
2006/10/09(月) 01:31:08結構細々としているからねwxWidgetsは。
俺はサンプルに日本語コメントを付けまくってしょっちゅう見返してるよ。
0028デフォルトの名無しさん
2006/10/09(月) 01:46:200029デフォルトの名無しさん
2006/10/09(月) 01:59:55それなりにいいと思うぞ。
ただだし。
0030デフォルトの名無しさん
2006/10/09(月) 02:46:03英語は疲れるよ。
0031デフォルトの名無しさん
2006/10/09(月) 16:28:270032デフォルトの名無しさん
2006/10/13(金) 17:19:02何この糞仕様。
0033デフォルトの名無しさん
2006/10/14(土) 00:11:570034デフォルトの名無しさん
2006/10/14(土) 00:27:080035デフォルトの名無しさん
2006/10/14(土) 00:38:3400369
2006/10/14(土) 01:13:36wx関連のほとんどの機能はメインスレッド以外でやってはいけない感じなのかもしれない。
0037デフォルトの名無しさん
2006/10/14(土) 03:39:53ん〜。そうでもないよ。
受信用スレッド作ってそこでソケットごにょごにょやってたことあるし。
ってそういう話では無い?
自分で何か修正したような記憶があったりなかったり。。。
2.6が出た頃の話だったと思うので、あまり真に受けんといてください。
00389
2006/10/14(土) 20:18:52俺も送信用スレッドは使ってるけどね、wxのINPUTイベントやCLOSEイベントなんか
はメインスレッドでイベントでもらってRead/Destroyなどをするようにしてる。
Read/Writeを交互に行うようなプロトコルにしているため、
Writeをしながら、Readを呼び出しても問題が無いかどうかは検証していない。
また、排他制御をSingle Thread Execution Patternで避けれるから、一概に悪いとは言えないけどね。
送信・受信と別々につなげてそれぞれブロッキングで別スレッドを立てるほうがいいのかもしれないけど
Nagleがらみで送受信を分けるとラグが発生しそうだしなぁ。
0039デフォルトの名無しさん
2006/10/15(日) 14:33:000040デフォルトの名無しさん
2006/10/15(日) 18:34:022.6.3のサンプルのminimalをbccでコンパイルしたら、exeサイズ約1.9MB、何だけど...
でかすぎー
0041デフォルトの名無しさん
2006/10/15(日) 18:42:040042デフォルトの名無しさん
2006/10/15(日) 19:44:40まぁでかいのはでかいが
0044デフォルトの名無しさん
2006/10/21(土) 15:05:41char *しか受け付けない関数があるんです。
0045デフォルトの名無しさん
2006/10/21(土) 20:48:25エンコーディングを特定したければwxMBConv系を直接使う
0046デフォルトの名無しさん
2006/10/21(土) 22:33:57三番目のsize_t nにはwchar_tの文字列のサイズを渡せば良いのでしょうか。
0047デフォルトの名無しさん
2006/10/25(水) 14:15:34って警告が大量に出るんですが、これどうにかならないでしょうか?
0048デフォルトの名無しさん
2006/10/26(木) 00:17:38ノ /,.-‐'"´ `ヾj ii / Λ
,イ// ^ヽj(二フ'"´ ̄`ヾ、ノイ{
ノ/,/ミ三ニヲ´ ゙、ノi!
{V /ミ三二,イ , /, ,\ Yソ
レ'/三二彡イ .:ィこラ ;:こラ j{
V;;;::. ;ヲヾ!V ー '′ i ー ' ソ
Vニミ( 入 、 r j ,′
ヾミ、`ゝ ` ー--‐'ゞニ<‐-イ
ヽ ヽ -''ニニ‐ /
| `、 ⌒ ,/
| >┻━┻'r‐'´
ヽ_ |
ヽ _ _ 」
ググレカス [ Gugurecus ]
( 2006 〜 没年不明 )
0049デフォルトの名無しさん
2006/10/26(木) 00:48:490050デフォルトの名無しさん
2006/11/04(土) 02:25:220051デフォルトの名無しさん
2006/11/05(日) 19:06:100052デフォルトの名無しさん
2006/11/05(日) 20:24:22ボタンとか、絶対位置指定できる点はいいとは思うけど。
DialogBlocksはちょっと複雑なの書くとエラーがでるんだが・・・
0053デフォルトの名無しさん
2006/11/09(木) 01:32:48つまづいてます
メインの処理とかはどうでいいのですが、常駐アプリとして使うことを考慮して
1. 常に手前に表示
2. 透明度を変えられる
3. キーボードとかマウスとかのイベントを下のウィンドウにスルー
を実現したいのですが3番目を実現する方法がわかりません
0054デフォルトの名無しさん
2006/11/09(木) 02:36:59005553
2006/11/09(木) 18:20:15私のグーグル力が確かならVetoはwxNotifyEventではじめて定義されてるので
wxNotifyEventを継承していないwxMouseEventに対しては呼べないと思うのですが・・・
wxNotifyEvent
ttp://www.wxwidgets.org/manuals/2.6.3/wx_wxnotifyevent.html
0056デフォルトの名無しさん
2006/11/09(木) 20:38:2611月13日に2.8.0リリース予定だそうだ
005753
2006/11/09(木) 23:02:03ttp://forums.belution.com/ja/vc/000/172/70.shtml
Win32APIネイティブでここまでゴリゴリやってできないとなると
それをクロスプラットフォームGUIライブラリに求めるのは酷だと思うのであきらめます
ありがとうございました
0058デフォルトの名無しさん
2006/11/12(日) 18:29:20なんか、そんな話が出てたような気がするんで。
そのソースってまだ公開されてないですよね?
0059デフォルトの名無しさん
2006/11/12(日) 22:16:52おまいら、何でGUI君でんの?
0060デフォルトの名無しさん
2006/11/12(日) 22:21:340061デフォルトの名無しさん
2006/11/12(日) 22:25:370062デフォルトの名無しさん
2006/11/12(日) 22:35:240063デフォルトの名無しさん
2006/11/14(火) 12:45:50EVT_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
0065デフォルトの名無しさん
2006/11/14(火) 16:26:120066デフォルトの名無しさん
2006/11/15(水) 23:21:200067デフォルトの名無しさん
2006/11/15(水) 23:28:33OnCellChangeで再帰呼び出しチェック用のフラグ立てて、
再帰だったら何もしないでreturnすりゃいいんじゃない?
0068デフォルトの名無しさん
2006/11/16(木) 01:22:30ちょっとウザイ
サイズがでかいのはどうにかならないかな?
メモ帳を作ったら、3Mあったよ。
ありえねー
0069デフォルトの名無しさん
2006/11/16(木) 10:40:39ダイナミックリンクにすればいい。
0070デフォルトの名無しさん
2006/11/16(木) 12:26:43フラグのタイミングをいろいろ試して、
・・・
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 を使えば再帰が起らず思い通りになりました
0071毛の生えたブリーフ
2006/11/20(月) 20:42:19私はwxBasicを使っています。結構高速に動くし、楽チンです。
frame = New wxFrame(NULL, -1 "テスト")
frame.Show(True)
このたった二行で、窓が開きます。
暇ができたら自分のサイトに解説を書こうと思っています。
0072デフォルトの名無しさん
2006/11/20(月) 20:58:180073デフォルトの名無しさん
2006/11/20(月) 21:05:55main = start $ frame [text := "test", visible := True]
wxHaskellでも二行、と意地を張ってみるテスト
0074デフォルトの名無しさん
2006/11/20(月) 21:18:480075デフォルトの名無しさん
2006/11/20(月) 21:44:540076毛の生えたブリーフ
2006/11/20(月) 22:37:32frame = 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のウィジェッツはバージョンが
古いので、本家から古めのドキュメントを取ってきて読んでいます。
0077毛の生えたブリーフ
2006/11/21(火) 21:09:59これは本当に奥が深いものです。
76のコードではウィンドウいっぱいにボタンが表示されます。
wxButton(frame, -1, "押してね", wxPoint(40,50), wxSize(50,80))
などにしても駄目です。どうしてか・・・・・三日悩んで見つかったもの
それが「サイザー」
0078デフォルトの名無しさん
2006/11/21(火) 22:18:100079デフォルトの名無しさん
2006/11/21(火) 22:51:550080デフォルトの名無しさん
2006/11/21(火) 23:02:530081デフォルトの名無しさん
2006/11/23(木) 01:54:340082デフォルトの名無しさん
2006/11/23(木) 04:57:53眠い・・・・('A`)
0083デフォルトの名無しさん
2006/11/23(木) 08:26:57[退かぬ、媚びぬ、省みぬの三拍子を持ったプルグラマ]と対極に位置する存在
退かぬ、媚びぬ、省みぬの三拍子を持った[プルグラマと対極に位置する]存在
('A`) ドッチ?
0084毛の生えたブリーフ
2006/11/23(木) 09:11:52ところで
問1、 神魔血破弾を必殺技とする鬼哭霊気の物語のタイトルは
問2、 「アステカの星」を額に持つ、プロレスの星の男の名は
問3、 「三ツ矢」と言えば
問4、 ベガ星連合軍から滅ぼされたグレン星の守護ロボットの名は
0085デフォルトの名無しさん
2006/11/27(月) 10:15:55超遅くなりましたが後者デス
il||li
∧∧
/⌒ヽ)
..,,....〜(,_,,,).....,,,,....もうだめぽ
0086デフォルトの名無しさん
2006/12/15(金) 23:04:27http://jaist.dl.sourceforge.net/sourceforge/wxwindows/changes-2.8.0.txt
0087デフォルトの名無しさん
2006/12/16(土) 09:32:160088デフォルトの名無しさん
2006/12/19(火) 18:22:17http://pc8.2ch.net/test/read.cgi/tech/1165571435/
0089デフォルトの名無しさん
2006/12/19(火) 18:42:020090デフォルトの名無しさん
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; を挿入すれば大丈夫っぽいです。
0091デフォルトの名無しさん
2006/12/31(日) 22:20:34sourceforgeでバグレポできる。
0092デフォルトの名無しさん
2007/02/14(水) 07:29:330093デフォルトの名無しさん
2007/02/14(水) 18:03:270094デフォルトの名無しさん
2007/02/14(水) 19:40:560095デフォルトの名無しさん
2007/02/15(木) 05:30:100096デフォルトの名無しさん
2007/02/15(木) 08:56:490097デフォルトの名無しさん
2007/02/15(木) 19:44:08-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
0098デフォルトの名無しさん
2007/02/15(木) 19:48:21http://namazu.org/~satoru/pub/uu-2004-08/
ここ参考にしました
0099デフォルトの名無しさん
2007/02/15(木) 21:43:53gmtime_rが見て意義。
0100デフォルトの名無しさん
2007/02/16(金) 03:32:09載ってるページってない?
0101デフォルトの名無しさん
2007/02/16(金) 08:58:540102デフォルトの名無しさん
2007/02/16(金) 18:26:44samplesというディレクトリに60万行ほど載ってるけど、まだ足りないの?
0103デフォルトの名無しさん
2007/02/18(日) 01:33:16samplesにはプルダウンメニューのサンプルがないよね。コンボボックスはあるけど。
どのクラスを使えばいいんだろう?
0104デフォルトの名無しさん
2007/02/18(日) 14:13:59wxComboBoxのwindow styleにwxCB_DROPDOWNとか
wxCB_READONLYを指定すればいいんじゃない?
0105デフォルトの名無しさん
2007/02/18(日) 15:50:220106デフォルトの名無しさん
2007/02/18(日) 18:21:10wxChoiceとwxComboBoxってどう違うん?
0107デフォルトの名無しさん
2007/02/18(日) 18:30:04wxComboBoxは、プルダウンメニュー+「メニューにない物も入力出来るテキストボックス」
0108デフォルトの名無しさん
2007/02/23(金) 11:07:220109デフォルトの名無しさん
2007/02/24(土) 08:44:46比べ物にならないな。
糞。
0110デフォルトの名無しさん
2007/02/24(土) 16:36:050111デフォルトの名無しさん
2007/02/25(日) 01:24:440112デフォルトの名無しさん
2007/02/25(日) 01:27:390113デフォルトの名無しさん
2007/02/25(日) 03:00:560114デフォルトの名無しさん
2007/02/26(月) 04:44:02(行番号があらかじめ書いてある原稿用紙に書き込む感じにしたい)
なんかいい方法ない?
0115デフォルトの名無しさん
2007/02/26(月) 08:12:02行番号表示用のウィンドウを作るのが多分一番楽
0116114
2007/02/27(火) 01:48:30はい。それも考えたんですが、本文の行数が多い場合に縦にスクロールさせると、
行番号表示用の行数とずれてしまうという問題があり、詰まっています。
なにかいい手はないでしょうか?
0117デフォルトの名無しさん
2007/02/27(火) 10:53:40テキストコントロールの内容を変更するたびに、
行頭に行番号を追加するようにすればいいんじゃね?
0118デフォルトの名無しさん
2007/02/27(火) 17:01:250119114
2007/02/27(火) 23:27:54いままで簡単なスクリプトを書いて仕事(研究員)に使う程度だったのですが、
GUIつきのプログラムを作れば使いやすくなるし、同僚に自慢できるし、
上司によりアピールできるし。。。と思って始めたばかりです。
私のような初心者でも簡単なGUIが作れるという点ではwxwidgetsは素晴らしいと思います。
ただ、少し凝ろうとすると急にハードルが高く感じられます。今回の行番号表示など。
テキストエディタの表示オプションによくあったので、簡単に出来るのではと思ったのですが。
0120デフォルトの名無しさん
2007/02/28(水) 00:59:27GUIフレームワークって何でもそうです。あらゆるものを御仕着せで用意するのは無理。
用意された機能を利用して実現できればそれでいいわけで、
これくらいはまだすんなり実現できる範疇に入るでしょうよ。
>>116は要はテキストコントロールをスクロールさせたら行番号表示が一緒に
動かないからずれるってことでしょ? それなら行番号表示の方も一緒に動かせればいい。
ということで次のステップはイベント処理ですね。
テキストコントロールのスクロールが発生したときを捕捉して、そのスクロール
量を知り、行番号表示の方に指定量のスクロールをさせる。
0121デフォルトの名無しさん
2007/02/28(水) 01:09:23基本的には、番号用のウインドウを作る→さもメインのパネルの一部かのように組み込む→
(位置を計算して)番号出す→スクロールイベントを取得→表示のアップデート(スクロール)
って流れかねえ。
>テキストエディタの表示オプションによくあったので
なんかこう、GUIをべたーっとした一枚の絵のように考えていたら
簡単にはできないよw
あと、この場合情報としての価値は低いが使用言語も書いたほうがいいよ。
0122114
2007/02/28(水) 03:32:32アドバイスありがとうございます。イベント処理はいままで扱ったことが
ないので、調べてみます。
>あと、この場合情報としての価値は低いが使用言語も書いたほうがいいよ。
失礼しました。
Windows XP, ActivePerl-5.8 でwxPerlを使っています。
wxPerlは比較的マイナーなようですね。
0123デフォルトの名無しさん
2007/02/28(水) 06:37:400124デフォルトの名無しさん
2007/02/28(水) 13:10:52import 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
(つづく)
0125デフォルトの名無しさん
2007/02/28(水) 13:13:13Text = 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分くらいで単純に作ったので、細かいツッコミは無しでお願いします。
0126デフォルトの名無しさん
2007/02/28(水) 23:55:44つか、そのままコピペしたらエラー出たわw
おいバグかよ、って思ったら、インデントの関係だったわ。
(SetNumはMyAppクラス内なのね。)
これだからpythonはw
0127114
2007/03/01(木) 01:47:35ありがとうございます。こういう参考に出来るコードがあればと思っていたところでした。
ぱっと見まだよく分からないんですが、参考にさせてもらいます。
0128デフォルトの名無しさん
2007/03/01(木) 13:20:33すぐに気づけてよかったね。
これだから(ry
0129デフォルトの名無しさん
2007/03/01(木) 16:19:360130デフォルトの名無しさん
2007/03/01(木) 16:36:26日本語でおk
0131デフォルトの名無しさん
2007/03/01(木) 20:30:47「Windowsでテキスト表示のフォントが変わったんですか?」
らしい。
0132デフォルトの名無しさん
2007/03/02(金) 00:17:040133デフォルトの名無しさん
2007/03/02(金) 00:54:120134デフォルトの名無しさん
2007/03/02(金) 03:27:05予言だけど本気でコレの作者に中国人なり日本人なりが頼まないと未来永劫にわたって変更はない。
0135デフォルトの名無しさん
2007/03/02(金) 11:08:47文字化けしないフォントを使わなくなったのならいいんじゃないか
ちなみにエスパーだけど
0136デフォルトの名無しさん
2007/03/02(金) 13:12:040137デフォルトの名無しさん
2007/03/02(金) 23:17:020138デフォルトの名無しさん
2007/03/03(土) 19:44:35次のようなクラスを作ったのですが、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などを持っていないのが原因という事は分かったのですが、代替案が見つからず困っています。
どなたか上手いやり方をご存じないでしょうか?
0139デフォルトの名無しさん
2007/03/04(日) 02:38:550140デフォルトの名無しさん
2007/03/04(日) 03:13:20wxPanelだと、独立したウィンドウになってしまいませんか?
ウィンドウ内のコンポーネントとして配置できるような、SpinCtrlとSliderをセットにしたものを作りたいのですが・・・。
0141デフォルトの名無しさん
2007/03/04(日) 12:29:07- wxEventHandlerを継承してないとイベント扱えないのでは
- DECLARE_EVENT_TABLE必要
まあとにかくEvent Handling Overviewくらいは読めと。
0142デフォルトの名無しさん
2007/03/04(日) 13:08:40wxEvtHanderを継承してみました。
.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今読んでいますが、難しいですね・・・。
0143デフォルトの名無しさん
2007/03/05(月) 00:42:03コントロールからのイベントが到達しないんじゃない?
やっぱ、wxPanel継承して、そのハンドラで受けるのがいいと思う。
そのPanelをひとつのコンポーネントとしてとらえればいいわけだし、
他パネルに配置もできるでしょ?
どうしても嫌なら、wxEvtHandler継承で、
m_slider->Connect(
SliderPage_Slider,
wxEVT_COMMAND_SLIDER_UPDATED,
wxCommandEventHandler(SliderAndSpinCtrlSet::OnSlider),
NULL, this);
とすればできる気がする。動作確認してないけど。
0144デフォルトの名無しさん
2007/03/05(月) 10:28:39wxPanel継承でできました!ありがとうございます。
というかwxPanelをコンポーネントとして配置できる事を知りませんでした。
まだ使い始めたばかりなもので・・・。
0145デフォルトの名無しさん
2007/03/08(木) 10:54:48ウィンドウを二つ表示しているんですが、
片方で何らかの操作をした結果の値を、もう一方のウィンドウ上に配置したスライダー
等のコンポーネントにリアルタイムに反映させたいのですが、何か方法はないでしょうか。
具体的に言うと、片方はwxGLCanvasを継承したクラスで、その画面上をドラッグすると
ある値が変わるのですが、ドラッグ中にもう一方のウィンドウ(wxPanel)上の
スライダー等の表示をその値を反映したものにリアルタイムに更新したいのです。
しかし、ドラッグ中にスライダー等にSetValueで値をセットしても、そのウィンドウに
フォーカスが移動するまでスライダー等の表示が更新されません。
仕方が無いのでドラッグ中にwxPanelのSetFocus()メソッドを呼んで無理やり更新させていますが、
なんか気持ち悪いです。
他に方法はないでしょうか。
0146デフォルトの名無しさん
2007/03/08(木) 11:02:26すみません。自己解決しました。
Update()関数で更新できました。お騒がせしました(汗)
0147デフォルトの名無しさん
2007/03/10(土) 00:07:380148デフォルトの名無しさん
2007/03/10(土) 00:35:21実行後に変更か?それともコンパイル時に指定か?
0149デフォルトの名無しさん
2007/03/10(土) 00:41:52読み込んだ画像の大きさに合わせて変更するような感じです.
言葉足らずですいません..
0150デフォルトの名無しさん
2007/03/10(土) 01:14:440151デフォルトの名無しさん
2007/03/10(土) 01:15:07panel->SetSize(image.GetWidth(), image.GetHeight());
みたいな感じでいいんじゃない?
0152デフォルトの名無しさん
2007/03/18(日) 22:42:36wxFrameにwxGLCanvasセットしているときって、
なぜかwxMessageBoxの表示が全面に出てこなくて、wxFrameを最小化するか、クイック起動の「デスクトップを表示」をするかしないと、
wxMessageBoxが現れなかったりしませんか?
ちなみに当方wxWidgets1.6.3使用。
1.8.2だと治ってるかなぁ・・・。
0153デフォルトの名無しさん
2007/03/19(月) 08:48:422.8じゃなくて?
0154デフォルトの名無しさん
2007/03/19(月) 09:16:38そうでした。2.6.3使用で、2.8だと直ってるかな、でした。
0155デフォルトの名無しさん
2007/03/29(木) 09:01:33wx.DC.GetTextExtent() がラテン文字以外は正しい幅を返してこないようだ。
Windows だとちゃんととれるのに。
これはどこの問題なんだ?
0156デフォルトの名無しさん
2007/04/03(火) 17:10:570157デフォルトの名無しさん
2007/04/03(火) 17:52:33結構反応はやいよ。時々永遠に放置されるけどw
実装具合はポートによって様々。
一応実装されていても細かいところで違っていて、それを吸収する
クラスを書かないといけないこともある。
0158デフォルトの名無しさん
2007/04/04(水) 16:41:07日本語版メーリングリストが無いから作っといた
テンプレにいれといて
0159デフォルトの名無しさん
2007/04/07(土) 00:08:15wxWidgetsってさ、UTFの扱いどうなってるな?F8とか押すとさ、たまーにゴミ文字列
挿入されるんだがあれまじキレそうになるからなんとかしたいんだけど
どうすればいい?
0160デフォルトの名無しさん
2007/04/07(土) 00:49:260161デフォルトの名無しさん
2007/04/07(土) 01:42:17フォントのフォールバックが起こると取れなくなるみたい。
157のいう実装上の差異というところか。直せるのかな。
wxMAC のソースをちょっと覗いてみたら、元のAPIの仕様でそうなってるようにも見える。
Mac 詳しくないのでわかんないけど。
wxて Unicode や XML に詳しい人がコアにいないんじゃないかと思うことがある。
XRC の文法もなんか素人くさいよね。size をリテラルとして指定するとことか。
Uniscribe や TextLayoutManager(だっけ?)相当の機能がつくといいんだけどな。
ワイド文字列でコンパイルしただけじゃUnicode対応とはいえなかろう。
でも古典的な範囲でふつうに使ってる分にはやりやすい。嫌いなわけではないのよ。
あとインプットメソッドまわりは日本人がやらないと絶対始まらないと思うぞ。
0162デフォルトの名無しさん
2007/04/07(土) 10:10:45嘘Unicode絶対間違って実装してるからバグバグになる。
最悪buffer overflowとかも平気でありありな実装で
こいつら死ねよって今からメール送りまくろうと思ってます。
メインの開発者全員にしねよねハゲゴルァメールを送りつけて気を引き締めて
あげたいであります。
0163デフォルトの名無しさん
2007/04/07(土) 23:49:22そんなことよりパッチ送ってやれ。
どーせ理解できねーんだから。
0164デフォルトの名無しさん
2007/04/08(日) 04:19:49Unicodeが問題になることといえばコードの上下関係だけじゃないの?
日本語をソートするとばらばらになるとかでしょ
基底はWindowsAPIをUnicode版に切り替えるだけだから切り替えミスでもしてない限りはOverFlowはないと思うけど
切り替えしてないならアフォだけど
LinuxとMacは単純にUnicodeAPIが無いから非対応という話ではないのか?
ちなみに一からlinuxやMacでUnicode作ろうと思ったら全部書き換えないと無理だろ
0165デフォルトの名無しさん
2007/04/08(日) 07:36:26>LinuxとMacは単純にUnicodeAPIが無い
UnicodeAPI って何だよw
もしかして Windows 以外では UTF-8 とか 16 とか弄れないと思ってるの?
0166デフォルトの名無しさん
2007/04/08(日) 13:27:310167デフォルトの名無しさん
2007/04/08(日) 14:31:15デフォルトキャラセットとな...
全部書き換えないと無理と...
Linux も Mac も使ったこと無いのに色々知ってるんだ
偉いねえ
0168デフォルトの名無しさん
2007/04/08(日) 16:54:120169デフォルトの名無しさん
2007/04/08(日) 16:55:320170デフォルトの名無しさん
2007/04/08(日) 17:47:29当然そうあるべきだと思うが。
ファイルシステムやカーネルオブジェクト等に使われる名前の
エンコーディングに一貫性が無いとロクなことにならない。
名前のエンコーディングが不明では、文字列として正しく処理をしようが無い。
一方名前にエンコーディング情報も付与することにしたら無駄に
データ量が増えインタフェースも複雑化するだけ。
だから、Windows NTやPlan 9はUnicodeだよな。
Unixが時代遅れなだけ。
0171デフォルトの名無しさん
2007/04/08(日) 17:59:31Unicode 扱えないとちょっとダサイ。でもこれはユーザランドのアプリ
とは関係無い話。
0172171
2007/04/08(日) 18:04:28>>170
"カーネルオブジェクト等に使われる名前" って何?
ASCII Code の範囲を超える文字を使うケースってあるの?
つか、カーネルモジュールで Unicode サポートが必要なのって
ファイルシステムだけだよね? そして普通の Un*x なら kiconv
とか(似た様な名前の)機構が既に入ってるよね?
>>170 が時代遅れなだけ?
0173171
2007/04/08(日) 18:12:33ユーザランドのアプリで Unicode を使うには全く問題無いよ。全部書き換える必要なんて
全く無い。それと Mac も Linux もデフォで Unicode 使えるようになってるので、その意味
でも問題無い。
0174デフォルトの名無しさん
2007/04/08(日) 18:35:28そのためのクラス郡はwxWidgetsに用意されてるのだから好きにすればいいのでは?
今の話ってそういう話じゃないよね
Unicodeの入ったバッファの中身をEUCのAPIにパスして文字が化けるんですけどとかそういうこと言ってんでしょ?
そりゃ当たり前だって言ってるだけw
0175デフォルトの名無しさん
2007/04/08(日) 18:40:56Unicodeの中身そのまま渡したらおかしくなるって
0176デフォルトの名無しさん
2007/04/08(日) 18:42:08>EUCのAPI
もっとくやしく。
0177デフォルトの名無しさん
2007/04/08(日) 18:51:32strcpyだとstrcpyAとstrcpyWと2種類のAPIが存在してコンパイルする時に何をベースにプログラムを動かすかで
自動的に切り替わるようになってる
linuxやMacはこういう機構が無いのだから完全にカーネル依存になる
基本的にカーネルの扱う文字コード以外ではコンパイルしてはいけない
別の文字コードを扱う時はバッファ内で変換してからすべての処理に引き渡すようにしないといけない
0178デフォルトの名無しさん
2007/04/08(日) 19:26:12だから、ならねっての。
C/C++ の標準ライブラリとカーネルの話をごっちゃにしてるね。
ついでに言うとロケールについても分かっちゃいない。
0179デフォルトの名無しさん
2007/04/08(日) 19:40:11全てのシステムコールの界面でLC_CTYPEを使ってchar*のエンコード変換を
行うと解釈していいのかな?
それならWindowsの動作に近いんだが。
いや、kernel側にはユーザ側のLC_CTYPEは分からないか。
むしろシステムコールにラッパーかませるべき?どういう実装になってるの?
0180デフォルトの名無しさん
2007/04/08(日) 19:44:560181デフォルトの名無しさん
2007/04/08(日) 19:45:09> strcpyだとstrcpyAとstrcpyW
1. 存在しません。
2. strcpy()はWindows APIではなくC標準のランタイムライブラリです。
3. MSVC++はC標準ランタイムライブラリに対しても、TCHARベースの
汎用テキストマッピングの仕掛けは提供しています。
strcpy()の場合は、_tcscpy() -> strcpy() / wcscpy()です。
0182179
2007/04/08(日) 19:47:41kiconvってカーネルパッチでしょ?
コールゲート通過後の、カーネル空間に入っちゃったただのchar*のデータを
どうエンコード変換すべきか、どうやって判断してるんだ?
Windows APIの場合は、APIのレイヤで全部UTF-16にしてるよ。
その層だと判断できるし、カーネル内部がUTF-16に閉じてクリーンになるから。
0183デフォルトの名無しさん
2007/04/08(日) 19:51:060184179
2007/04/08(日) 19:56:40単純な話なんだから、分かってるのなら答えて欲しいんだけど。
・マルチユーザシステムであるUnixでは、ユーザ毎にLC_CTYPE設定が異なり得る。
これが前提。
・何もしなければ(少なくとも昔のUnixでは)システムコールにchar*を渡せば
それは「そのまま」kernelに素通しで渡るはず。つまり、一貫性の無い
異なるエンコーディングの名前がkernelに渡されることになる。しかも
kernelに渡ってしまった後はそのエンコーディングを判断するすべが無い。
ユーザモードで呼ばれるシステムコールのCインタフェース(ラッパ)には
呼び出し側プロセスの環境のLC_CTYPEが分かっているので、多分ロケールに
従った変換をかけるならここがベストである、ように俺には見える。
で、
・↑のような変換を行うシステムコールラッパの仕掛けなんですか
・kernel内部はUTF-8で統一されているのですか
というのが質問。
間違っているのなら、どこがどう間違っているのか説明してほしい。
0185デフォルトの名無しさん
2007/04/08(日) 20:09:41何つーかさ、↓こういう質問が出る時点で答えるのを躊躇しちゃうのよ。
>・kernel内部はUTF-8で統一されているのですか
正直、君のレベルに合わせて回答を作るのは「単純な話」じゃないと思うよ。
誰にとっても。
0186179
2007/04/08(日) 20:13:21>・kernel内部はUTF-8で統一されているのですか
なぜ、この疑問がそんなに問題なの?
Windows NTは、kernelが扱う「名前」「テキスト」は、全てUTF-16だよ。
kernelの扱う名前のエンコーディングに一貫性が無いと、例えばファイルシステム
のファイル名のエンコーディングが統一されていないと、問題でしょ?
UTF-16に統一することで、そのような問題を避けつつ、ASCIIよりはるかに
大きな文字集合を無問題に扱うことが出来ているわけ。
少なくともWindowsでは。
無論ファイルの中に入っていたりネットワークを流れるデータ(バイト列)の
具体的な中身にはkernelは関与しないよ。それはユーザレベルの話。
0187179
2007/04/08(日) 20:19:48fd = creat(filename, 0666);
を実行した時に、
1) filenameはどこかでUTF-8に変換されますか
2) それはどこで行われますか
3) 変換されないならば、「全ての」ユーザコードが「各自」適切な
エンコーディングを指定しない限り、
ファイルシステムのエンコーディングの一貫性は保障されないということで
良いですね。
ということなんだが。
0188デフォルトの名無しさん
2007/04/08(日) 20:31:18前にも書いたけどさ、符号化方式はファイルシステム固有の話であって
「カーネル内部で統一」という言い方はおかしいよね?
単に一個のカーネルモジュールに過ぎない訳だから。
君も一応マイクロカーネルな OS 使ってるんでしょ?
これはオケ?
0189179
2007/04/08(日) 20:52:19・非Unicodeの符号化形式を採用しているファイルシステムは、それだけで
i18n/m17n対応においてUnicodeベースのもの(FAT32やNTFS)より劣ると
いわざるを得ないだろう。
・ファイルシステムが非Unicodeの符号化形式を用いている場合、ファイルシステムの
モジュールなりドライバなりが、相互変換を行うべき。そしてその層に
それが閉じているならば、カーネルとしてはUnicodeで考えることが出来るので
「統一」と呼べるのでは。
統一されていれば、異なるファイルシステム上の名前を比較したり、ファイル
システム間で名前をコピーすることの問題も無くなるし、
ユーザの実行環境のロケールが何であろうと、そのロケールとの相互変換を
どこかのレイヤが行いさえすれば、問題なくファイル名を取り扱うことが出来る。
・今きづいたのだが、ファイルシステムの符号化形式との間の決めウチ変換を
行うのがkiconvの役目?もしかして。
だとすれば、それだけではWindowsの提供する環境より
随分劣るといわざるを得ない。
0190デフォルトの名無しさん
2007/04/08(日) 20:57:580191179
2007/04/08(日) 21:10:05filenameの中身がUTF-8エンコードされていないなら、結局どうなるの?
1) EILSEQエラーなどではじかれる。
2) 普通にテキストと解釈できないへんな名前のファイルが出来る。
3) プロセス実行環境のLC_CTYPEに応じて、UTF-8に誰かが変換してくれる。
4) ファイルシステムに甚大な被害を及ぼす可能性がある。
0192デフォルトの名無しさん
2007/04/08(日) 21:14:45何答えても屁理屈こねられそうだからみんな嫌がってんだよ。
0193デフォルトの名無しさん
2007/04/08(日) 21:15:331. いいえ
3. はい
0194デフォルトの名無しさん
2007/04/08(日) 21:16:492
0195デフォルトの名無しさん
2007/04/08(日) 21:17:240196179
2007/04/08(日) 21:19:08具体的に俺の「どの」発言が屁理屈なの。
誤っている箇所があるなら指摘してくれよ。
俺はそもそも屁理屈をこねるほど最近のLinuxのことを知らないから、
聞いてるだけなんだが。
0197デフォルトの名無しさん
2007/04/08(日) 21:21:54↓これ
>>189
>・ファイルシステムが非Unicodeの符号化形式を用いている場合、ファイルシステムの
> モジュールなりドライバなりが、相互変換を行うべき。そしてその層に
> それが閉じているならば、カーネルとしてはUnicodeで考えることが出来るので
> 「統一」と呼べるのでは。
> 統一されていれば、異なるファイルシステム上の名前を比較したり、ファイル
> システム間で名前をコピーすることの問題も無くなるし、
> ユーザの実行環境のロケールが何であろうと、そのロケールとの相互変換を
> どこかのレイヤが行いさえすれば、問題なくファイル名を取り扱うことが出来る。
0198179
2007/04/08(日) 21:22:24教えてくれてあんがと。
んじゃ、問題ないとか言い切ってる>>171は勇み足さんかな。
事実上そのUTF-8対応したLinuxとそうでない従来型ロケールベースでは
運用方法から何から全然変わってこない?
皆が皆UTF-8に移行してるわけじゃないでしょ?
どっちでも動くプログラムとか書くの、面倒じゃないの?
0199デフォルトの名無しさん
2007/04/08(日) 21:25:00>>>171は勇み足さんかな。
勝手にあんたの持論に巻き込むな。
0200デフォルトの名無しさん
2007/04/08(日) 21:31:09>事実上そのUTF-8対応したLinuxとそうでない従来型ロケールベースでは
>運用方法から何から全然変わってこない?
誰か俺にも分かるように翻訳してくれ。
0201179
2007/04/08(日) 21:42:51非UTF-8カーネルでユーザ毎にLC_CTYPEが異なる昔ながらのL10N環境と、
カーネルからユーザロケールまでUTF-8を前提とした環境と、
UTF-8カーネルに従来型ロケールの環境では、
ユーザコードでiconv()やwcstombs()等を用いた変換が必要な箇所が
変わってくるんでは?と思ったんだけど。
気のせいだというのならいい。
0202179
2007/04/08(日) 21:43:50えーと、俺は見ての通り頭が悪いし最近のLinuxのことは知らないので、
誤りはもっとピンポイントかつ具体的に指摘してくれると嬉しいのですが。
0203デフォルトの名無しさん
2007/04/08(日) 21:54:41> 誤りはもっとピンポイントかつ具体的に指摘してくれると嬉しいのですが。
スレ違い
0204デフォルトの名無しさん
2007/04/08(日) 23:46:39ごくろーさんw
0205デフォルトの名無しさん
2007/04/08(日) 23:52:150207デフォルトの名無しさん
2007/04/09(月) 00:54:49EUCベースのlinuxでwxWidgetsでUTF-8を用いたアプリを開発するにはどうすればよいかという話でしょ
1.wxWidgetsが馬鹿なので書き換える
2.アプリをEUCで作る
3.linuxをUTF-8に対応させる
さあどれだw
0208デフォルトの名無しさん
2007/04/09(月) 00:57:38ということはMACのカーネルは何のコードがデフォなんだ?
0209デフォルトの名無しさん
2007/04/09(月) 01:32:03もうここで続けるな。どこか他所でやってくれよ。
0210デフォルトの名無しさん
2007/04/09(月) 01:55:55$ touch ほげ
とかやった場合、要するにロケール設定によって全然別の名前のファイルが
作られるわけか?
なんかもう脳死してるっていうか、どうしようもないんじゃねぇのこれ
0211デフォルトの名無しさん
2007/04/09(月) 02:04:260212デフォルトの名無しさん
2007/04/09(月) 02:04:34ほげ:sjis
ほげ:euc-jp
ほげ:utf-8
みたいなファイル名が混在し得るんでしょ?
一つのファイルシステムに。
0213デフォルトの名無しさん
2007/04/09(月) 02:28:20readdir()やftsを使ってで読み取ったファイル名のリスト
をリストボックスか何かに表示したいです。
どうするのが正しいのでしょうか。
0214デフォルトの名無しさん
2007/04/09(月) 02:41:110215デフォルトの名無しさん
2007/04/09(月) 02:45:52kernelがEUCなら当然XシステムもEUCでフォントデータベースもEUCだからEUCのフォントインデックスじゃないと
いわゆる文字化けした状態になる
0216デフォルトの名無しさん
2007/04/09(月) 02:56:42> kernelの文字コード
> kernelがEUCなら
いみが
わかりません。
Linuxでは、文字エンコーディングを指定してカーネルを再構築するのでしょうか?
それによって、具体的にkernelの何が変わるのですか?
Unixはマルチユーザシステムですが、他のLocale設定を使いたいユーザは
どうすればよいのでしょうか?
0217デフォルトの名無しさん
2007/04/09(月) 03:06:44「やろうと思えば出来る」のと、「通常の使用でそういう事故が起きる」
のとでは、当然ながら全然違うんだが。
WindowsのコードページはUnixのロケールほど揮発性でも動的でもないし、
むしろ日本語Windowsなら実質CP932決めウチ、みたいな世界だ。
そしてAnsi版APIは、APIレベルでUTF-16への変換を試みるから、そこで
妙な名前はガードされる。
Unicode版APIは素通しだけどな。CreateFileW()にUTF-16として
正しくない並びの文字列を渡してもそのファイルを作れてしまうのは確か。
ただし、「ユーザが」「普通に」使用していてそういう事態に陥ることは
まずない。
0218デフォルトの名無しさん
2007/04/09(月) 03:55:56もうそのネタを引っ張るのは無理でしょ。流石にフォントの並びは変わらねえw
「カーネルの文字コード」という概念は個人的に破壊力抜群だったけどww
「EUC ベースの Linux」は後々まで語り継がれる名言だったなwww
釣り、なんだよね?
0219デフォルトの名無しさん
2007/04/09(月) 04:06:30おらず X Window System の提供するロケール機構を使用していた。近年になっ
て X のロケールから GNU C Library version 2 に実装されたロケールへの移
行が進んでいる。残念ながら現時点では日本語をはじめとする多バイト文字の
ロケール機構は機能していないが実装作業が進行中であり、近日中に利用可能
になるものと思われる。
0220デフォルトの名無しさん
2007/04/09(月) 04:20:33Windows だって一緒やがな。メールに添付されたファイルのファイル名が EUC-JP
だったら誰が valid なファイル名を探してくれるのでしょうね。zip に入っていたファイルの
ファイル名が UTF-16 のエンディアン違いだったらどうするのかな?
スレ違いなんで↓続きはこっちでやってね。
文字コード総合スレ part2
http://pc11.2ch.net/test/read.cgi/tech/1143375639/
>>219
残念ながらそのネタも面白くないと思われるよ。
0221デフォルトの名無しさん
2007/04/09(月) 04:49:56ちゃんと規格確認してから言ってる?
特定の実装の問題を全体に拡大解釈するなよ
0222デフォルトの名無しさん
2007/04/09(月) 05:18:41規格って、zip に入れるファイル名の文字コードの規格があるの?
特定の実装って何の実装の事?
実際には Linux だってわざわざファイル名に複数の文字コードを混在させて使おうと
する人間はいない。混在可能ってだけだし、それは Windows でも一緒。
0223デフォルトの名無しさん
2007/04/09(月) 05:35:45wxWidgetsのソースをいじるなんてのは非現実的だし
ロケールをわざわざUnicodeに変換したって既存のソフトが動かなくなるだけ
答えは1つ、デフォルトロケールにアプリを合わせて自前でコード変換するだけ
それ以外の方法はない
それ以外の方法しか考えられないやつはただの馬鹿
0224デフォルトの名無しさん
2007/04/09(月) 05:38:24で、何の解決策が必要なんだっけ?
0225デフォルトの名無しさん
2007/04/09(月) 06:06:240226デフォルトの名無しさん
2007/04/09(月) 06:51:00zip に入れるファイル名の文字コードの規格はないの?
0227デフォルトの名無しさん
2007/04/09(月) 07:26:400228デフォルトの名無しさん
2007/04/09(月) 08:08:560229デフォルトの名無しさん
2007/04/09(月) 08:11:09>wxWidgetsのソースをいじるなんてのは非現実的だし
ノンサポートのライブラリなんだから、きちんと全容を把握して
自分で手を入れられるようになっておいた方が良いぜ。
0230デフォルトの名無しさん
2007/04/09(月) 08:54:57オープンソースなんだし常識じゃないの?
カーネルのソースも、wxWidgetsのソースも動作がおかしい場合は、
読んで修正しないとねぇ。
0231デフォルトの名無しさん
2007/04/09(月) 12:06:11あのさぁ。メールの添付ファイルだのzipアーカイブの中身だのに含まれる
ファイル名をどうシステムのファイル名にマップするかってのは、
そのプロトコルなりRFCなりファイルフォーマットなりの話であって
OSの仕事ではないでしょ?
そこに不備があるのなら、それはOSでなくて、符号化形式が
self-containedではないそれらの不備ってだけだろ?
0232デフォルトの名無しさん
2007/04/09(月) 12:08:37単にシェルでファイルをとりあつかうだけのことで問題が生じることは無い。
ファイル名はUTF-16「である」のがWindowsだ。
Windowsのファイル名はコードページに依存しないし、コードページによらず
漢字や拡張ラテン文字を含むファイル名を同時に正しく扱える。
Linuxでは
$ >ほげ
とかやるとどうなるんだっけ?
0233デフォルトの名無しさん
2007/04/09(月) 12:36:110234デフォルトの名無しさん
2007/04/09(月) 13:32:490235デフォルトの名無しさん
2007/04/09(月) 13:38:35入れられるのと実際に入れるのとでは意味が違う
手を加えたらパッチが当たった時にまたそれに合わせて全部拾い出していくのか?
よっぽど暇なんですね
0236デフォルトの名無しさん
2007/04/09(月) 13:41:47わざわざ手を加えてクロスプラットフォームじゃなくならせるなんてよっぽど馬鹿なんですね
0237デフォルトの名無しさん
2007/04/09(月) 17:45:41見ればわかると思うけど、ここ能無ししかいないから
誰も答えられません。
0238デフォルトの名無しさん
2007/04/09(月) 18:26:140239デフォルトの名無しさん
2007/04/09(月) 18:34:55プログラマはそれがわからない馬鹿が多くて本当に嫌な人種だな
むしろ人間じゃねーな
0240デフォルトの名無しさん
2007/04/09(月) 20:18:26そこまで書いたら自分で気付けよw
0241デフォルトの名無しさん
2007/04/09(月) 21:49:34要するに、Windowsのファイル名はUTF-16固定だが
Unixのファイル名のエンコーディングに関しては、規約も標準も
何も無い無法地帯で、かつシステムグローバルでも何でもないLC_CTYPE
環境変数の設定でエンコーディングがころころ変わってしまい、
結果としてプログラム的にどうあるべき、という正しい判断のしようが無いから
糞なんだろ?
どこが「Windowsも同じ」なの?
Zipのようなファイル形式で困ったことになる点だけは確かに同じだな。
だが、それはOSの問題ではないし、論点ずらしだろ。
0242デフォルトの名無しさん
2007/04/09(月) 21:51:50惜しい。あと一歩真実へ踏み出してみよう。
0243デフォルトの名無しさん
2007/04/09(月) 21:56:500244デフォルトの名無しさん
2007/04/09(月) 22:02:560245デフォルトの名無しさん
2007/04/09(月) 22:10:28(符号化形式がselfcontainedでない)ってのはOSに限らない
普遍的かつ伝統的な問題なわけで、
ファイルの中のデータを扱う部分はどうしても汚い仕事にならざるを
得ないと思うのよ。典型的なのが日本語のエンコーディングの自動判別の
ようなヒューリスティック。
Unixの世界ではファイル名もこれと同じなわけだけど、Unicodeに
統一できるなら、したほうがいいに決まってるし、完璧ではないにしろ
それが可能な世界だと思うんだ。
Windowsではそうなってるわけでしょ。
0246デフォルトの名無しさん
2007/04/09(月) 22:18:35それをOSに渡す際にはUTF-16に変換するのが「正しい」ことは分かる。
どうやったらUTF-8に変換できるのか分からないならば、それは貰い方、例えば
ファイル形式やプロトコル等に問題があると言うことが出来る。
それはWindowsの問題ではない。
Unixはそれ以前の問題。それが非ASCII文字を含む場合、どう扱うのが
「正しい」のかが全く分からない。
一般解は存在せず、環境・プログラム毎の特殊解のみがあるのだろう。
0247デフォルトの名無しさん
2007/04/09(月) 23:07:08>どう扱うのが「正しい」のかが全く分からない。
どう扱うのが正しいのかを決めるのはユーザ様な世界なんだよ。
分からないんじゃなくて、勝手な決め打ちしないだけ。
全能なるユーザ様が入力なされた物を勝手に変換するなと。
"touch ほげ" の結果生成されるファイル名がロケール依存で
変化するのは UN*X 的に正しい世界。何故ならユーザ様が
ロケールを設定しているから。アプリはロケールに従ってデータを
読み出せば全く問題無い。これが UN*X 的な正しい扱い方。
入力には寛容に。
ファイル名のエンコードは一応それなりに決まっていて、HFS+
なんかは UTF-16 になっている。決まっているだけで EUC でも
書き込めるのは Windows と一緒だね。
0248デフォルトの名無しさん
2007/04/09(月) 23:26:45\0と/は特別扱いやけどな。
エンコーディング等は、kernelの知・っ・た・こ・と・で・は・な・い。
0249デフォルトの名無しさん
2007/04/09(月) 23:39:550250デフォルトの名無しさん
2007/04/09(月) 23:41:010251デフォルトの名無しさん
2007/04/09(月) 23:42:500252デフォルトの名無しさん
2007/04/09(月) 23:47:16wxWidgetsを正常に使いたかったらわざわざロケールを変更するような暇なことしたり
wxWidgetsを自分好みに作り変えたりするのは馬鹿のすることだ
デフォルトロケールのエンコードにあわせるのが正当なやり方だ
Windowsの場合はSJISとUnicodeの両者が共存出来るようなうまいしくみがあるから選べるだけ
0253デフォルトの名無しさん
2007/04/09(月) 23:50:48核心を突いたね。そう。単一の文字コードに決め打ちして正しいとか言ってるのは
俺様理論なんだよね。簡単に破綻するのにね。しかも UTF-16 だからなあ…
0254デフォルトの名無しさん
2007/04/09(月) 23:53:05一生 Windows だけ使ってる分にはそれで良いと思うよ。
Microsoft 以外が出しているおかしな OS なんて使う必要無いよ!
0255デフォルトの名無しさん
2007/04/09(月) 23:57:45UNIX系なんてそもそもバイナリ配布できるような環境にないだろw
どうせそのコンピュータでコンパイルして動かすのだからロケールなんて統一したほうがかえってややこしいことになる
コンパイル環境のロケールでそのまま動くように作ればいいだけ
問題になるのはスタティック文字列くらいなもん
0256デフォルトの名無しさん
2007/04/10(火) 00:02:380257デフォルトの名無しさん
2007/04/10(火) 01:07:070258デフォルトの名無しさん
2007/04/10(火) 01:10:54> "touch ほげ" の結果生成されるファイル名がロケール依存で
> 変化するのは UN*X 的に正しい世界。何故ならユーザ様が
> ロケールを設定しているから。アプリはロケールに従ってデータを
> 読み出せば全く問題無い。
touch ほげを実行したユーザが、ファイル名を読み取るユーザと同じとは
限らないのがUnixでしょ。読み取るプロセスはデーモンかもしれないし、
cronあたりから実行されているバッチかもしれない。
ftpやtelnet越しのユーザかもしれない。
実におめでたいね。
>>248
うん、それで?
結果として、単に非ASCII以外の文字を含む名前がひどく扱いにくい世界に
なったわけだよね。
時代遅れだね。
>>253
Unixの「自由」は欲しくない自由なんだよ。俺に言わせれば。
プレーンテキストどころか、ファイルの中の行毎にエンコーディングが
異なる、何がなんだか分からないファイルを考えてみればよい。論外だろ?
「自由」にしたいのなら、せめてエンコーディング方式が分かるようにしろと。
0259デフォルトの名無しさん
2007/04/10(火) 01:40:400260155
2007/04/10(火) 02:18:16しかもなぜか関係ないファイル名の話になってるし…。
荒れるからもう Unicode の話はふらないよ…。
ゴメンネ。
0261デフォルトの名無しさん
2007/04/10(火) 08:24:38それで問題無いよ。お仕着せが良いなら Windows を使っていれば良い話。
見掛け上の統一感に満足していれば良い。Windows が最高なんでしょ?
俺は、文字コードの揺らぎは常に存在するものである事を前提に、自分で
自由に制御出来る環境の方が優れていると思う。
いつだって他人の流儀を認められないのが Windows ユーザだよなあ。
ぬるい世界で満足しているなら、そこから出て来なければ良いのにね。
0262デフォルトの名無しさん
2007/04/10(火) 10:12:08> いつだって他人の流儀を認められないのが Windows ユーザだよなあ。
イラッとして書いたんだろうけどこういうひとくくりにする発言はやめようよ。
使ってるOSの問題じゃないからさ。
0263デフォルトの名無しさん
2007/04/10(火) 10:58:01あらゆるコミュニティから「お前は入ってこないで」と思われるタイプ。
0264デフォルトの名無しさん
2007/04/10(火) 12:29:120265デフォルトの名無しさん
2007/04/10(火) 12:43:38テクニカルな内容がほぼゼロ。本人の品性が良く分かる煽り文ですね。
> 俺は、文字コードの揺らぎは常に存在するものである事を前提に、自分で
> 自由に制御出来る環境の方が優れていると思う。
エンコーディング情報が正しく含まれるのならそれもいいだろうけど、
実際には、各行のエンコーディングがごたまぜ、何が使われているか分からない
テキストファイルも同然の状態なわけですよ。ファイル名が何でエンコードされてるか
どこにも記録されない上に、一貫性のある規約も無いのが現実。
自分の環境は自分の都合のいいように運用するからそれでおk?
あなたは仮にもプログラマでしょう?
趣味でLinuxいじってるだけのパソコンオタクじゃないんでしょ?
プログラマとしてコードを書くときに、自分の環境しか考えないの?
例えば「ゆらぎがあることを前提に」、あなたなら>>213のケースにどう
回答するの?
Windowsはあなたに言わせればぬるい環境で、Unixは優れてるんでしょ?
俺様環境でしか通用しない糞コードではなく、
素晴らしい回答を期待してますよ。
0266261
2007/04/10(火) 19:11:39自分の痛さを指摘されて逆上した Windows ユーザ?
まぁ、まともなレベルのものが書けたら相手してあげるよ。頑張ってね。
0267デフォルトの名無しさん
2007/04/10(火) 20:25:500268261
2007/04/10(火) 21:00:09まともなことを言ってるのに「痛くてすみません」ってな態度を取るのは
謙虚でもなんでもない。ただ間違っているだけだ。
それにしても、本当に逆上してるんだな。
負け癖のついた議論好きってこんな感じなんだよな。
0269デフォルトの名無しさん
2007/04/10(火) 21:01:120270261
2007/04/10(火) 21:07:58スレが無駄に伸びる伸びる。
0271デフォルトの名無しさん
2007/04/10(火) 21:10:27お、俺がもう一人居る。あんたが >>261 だとすると、俺は誰だw
何にせよ >>261 の書き込みは破壊力抜群だったみたいで何より。
>>262 には悪い事したけど、まともな人はもう居ないと思ってた。
>>265
あんたプログラマだったの?
プログラマは平日昼間から 2ch やれて羨ましいなあ。
エンコーディング情報は環境変数からとって来るから良いんだよ。
あんたが思ってる様なカオスの世界では無いよ。
0272271
2007/04/10(火) 21:13:42NTFS や HFS+(どちらも UTF-16) で、行儀の良いアプリであれば
そのエンコーディングに従って文字列を格納してくれる。勿論、zip
の例の様に、人間にとって valid な文字列を生成出来ない場合も
あるし、ファイル名が ASCII である事を前提に書かれたプログラム
も存在している。
一方で、エンコーディングが環境に合わせて変わるのが UNIX 方式。
ファイルシステムの数も扱うロケールの数も沢山あるし、OS 自体も
色んな種類があるので入力には寛容に作られている。行儀の良い
アプリならロケールを見てきちんとデータを変換してくれる。勿論
入力が ASCII のみを想定している様なプログラムもあって、8 bit
clean じゃないコマンドも残っていたりする。
どちらの方式でも言えるのは、人間にとって valid じゃない文字列を
生成するのは簡単だという事。valid じゃない文字列を生成する
プログラムが良いか悪いかは別として、そういうプログラムが存在する
事は間違いない。だとすると、エンコーディングを決め打ちして満足
しているのは抜けてるんじゃないかなあというのが俺の意見。
Windows な人が共感出来るかどうかは別として、論理としては理解
出来るように書いているつもりだけど、どうよ?
0273デフォルトの名無しさん
2007/04/10(火) 21:52:01> エンコーディング情報は環境変数からとって来るから良いんだよ
環境変数はユーザ毎、プロセス毎、それどころかプロセス実行中にも
変化し得る揮発性のデータでしょ。実際、
$ LANG=C man foo
のように、一時的にLANGを変えてコマンドを実行するようなことは
日常茶飯事のはずだ。
環境変数が指し示すのはあくまで「プロセスの実行環境」であって、
「ファイル名が何でエンコードされているか」ではない。それらは
全く別のものなのに、一体それでなぜ「良いんだよ」と言えるのか。
・ファイル名のエンコーディング方式が固定化されているか
・ファイル名のメタデータとしてエンコーディング方式が取得/設定できるか
以外に正しい解は無いよ。そんなこと、分かりきってるだろうに。
0274デフォルトの名無しさん
2007/04/10(火) 21:57:11> 論理としては理解出来るように書いているつもりだけど、どうよ?
あなたがUnix方式の穴/不備に故意に目を瞑っていることだけはよく理解できる。
そして、「完璧な方式など無い」と主張することで、そこから目をそらさせようと
しているわけだ。
1. エンコーディング固定化方式
2. エンコーディングが可変で、形式をメタデータとして保持する方式
を比較するなら分かる。
どちらにも得失はあるが、「まともな」やり方だ。
Unixはそのいずれでもない。可変で、形式情報が失われてしまう。
Zipと同じだよ。
0275271
2007/04/10(火) 21:57:12ファイル名が何でエンコードされてるかは重要じゃない。
ファイル名のバイト列をどの文字コードで解釈したいと
ユーザが指定しているかが分かれば良い。
エンコードを決め打ちしても当然例外は発生するんだから
正しい解なんて存在しないんだよ。それに気付ければオケ。
0276デフォルトの名無しさん
2007/04/10(火) 21:59:53馬鹿でもいいから、限界まで頑張って。
0278デフォルトの名無しさん
2007/04/10(火) 22:01:44Unix方式よりずっとマシだ、といっているだけだ。
0279デフォルトの名無しさん
2007/04/10(火) 22:01:47お前は >>261 なんだろ...
自分の役割を忘れるな
0280デフォルトの名無しさん
2007/04/10(火) 22:03:58>ファイル名が何でエンコードされてるかは重要じゃない。
>ファイル名のバイト列をどの文字コードで解釈したいと
>ユーザが指定しているかが分かれば良い。
環境変数という荒くて大雑把な手段では、実際に個々のファイル単位に
エンコーディングを指定することは出来ないし、インタラクティブな
プログラムばかりではない。
問題が大きいのに相変わらず故意に目をつぶりまくっているな。
0281デフォルトの名無しさん
2007/04/10(火) 22:05:43それなら君は Windows ユーザじゃないってことだ。
0282デフォルトの名無しさん
2007/04/10(火) 22:06:57キミ、面白すぎ
Windowsマンセー、欠陥など一切認めないって信者以外はWindows使っちゃ
いけないのネ
0283デフォルトの名無しさん
2007/04/10(火) 22:09:28物事を面白がれるのはいいことだと思うよ。
現実と架空の区別さえついていれば。
0284デフォルトの名無しさん
2007/04/10(火) 22:10:06煩わされてきた日本人であるならば、
名前なんてただのバイト列でいいよ、エンコーディングなんてどうでもいいよ、
なんてことは言えない筈だぞ。
UnixとCの時代遅れな設計がいかに多くの下らない「日本語対応パッチ」のような
adhocな生産物を意味出してきたことか。
0285デフォルトの名無しさん
2007/04/10(火) 22:18:40悪いけど俺にはとてもそうは思えないし、エンコード決め打ちなんて
俺の基準からすると作法がなっていない。
0286デフォルトの名無しさん
2007/04/10(火) 22:19:53いいからしばらく黙ってろって。襤褸が出まくってる。
0287デフォルトの名無しさん
2007/04/10(火) 22:25:18> エンコード決め打ちなんて俺の基準からすると作法がなっていない。
そういう「気分」「好み」でしか語れないのか?
技術者なら、Unix方式に比べてどういう具体的な問題・欠陥があるか語れよ。
0288デフォルトの名無しさん
2007/04/10(火) 22:27:47散々書いたじゃん。今まで何読んでたの?
鬱陶しいから横から煽るのは止めてくれ。
あと >>284 みたいな見当違いの事書くのも勘弁な。
0289デフォルトの名無しさん
2007/04/10(火) 22:29:16> 散々書いたじゃん
「Windowsも完璧ではない、Windowsも同じ」以上のことは書いてない気が
するが?
0290デフォルトの名無しさん
2007/04/10(火) 22:32:23提供するのがwxWidgetsだと思うのだが。
OS批評がしたいならOS板に行ってくれないかな。
0291デフォルトの名無しさん
2007/04/10(火) 22:39:22テキストとバイナリを区別せずただのバイト列として扱うのが
伝統的なUnixおよびCの文化だ。
実際にはそうした愚直で単純なやり方ではマルチバイトテキストを
扱う上で大きな問題を引き起こす。
無論UnixおよびCでそうでないプログラムを書くことは可能だが、
それに対するサポートレベルがWindowsに比べて非常に低い。
Windowsはテキストを明確に区別する。ほぼ全てのテキストを受け渡しする
APIには、Ansi版とUnicode版が存在し、APIユーザ=プログラマは、
自分のプログラムに適したストラテジーによってそれらを使い分けることが出来る。
Ansi版を使う場合はUnixのロケールモデルに近くなり、それらの切り替えは容易だ。
正しくWindowsの作法に従って書かれたプログラムなら、OSに渡るテキストは
全てUTF-16だ。
そうした世界では、もともとm17n対応であり、SJISの2byte目が引き起こす
伝統的な下らない問題とも無縁だ。
ファイルシステム内のファイル名も一貫しており、どんなコードページで
実行していようが全てのファイルを正しく扱える。
テキストを意識し、テキストを正しく扱っているから出来ることだ。
Unixは「何でもあり」と一見自由のようなことを言っていて、
実際にはエラーを起こしがちで問題の多い解でしかないわけだ。
ちょうど行毎にエンコード形式の異なるテキストファイルのように。
0292デフォルトの名無しさん
2007/04/10(火) 22:41:05ガンガレ
もっとガンガレ
0293デフォルトの名無しさん
2007/04/10(火) 22:59:47書いて無くても書いたんだよ!
0294デフォルトの名無しさん
2007/04/10(火) 23:01:57なんだかうれしいよ
0295デフォルトの名無しさん
2007/04/10(火) 23:24:590296デフォルトの名無しさん
2007/04/10(火) 23:31:070297デフォルトの名無しさん
2007/04/10(火) 23:40:31で
wx_dll.dswをコンパイルすると
MessageBox@16が見つからないとかいうエラーが出てdllが生成されないんだけど
なんじゃこりゃ
0298デフォルトの名無しさん
2007/04/11(水) 00:27:410299デフォルトの名無しさん
2007/04/11(水) 01:16:44……Windows&SJIS/UTF-16が苦手にするところだなぁ。WindowsもUTF-8(N)にならんかね?
0300デフォルトの名無しさん
2007/04/11(水) 01:22:32ちゃんとWindowsの開発環境整えてる?Platform SDKとか。
0301デフォルトの名無しさん
2007/04/11(水) 01:28:18libがなかったらそれ以前にlibが無いってエラーが出るからね
その辺はちゃんとやってる
wx.dswのほういわゆる静的リンクは問題なくコンパイルできる
DLLのほうがだめ
0302デフォルトの名無しさん
2007/04/11(水) 07:49:05どこでも UTF-16 は負の遺産と化してるね
0303デフォルトの名無しさん
2007/04/11(水) 12:00:37ファイルやネットワークで使用するデータ交換形式としては無論UTF-8が
望ましいが、マルチバイト処理を必要とするから、内部コードとして
使うにはUTF-32のほうがいいよ。
UTF-16はまぁ中途半端の観は否めないが、内部コードとして使っている分には
それほど大きな不満はないな。
内部コードとしてのUTF-8の問題は、マルチバイト処理を必要とするだけでなく、
全部char*になってしまうということ。これは一見単純で良いようだが、
Unicodeデータかどうかの識別がつきにくく、プログラミング言語の
オーバーロード機能なども利用しにくくなってしまう。
0304デフォルトの名無しさん
2007/04/11(水) 13:04:20内部コードにUTF使うか?
エンディアン無視してUCSそのままだろ。
0305デフォルトの名無しさん
2007/04/11(水) 16:58:30エンコーディングの問題とプログラミング言語の問題も分離できないくせに
偉そうなフリしてて笑えるw
0306デフォルトの名無しさん
2007/04/11(水) 17:35:010307デフォルトの名無しさん
2007/04/12(木) 19:06:05ウィンドウを閉じようとしたら「ハンドルされていないエラーが発生しました」とかいうエラーが
出てしまう。他のOpenGL使うサンプルもみんなそうなんだけど、これってwxWidgetsのバグ?
0308307
2007/04/13(金) 14:14:50原因がわかったぽい。
NVIDIAの提供しているデバッグ用ドライバだとエラーになるっぽい。
通常のGeForceドライバだとエラーにならなかった。
まさかドライバで動作が違うとはね。
0309デフォルトの名無しさん
2007/04/13(金) 21:16:38どうやって実装するの?
wxAcceleratorKeyはメニュー用のようだし、wxKeyEventはフォーカスされた
ウィンドウにしかトリガーしない。
リファレンスにもそれっぽい方法は見当たらなかったのだけど。
0310デフォルトの名無しさん
2007/04/13(金) 21:24:15それだったら"ファイル(&F)"でできるけど。
0311デフォルトの名無しさん
2007/04/13(金) 21:50:37いや、違うだろ。
グローバルホットキーのことでしょ?
OS依存度高そうだな。
0312307
2007/04/13(金) 22:01:38と思ったら、普通のGLUTアプリでもこけた。
こりゃwxWidgetsとは全然関係のない話で、単にドライバの仕様な予感。
スマンカッタ・・・。
0313309
2007/04/13(金) 22:18:52それもだけど、当面はアプリケーションごとのCtrl+Zで取り消し、みたいなやつ。
wxMenu.Appendでitem="Undo\tCtrl+Z"とすればできるけど
これだとメニューを出せない場合に困るし、どうしたらよいものかと。
0314デフォルトの名無しさん
2007/04/16(月) 16:11:20条件によってUIを機能しない(ボタンだったら表示が薄くなって押せなくなる)ように
するにはどうすれば良いのでしょうか。
wxWidgetsのサンプルではEVT_UPDATE_UIというイベントを使っているようですが、
真似して試してみたところ上手く行きません。
0315デフォルトの名無しさん
2007/04/16(月) 16:31:430316デフォルトの名無しさん
2007/04/20(金) 16:19:35面白いの見つけた(windows限定みたいだし余り魅力的ではないかも…)
でも
dc = AggDC(wx.PaintDC(self))
b = aggBrush(self.dc.GetBrush())
p = aggPen(self.dc.GetPen())
みたいに使用するのは簡潔でいいと思うけど
def aggBrush(wxBrush):
def aggPen(wxPen):
を使うたびにどこかで定義しないといけないとか、これなら
素直にGDI+を使ったほうが良いかなという気もしないでもない。
というか日本語資料が一件しかないしな…
0317デフォルトの名無しさん
2007/04/22(日) 13:01:11ゲーム作るんならどにみちバッファ直接書いたほうが早いぞ
DirectXより早いぞ
0318デフォルトの名無しさん
2007/05/05(土) 02:07:54誰か、コレを和訳してないかな?
Cross-Platform GUI Programming with wxWidgets
0319デフォルトの名無しさん
2007/05/05(土) 06:39:51してみたけど。
0320デフォルトの名無しさん
2007/05/05(土) 11:16:140321デフォルトの名無しさん
2007/05/05(土) 22:59:170322デフォルトの名無しさん
2007/05/06(日) 01:33:230323デフォルトの名無しさん
2007/05/06(日) 01:41:180324デフォルトの名無しさん
2007/05/06(日) 02:00:32ネタになるだろ?
だれかやって味噌〜
0325デフォルトの名無しさん
2007/05/06(日) 02:25:380326デフォルトの名無しさん
2007/05/06(日) 02:48:26ネタと言うか宣伝だわな
0327デフォルトの名無しさん
2007/05/06(日) 06:59:320328デフォルトの名無しさん
2007/05/06(日) 09:40:400329デフォルトの名無しさん
2007/05/06(日) 15:18:54ttp://monarch.sourceforge.jp/
0330デフォルトの名無しさん
2007/05/06(日) 18:26:03技と力と心が通う ザビタン(hehe!!)
イビル(hehe!!)ガブラ(Woo!Ohooho!!)
うなれジャンケル! アクサイザー3!!
0331デフォルトの名無しさん
2007/05/06(日) 19:42:180332デフォルトの名無しさん
2007/05/06(日) 20:14:110333デフォルトの名無しさん
2007/05/06(日) 20:16:530334デフォルトの名無しさん
2007/05/06(日) 20:25:59これが われらの 生きる道
アクサイザー!(Zanzan zazan!) アクサイザー!(Zanzan zazan!)
アクサイザー3!!
0335デフォルトの名無しさん
2007/05/06(日) 21:27:250336デフォルトの名無しさん
2007/05/10(木) 03:49:37コマンドアプリでイベント処理する場合にはどうすれば?
自作クラスにイベントハンドラを作る方法ってあるの?
ちなみにプログラムの特性上スレッドは却下、同期処理も却下
0337デフォルトの名無しさん
2007/05/10(木) 04:31:270338デフォルトの名無しさん
2007/05/10(木) 05:09:20ふふり
0339デフォルトの名無しさん
2007/05/11(金) 20:01:03便利なんだから(?)
0340デフォルトの名無しさん
2007/05/11(金) 22:58:07システムの時刻とアプリケーションの時刻を独立して管理したいんだけど
wxDateSpanとwxTimeSpanをwxDateTime::Nowに加算すればいいわけですね
問題はアプリケーションで管理すべき時刻とシステム時刻の差の計算はどうすればいいの?
wxDateSpanとwxTimeSpanを2個のwxDateTimeの差から計算するには?
0341デフォルトの名無しさん
2007/05/11(金) 23:24:290342デフォルトの名無しさん
2007/05/12(土) 16:44:230343デフォルトの名無しさん
2007/05/12(土) 20:18:490344デフォルトの名無しさん
2007/05/12(土) 21:01:480345デフォルトの名無しさん
2007/05/12(土) 21:53:13コンパイルに数時間かかるし
ドキュメントはほとんど英語しかないし
容量が1G以上いくし
内部構造まで解析できないとバグと仕様の区別が付けられないから不安定だし
まあようするに厨房には無理w
0346デフォルトの名無しさん
2007/05/12(土) 22:33:320347デフォルトの名無しさん
2007/05/12(土) 22:47:36でも、コンパイルは各環境で行わないといけない。
MFCの代わり?
(似てるし)
0348デフォルトの名無しさん
2007/05/12(土) 23:51:09まじっすか・・・
0349デフォルトの名無しさん
2007/05/13(日) 01:23:23MFCライクだけどMFCをさらに洗練したような感じになってること
完全クロスプラットフォームだからネットワーククライアント関係を作るなら便利
完全に無料だからライセンスを一切気にする必要がない
多国語サポートとかとにかく機能はすさまじく充実してるけどクラス設計が洗練されてて覚えやすい
0350デフォルトの名無しさん
2007/05/13(日) 01:30:20クラスの命名規約やパラメータのパターンやイベント処理方法がすべて統一されているから
ダイアログの表示の仕方を覚えると、フレーム作ったりMDI作ったりする方法がなんとなく想像できる
ちょっとそれらしい名前のクラスリファレンスを見るだけでダイアログを表示する方法と同じ方法で
いろんなものが表示できる
0351デフォルトの名無しさん
2007/05/13(日) 17:04:37英語が出来ないと辛い
0352デフォルトの名無しさん
2007/05/13(日) 19:36:07当方、wxPython使い。
0353デフォルトの名無しさん
2007/05/13(日) 20:49:24使わない機能も勝手に付いてきて重い
0354デフォルトの名無しさん
2007/05/14(月) 00:01:36でかいけどw
0355デフォルトの名無しさん
2007/05/14(月) 01:55:39ボタンの押下はポーリングでスキャンする方法しかないのでしょうか??
ボタンを長押ししたりすると、連打してるようになるし、
ボタンをちょっとだけ押しても反応しない時があるので困ってます。。
ボタンが押された時にだけイベントを発生させることはできないのでしょうか?
0356デフォルトの名無しさん
2007/05/14(月) 02:41:260357デフォルトの名無しさん
2007/05/14(月) 10:06:150358デフォルトの名無しさん
2007/05/14(月) 13:49:100359デフォルトの名無しさん
2007/05/14(月) 21:10:12みんなが辿る道
0360デフォルトの名無しさん
2007/05/14(月) 21:22:29やっぱりデカイのが痛い。
0361デフォルトの名無しさん
2007/05/14(月) 21:33:18デカイと痛いのか。。。
力を抜けよ。
0362デフォルトの名無しさん
2007/05/14(月) 21:43:010363デフォルトの名無しさん
2007/05/14(月) 21:45:430364デフォルトの名無しさん
2007/05/14(月) 21:45:59いやまて、チ○コじゃなくて、オパーイかも知れんぞ。
0365デフォルトの名無しさん
2007/05/14(月) 22:22:07そっちだって、でかいとジャンプするだけで痛いよ?
0366デフォルトの名無しさん
2007/05/14(月) 23:01:20それはつまり,C++を理解できてない人が打ちのめされたあげく,
Cだけで書こうと思い立つもCすらよく理解できていないからハンドラの扱いが
よくわからなくてWinAPIのサンプルをコピペしてダイアログ作って
テキストボックスに身長を入力したら標準体重を表示するだけの
プログラムの計算ルーチンだけを書いていたら頭の中でガリガリなった
ような気がする状態のことですね。あるある。
0367デフォルトの名無しさん
2007/05/15(火) 01:46:531.71以上にしたいんだけど、どうすればいいの?
0368デフォルトの名無しさん
2007/05/15(火) 03:07:02しかしDLLを作るには英語力が必要w
0369デフォルトの名無しさん
2007/05/15(火) 03:35:100370デフォルトの名無しさん
2007/05/15(火) 04:08:220371デフォルトの名無しさん
2007/05/15(火) 10:30:440372デフォルトの名無しさん
2007/05/15(火) 20:22:520373デフォルトの名無しさん
2007/05/15(火) 20:42:070374デフォルトの名無しさん
2007/05/15(火) 20:46:30ランタイム含めても2MBいくかいかないかだけどな
本体はよっぽとすさまじいシステムでもない限りせいぜい500kbくらいか
0375デフォルトの名無しさん
2007/05/15(火) 21:32:13それpy2exeの話?すげーなそれは・・・
0376デフォルトの名無しさん
2007/05/15(火) 23:21:420377デフォルトの名無しさん
2007/05/16(水) 01:35:240378デフォルトの名無しさん
2007/05/16(水) 15:39:210379デフォルトの名無しさん
2007/05/16(水) 16:02:13マゾか?w
C++でもJavaでもいいのにw
0380デフォルトの名無しさん
2007/05/16(水) 19:19:460381デフォルトの名無しさん
2007/05/16(水) 22:34:24あと C++ は変則的過ぎるから気持ち悪い。
0382デフォルトの名無しさん
2007/05/16(水) 22:37:38俺はそのカオスさも嫌いじゃないが
0383デフォルトの名無しさん
2007/05/16(水) 23:03:590384デフォルトの名無しさん
2007/05/17(木) 00:29:48あれは、ごまかしてるんじゃない。開き直ってるんだ。
0385デフォルトの名無しさん
2007/05/19(土) 08:58:48それだと、途中からそう考え出したみたいだから。
C++のあのスタンスは最初からだよ。
0386デフォルトの名無しさん
2007/05/19(土) 22:21:30ケチケチ wxWidgets
http://bunysmc.exblog.jp/3647189/
0387デフォルトの名無しさん
2007/05/20(日) 00:19:53てか公式でランタイムのバイナリ配布すればいいのにね
0388デフォルトの名無しさん
2007/05/23(水) 00:13:34国内産を使え!!
自分に合うのがなければ作れ!!
0389デフォルトの名無しさん
2007/05/23(水) 00:31:340390デフォルトの名無しさん
2007/05/23(水) 00:47:170391デフォルトの名無しさん
2007/05/23(水) 01:05:59wxURL<wxHTTPはメインスレッドから呼ぶと非同期通信になってGetInputStreamした段階で必ずreturn NULLしやがりますが
イベント登録も無いし、繋がったタイミングを検出する仕組みが一切ないのですが
これは完全にセカンドスレッドで動かすことを想定してこういう仕様にしたのだろうか?
これだけwxWidgetsじゃないような作りになってて使い物にならん
0392デフォルトの名無しさん
2007/05/23(水) 02:17:480393デフォルトの名無しさん
2007/05/23(水) 08:03:410394デフォルトの名無しさん
2007/05/25(金) 00:38:130395デフォルトの名無しさん
2007/05/25(金) 00:48:09デカイから。
Xcb のラッパーの Xlib のラッパーの Gdk のラッパーの Gtk+ のラッパーな
ライブラリなんて普通は使いたくないでしょ。
0396デフォルトの名無しさん
2007/05/25(金) 01:03:120397デフォルトの名無しさん
2007/05/26(土) 20:51:34Readでブロックしてしまう前に排他制御したいのでデータの有無を事前に確認したいのだが
このCPU使用率はなんとかできんのか?
0398デフォルトの名無しさん
2007/05/31(木) 10:59:42Windowsは間違いなくそっちの方向へいくし、Macも使えるし、
LinuxはMoonLightでとりあえず自分的にはGTKよりwxWidgetsのほうが
いいなとおもってた口だが、Silverlightのせいでメリットなくなったな。
0399デフォルトの名無しさん
2007/05/31(木) 15:15:370400デフォルトの名無しさん
2007/05/31(木) 17:29:520401デフォルトの名無しさん
2007/05/31(木) 18:01:31新幹線が出来ちゃったんでもうその話は終わりだねって感じじゃん?
0402デフォルトの名無しさん
2007/05/31(木) 18:30:270403デフォルトの名無しさん
2007/05/31(木) 19:50:090404デフォルトの名無しさん
2007/05/31(木) 20:25:040405デフォルトの名無しさん
2007/06/06(水) 13:24:51WxWidgeに興味がなくなったが、先日v.2.8.4をダウンロードしたら、ずいぶん
サイズが小さくなっている。Windous環境静的リンクで簡単なものなら、EXE
圧縮なしでも1Mくらいになっている。
で、興味がわいてきてお試し中だが、ライブラリが、UNICODEか否か、リンクが
静的か動的か、各OSが準備している部品を使うか否か、Debug版か否か・・
の組み合わせで16種類もあるので、ライブラリ構築にすごく時間がかかった。
0406デフォルトの名無しさん
2007/06/15(金) 18:01:40>死亡寸前の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/
てわけで、
新人が来るかもしれないので、みなさん準備をしてください。
0407デフォルトの名無しさん
2007/06/15(金) 18:04:25よろしくお願いします。
0408デフォルトの名無しさん
2007/06/15(金) 20:12:430409デフォルトの名無しさん
2007/06/15(金) 20:37:28何で wx を使えもしない人間が wx がお勧めとか書いてるんだよw
適当な誘導だなあ
0410デフォルトの名無しさん
2007/06/15(金) 20:46:30実際に使ってる人間は勧めたりしないさ…
0411デフォルトの名無しさん
2007/06/15(金) 23:23:180412デフォルトの名無しさん
2007/06/16(土) 00:49:19今MSW版の2.8.4ビルドして、samplesのいくつかをDLL Unicode Releaseの設定でこさえて実行したら
ウイルスバスター2007が警告出しやがったんだが同じ経験した椰子いる?
まぁ、バスタの警告はなんかもう、「俺が知らないプロセスは全部マルウェアだ!!」ってノリに見えるので
それ自体は気にならんけど。
0413デフォルトの名無しさん
2007/06/17(日) 15:35:160414デフォルトの名無しさん
2007/06/19(火) 23:28:280415デフォルトの名無しさん
2007/06/25(月) 00:16:24管理者の人はまだここを見てるのかな
0416デフォルトの名無しさん
2007/06/25(月) 12:38:50一人でもいいからやってみる!っていう気概があるなら、メンバーに追加するので、sourceforge.jpのログイン名教えて下さいね。
0418デフォルトの名無しさん
2007/06/27(水) 06:14:440420くれくれくん
2007/07/18(水) 00:18:40WindowsXPノートのHDが暑さでダウン〜。HD交換しましたがシステムが...
間に合わせに日経Linux7月号のDVDからUbuntu7.04日本語版をいれましたが
なかなかいいじゃないですか。
とりあえずLINUXに乗り換えて
前環境を再構築中です(xp+cygwin -> linux)
とりあえずecos cofiguretion tool を動作させたいのですが。
ttp://www.ecoscentric.com/devzone/configtool.shtml
wxWidgetsの実行環境が必要みたいで
ここにたどりつきましたが
簡単インストールはどうすればいいのでしょうか?♪〜
以上くれくれくんでした
0421デフォルトの名無しさん
2007/07/18(水) 00:44:370422デフォルトの名無しさん
2007/07/20(金) 01:34:020423デフォルトの名無しさん
2007/07/20(金) 03:19:22あの手のタイプがLinuxに関わっても本人のためにならないとは思うけど。
0424デフォルトの名無しさん
2007/07/21(土) 01:36:26本人のためにならない、だけなら自業自得だからいいんジャマイカ。
と、2.8.4 mswでどうにも最小サイズの指定が効かずに四苦八苦しているど素人が言ってみるテスト。
0425デフォルトの名無しさん
2007/08/10(金) 20:34:20DEP
0426デフォルトの名無しさん
2007/08/17(金) 01:53:050427デフォルトの名無しさん
2007/08/21(火) 14:46:54デバッグビルドはうまくできました。
---
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
---
以上です
0428デフォルトの名無しさん
2007/08/21(火) 16:04:33バージョンを上げたらエラーが出なくなりました。
MinGWインストールで最新バージョンが入るんじゃなかったのか(´・ω・`)
すんませんでした
0429デフォルトの名無しさん
2007/08/25(土) 02:27:23あれば、金払ってでも欲しいんですが。
0430デフォルトの名無しさん
2007/08/25(土) 02:54:43できれば無料がいいけど
0431デフォルトの名無しさん
2007/08/26(日) 23:19:38Windows(MinGW) で wxGraphicsContext のあたりのクラス使えた香具師いない?
コンパイルしようとしたら GDI+ のライブラリがないらしくて、
./configure で --enable-graphics-ctx を指定してもエラーだらけだよう。
ちょろちょろぐぐってんだけど、MinGW で GDI+ となると情報見つからないし……助けてー。
0432デフォルトの名無しさん
2007/08/28(火) 21:56:130433デフォルトの名無しさん
2007/08/29(水) 13:51:53グロ注意
0434デフォルトの名無しさん
2007/09/01(土) 12:55:46結構よさげだと思い、wxGladeから移転したいのですが、
xrcのインポートの仕方が分かりません。
知っている方いましたら教えて下さい。お願いします。
0435デフォルトの名無しさん
2007/09/10(月) 22:48:13(環境: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に置き換えてみました。(続きます)
0436435
2007/09/10(月) 22:49:35package 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特有の
設定などがあるのでしょうか?原因のわかる方がいらしたらアドバイスお願いします。
0437デフォルトの名無しさん
2007/09/11(火) 05:05:49あなたの疑問点とは違うが
> これをwxHtmlWindowに置き換えてみました。(続きます)
ここが既に間違い。wxHtmlWindowはフレームじゃないんで。
他のWindowの中に貼り込むもの。
いきなり見様見真似で突っ込む前にもう少しwxの概念とかを
飲み込んだ方がいいと思う。
0438435
2007/09/12(水) 02:54:10ご指摘のとおり、wxの基本的な部分で勘違いをしていました。親ウィンドウを作って
そのなかにpanelのようにwxHTMLwindowを設定してはりこむのですね。
エラーですがuseの使い方が悪かったようで
ttp://www.opensubscriber.com/message/pdk@listserv.ActiveState.com/2520427.html
とwxPerlのチュートリアルのスクリプトを組み合わせて色々いじってみたら簡単なhtml表示
ウィンドウが出せるようになりました。
wxどころかperlの使い方の基本すらなっていなかったようで、もっと勉強してから書き込むべきでした。
0439デフォルトの名無しさん
2007/09/12(水) 13:31:590440デフォルトの名無しさん
2007/09/12(水) 18:02:430441デフォルトの名無しさん
2007/09/14(金) 21:48:42http://opentechpress.jp/developer/07/09/14/015234.shtml
0442デフォルトの名無しさん
2007/09/15(土) 00:30:180443デフォルトの名無しさん
2007/09/16(日) 13:54:10と聞いて飛んできますた
が見間違えだった
0444デフォルトの名無しさん
2007/09/20(木) 23:58:51ttp://www.wxwidgets.org/wiki/index.php/ODBC
によるとMySQLのODBCドライバにバグがあるらしいんだけど
ここに書いてあるとおりにしてもサンプルがちゃんと動かないし
直接API使うしかないのかな
0445デフォルトの名無しさん
2007/09/30(日) 13:44:51wxWidges と OpenGL を組み合わせた無償または有償アプリ
(少なくとも自作部分に関してはソース非公開が前提)
を作るとして、本当だったら、エンドユーザーには
wxWidgets と OpenGL を事前にインストールしてもらわないといけない。
それは面倒なので、インストールしていない環境でもそのまま実行でいるように wxWidgets と OpenGL を組み込んだ状態で
アプリケーションを作成・配布したい(つまり、wxWidgets と OpenGL のDLLを EXEと一緒に配布または販売)んだけど、これってライセンス的に問題ある?
0446デフォルトの名無しさん
2007/09/30(日) 14:05:590447デフォルトの名無しさん
2007/09/30(日) 15:44:40Can 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.
0448デフォルトの名無しさん
2007/10/01(月) 00:26:110449デフォルトの名無しさん
2007/10/01(月) 01:34:390450デフォルトの名無しさん
2007/10/01(月) 05:14:100451デフォルトの名無しさん
2007/10/02(火) 02:06:20昨日半徹だたのでちょとフイタw
……いい加減寝よorz
0452デフォルトの名無しさん
2007/10/05(金) 04:59:01wxWidgetsは商用プロジェクトと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 の個人利用、教育利用、商用利用にかかわらず適用されます
。。。みたいなことが書いてあるってことであってる?
0453デフォルトの名無しさん
2007/10/05(金) 08:27:22>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 のコードとライセンスの矛盾を起こす事はありません。
0454デフォルトの名無しさん
2007/10/05(金) 08:36:04neither will wxWidgets conflict with ~ は
wxWidgets will not conflict with ~ と読み替えると宜し。
0455デフォルトの名無しさん
2007/10/05(金) 10:25:13つくづく、学校でちゃんと英語をやっておけば良かったと思うよ。
0456デフォルトの名無しさん
2007/10/13(土) 08:26:26これって、一つの frame には GLCanvas しか
配置できないのかな?
frame -> panel -> glcanvas とか、
frame -> gridsizer -> glcanvas + textctrl とか
やろうとすると、フレーム全体が全く描画されなくなってしまう
OpenGLって、コントロール単位ではなく
ウィンドウ単位でしか描画してるのかな?
0457デフォルトの名無しさん
2007/10/13(土) 11:05:250458デフォルトの名無しさん
2007/10/16(火) 03:27:37普通にOpenGLで多画面出来るかどうかの問題だ
出来るのならプログラムか環境に問題がある
0459デフォルトの名無しさん
2007/10/16(火) 15:06:43wxForms - wxWidgets Form Designer for C++ Builder
これってどうよ?
0460デフォルトの名無しさん
2007/10/16(火) 15:54:23・1つのプロジェクト(というかmakefile?)ではどちらにするか決定するものでしょうか?
・どう違うのでしょうか?(どちらが良いのでしょうか?)
解説サイトでも何でも良いので教えて下さいorz
0461デフォルトの名無しさん
2007/10/16(火) 18:29:280462460
2007/10/16(火) 18:33:54メイン以外もどうすべきか教えて下さい。
0463デフォルトの名無しさん
2007/10/17(水) 01:33:37どちらがいいとか悪いとかいう問題じゃない。好きなほうにしたらいい。決められないなら鉛筆ころがせ。
0464デフォルトの名無しさん
2007/10/17(水) 01:59:55http://python.matrix.jp/projects/wxPython/bad-know-how.html
0465460
2007/10/17(水) 08:39:03>>464
そういう内容を知りたかったんです。
この問題は解決しましたが、
1つ1つ問題を解決するの大変orz
Delphiなんかだと、
TFormがウィンドウで、その中に貼り付けるのがTFrameだったりするので、
危うく間違えるところですた。
0466デフォルトの名無しさん
2007/10/17(水) 09:11:38知らないものを触る時はまず付属のサンプルを見た方が良いのでは?
余計なお世話かも知れませんが。
0467デフォルトの名無しさん
2007/10/17(水) 10:47:19コンパイラはgccですか?Xcodeですか?
0468デフォルトの名無しさん
2007/10/17(水) 12:22:55Xcodeでgccですよ
0469467
2007/10/17(水) 18:25:11Eclipseみたいなもんかぁ。
サンクス
0470デフォルトの名無しさん
2007/10/18(木) 01:29:590471デフォルトの名無しさん
2007/10/18(木) 07:15:420472デフォルトの名無しさん
2007/10/18(木) 10:10:480473デフォルトの名無しさん
2007/10/18(木) 10:11:31>「wxFormsで始めるwxWidgetsプログラミング」
こういう答えを希望してるわけ?
0474デフォルトの名無しさん
2007/10/18(木) 21:07:420475デフォルトの名無しさん
2007/10/19(金) 09:08:22”クラスライブラリ+IDE”だお。
これだと差分コードしか表れない。
但し、VC++/MFCは除く。
0476デフォルトの名無しさん
2007/10/20(土) 00:09:580477デフォルトの名無しさん
2007/10/22(月) 08:52:03それって何て手書き?
0478デフォルトの名無しさん
2007/10/22(月) 18:37:55いや、MFCは手書き不可みたいに書いてたから。
手書きMFCなんてやる理由はないとは思うけど。
0479デフォルトの名無しさん
2007/10/27(土) 22:42:12ちょうどrich textのサンプルあったので動かしてみましたが、これって日本語入力できないですね。
どうやらeditor boxみたいなおネイティブのコントロール使ってる場合はOKなんですが
自力で作るコントロールの場合はそのままでは無理っぽいです。
そのあたりハンドルできる方法ってないですか?
今はWinowsでVC使って動かしています。
このあたりクロスプラットフォームで日本語入力も完璧なのって結局Javaなんですかね・・・
なるべくならC/C++でやりたいと思ってます。
wxWidgets以外にもいい候補あったら教えてください。
0480デフォルトの名無しさん
2007/10/28(日) 00:27:43自分で実装するか、IIIMF とか Anthy とか使ってみるかじゃないかな。
0481デフォルトの名無しさん
2007/10/28(日) 01:29:400482デフォルトの名無しさん
2007/10/28(日) 01:35:220483479
2007/10/29(月) 00:04:53wxWidgetsだけではやっぱり無理っぽいですね。
インライン入力の制御は面倒なのでできればありもので済ましたいです。
で思いあたったことにマルチプラットフォームといえばOpenOfficeがありました。
あれのtoolkitってどうなってるんですかね。
SDKあるみたいなのでちょっと調べてみます。
0484デフォルトの名無しさん
2007/10/29(月) 00:10:510485デフォルトの名無しさん
2007/10/29(月) 01:27:04Kirix StrataがMozillaベースに変わってるっぽい。
ttp://www.kirix.com/index.html
wxAUIは今後も開発とあるけど。
0486デフォルトの名無しさん
2007/10/30(火) 23:46:59が遅すぎて使えないんだけど・・・。
なんかないですか?
0487デフォルトの名無しさん
2007/11/01(木) 00:29:32思いつきだがそこはImageMagickに任せてしまうとか。
wxImage <-> ImageMagickのイメージ形式
の変換コストが問題になるほどだとあかんけど。
0488デフォルトの名無しさん
2007/11/01(木) 00:51:48パッと見ただけの実に適当な印象だが。
wxImageはRGB24bitのピクセルデータと、8bitのαチャンネルのデータを
別々に持ってるようだねえ。で、イメージの配列には当然のように
バイト単位でアクセスしている。
ネイティブな形式が例えばAGBRなら、さらにそれをいちいち変換して描画
するんだろうね。
いかにも遅そうだねえ。
0489486
2007/11/01(木) 01:21:15>488
レスありがとうございます。
>486
別プロセスで ImageMagick 起動ってことですよね。
たぶんそっちの方がコスト的には高いかと。
うーん。せめて StretchBlt でリサイズしつつメモリに転送とか
できたらいいのに・・・。
0490デフォルトの名無しさん
2007/11/01(木) 01:29:20ん? ライブラリリンクしちゃえば、という積もりだったんだけど。
っても今確認したらGPLかぁ > ImageMagick
0491デフォルトの名無しさん
2007/11/01(木) 08:04:20ポインタで直接処理した後wxBitmapに変換して使用するしかないかと。
画面がリサイズされたときなど必要に応じて最低限の変換で対応するか、
OpenGLあたりを使うほうがよさそう。
0492デフォルトの名無しさん
2007/11/01(木) 15:56:10>LGPLでは動的な(実行時)リンクに限り、GPL/LGPLに従わないソフトウェアでの利用も許容している。
あれ?
wxWigetsってLGPLだから、静的リンクした場合、ソースを公開しなきゃならないの?
0493デフォルトの名無しさん
2007/11/01(木) 16:49:000494デフォルトの名無しさん
2007/11/01(木) 22:11:221. LGPL にソース公開の義務は無い
2. wxWidget は LGPL の制限を緩める為の追加条項を加えたライセンスを採用している
3. 何か契約をする際は必ず原文に目を通した方が良い
0495486
2007/11/02(金) 01:02:56大変失礼しました。
ImageMagickのライブラリってあるんですね。勉強不足でしたorz
wxIMAGE_QUALITY_NORMALで写真の画像をリスケール
したところ、思ったよりも画像が崩れなかったので、
しばらくはコレを使おうと思います。
32x32とかのアイコンとかを拡大するとダメダメだけど・・・
0496デフォルトの名無しさん
2007/11/04(日) 14:03:59ボタンの配置について質問です。
ダイアログで「OK」ボタンと、「キャンセル」ボタンを横並びで表示したいのですが、
縦に並んでしまいます。
どうしたらよいのでしょうか?
0497デフォルトの名無しさん
2007/11/04(日) 15:11:340498デフォルトの名無しさん
2007/11/04(日) 22:22:30エスパー初心者がいってみよう
wxHORIZONTAL
0499デフォルトの名無しさん
2007/11/04(日) 22:50:39・・・ ・・ ・・ ・ ・・・
ディスプレイを縦にするといいと思うよ。
0500デフォルトの名無しさん
2007/11/05(月) 01:10:470501デフォルトの名無しさん
2007/11/06(火) 01:08:10サンプルを見てもよくわかりません。
ほかにわかりやすいサンプルはありませんか?
サンプル:console.cpp 3238行目
0502デフォルトの名無しさん
2007/11/06(火) 04:34:480503デフォルトの名無しさん
2007/11/09(金) 00:20:09GtkmmとwxWidgetsのどちらを使うか迷っています
既に両方使ったことのあるかたにアドバイスを
頂きたいのですが
0504デフォルトの名無しさん
2007/11/09(金) 00:54:22wxWidgets の方がアプリを使ってて気持ちいい
0505デフォルトの名無しさん
2007/11/09(金) 02:01:39これまで打ち込んだやつがヒストリーとして表示するように
したいんだけどこういうのはなんか用意されているでしょうか?
0506デフォルトの名無しさん
2007/11/09(金) 04:37:15すごく分かりやすい説明です
本当にありがとうございました
とりあえず両方やってみます
wxWidgetsで分からないときは
ここを頼りにしていますので
よろしくお願いします
0507デフォルトの名無しさん
2007/11/09(金) 05:54:31> wxWidgetsで分からないときは
なんたらoverview
リファレンス
本体ソースコード
サンプル
の順かなあ、俺が頼りにしたのは。
0508デフォルトの名無しさん
2007/11/14(水) 03:42:08wxBlog見たらver3.0でつきそうな感じだね。
0509デフォルトの名無しさん
2007/11/14(水) 12:03:091,ゴッドサイザー
2,アステサイザー
3,三ツ矢サイザー
4,グレンサイザー
0510デフォルトの名無しさん
2007/11/14(水) 13:59:57Unicodeがどうのこうのとあるんですが、Unicodeビルドしなくても
デフォルトでUnicodeビルド扱いになるということなんでしょうか?
0511デフォルトの名無しさん
2007/11/14(水) 23:46:59このページ見て設定してみたけどコンパイルできません。
wx/wx.h がNo such file or directoryとなりインクルードできないです。
どうしたらよいのでしょうか?
0512デフォルトの名無しさん
2007/11/14(水) 23:58:010513デフォルトの名無しさん
2007/11/15(木) 00:00:090514デフォルトの名無しさん
2007/11/15(木) 00:25:150515デフォルトの名無しさん
2007/11/15(木) 00:36:15C:\MinGW\includeにはなくて、
C:\msys\1.0\home\Owner\wxMSW-2.8.6\include
にあります。
C:\msys\1.0\home\Owner
にファイルを作りコンパイルしたところできませんでした。
0516デフォルトの名無しさん
2007/11/15(木) 00:48:08`wx-config --cxx` -o hoge.exe hoge.cpp `wx-config --cflags --libs`
みたいにしてコンパイルしれ
0517デフォルトの名無しさん
2007/11/15(木) 01:01:32今までやってた
$g++ -c hello.cpp 'wx-config --cppflags'
ではできないみたいですね。
0518デフォルトの名無しさん
2007/11/15(木) 01:52:510519デフォルトの名無しさん
2007/11/15(木) 03:49:16・今までANSIとUnicodeの二つのビルドがあったのが、一つになる。
・wx内部では全部Unicodeで処理するが、APIはANSIとUnicode両方が用意される。
・ANSIのAPIは逐一Unicodeにエンコードして処理する。
ってところだと思う。
0520デフォルトの名無しさん
2007/11/15(木) 05:35:38それのプログラム見たらわかるけど効率悪い
自分で組んだ方がいいよ
0521デフォルトの名無しさん
2007/11/15(木) 05:37:35wxImageにラップするようだけど
それを待ってもいいかも
0522デフォルトの名無しさん
2007/11/23(金) 00:52:43**********************
* *
* A *
* *
* *
**********************
* B * C *
**********************
以上のようなレイアウトで、
・縦幅が変化した場合はAのみ
・横幅が変化した場合はAとC
それぞれ動かしたいのですが、
いったいどうやってサイザーを設定すればいいのでしょうか?
よろしくお願いします。
0523デフォルトの名無しさん
2007/11/23(金) 01:32:23試してないけどこんなんでどう?
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指定すれば、領域を埋めるようにサイズ変更される。
0524デフォルトの名無しさん
2007/11/23(金) 02:02:10それでできました!
CにEXPANDを指定したら、縦に広がったりしてかなり困っていました。
サイザーってそういうふうになっているんですね。
どうもありがとうございます。
0525デフォルトの名無しさん
2007/12/01(土) 22:18:22> font.GetPointSize();
だと値が表示されている高さよりも明らかに小さくなります。
正確な値を得るにはどうすればいいのでしょうか?
よろしくお願いします。
0526デフォルトの名無しさん
2007/12/01(土) 23:15:350527デフォルトの名無しさん
2007/12/02(日) 00:51:21それなら、ポイントをピクセルに直すにはいったいどうすればいいのでしょうか?
解像度とか関係ありそうなのですが、よく分からないのです。
0528デフォルトの名無しさん
2007/12/02(日) 01:38:57wxDC::GetCharHeight()
がそれっぽいですがベースラインより下の部分も含んでるのかどうかはわかりません
0529デフォルトの名無しさん
2007/12/02(日) 20:09:11それを参考にして書いていたら、wxWindowにも
同じ名前のドンピシャなメソッドがあることが分かりました。
ありがとうございました。
0530デフォルトの名無しさん
2007/12/05(水) 20:34:52切り替えは出来ないものなのでしょうか。サンプルのsplitterに、statbarからの表示/非表示
切り替えコードを追加してみたのですが、初回の非表示(失敗)後に、分割ウィンドウの
サイズが変更不能となってしまいます。
0531530
2007/12/05(水) 21:18:50wxStatusBar* statbar = GetStatusBar();
:
statbar->Hide();
//SetStatusBar(NULL); // <- 親フレームと分割ウィンドウの連動が解除されてしまうのでコメントアウト
SendSizeEvent(); // 非表示部が即時更新されないので追加
:
0532デフォルトの名無しさん
2007/12/13(木) 16:52:55変数ウォッチとは、プログラムのデバッグ時にint型やクラス型で定義された変数の
名前や中身や型を表示するものです。
変数の名前や型だけを表示するならばwxListCtrlでもwxDataViewCtrlでも何を使ってもいいのですが、
メンバをもつ変数を表示させることを考えると、
どうしてもオブジェクトをツリー形式で表示させたくなります。
また、デバッグ中にウォッチする変数を新たに追加したくなった場合にも
簡単に追加できるものがいいのです。
つまるところ、
・できれば名前や型などの欄が作れる
・ツリー形式で表示できる
・新規のアイテムが簡単に追加できる
これらのことができるコントロールを探しています。
個別の条件を満たすものは見つかるのですが、そのすべてを満たすものが見つからず苦心しています。
(ちなみに、VS2005ではwxDataViewCtrl(wxGrid)のアイテム中にwxTreeCtrlのようなものを表示しています)
条件に合うコントロールがあれば教えていただきたいのです。
よろしくお願いします。
0533デフォルトの名無しさん
2007/12/14(金) 18:55:29http://homepage2.nifty.com/bkclass/doc_wxcode.html
0534デフォルトの名無しさん
2007/12/15(土) 01:40:55wxCoreというのは初めて知りました。
サンプルも動かしてみたのですが、これは素晴らしいですね。
どうもありがとうございました。
0535デフォルトの名無しさん
2007/12/16(日) 20:16:12ウィンドウのクライアント領域のサイズを得ることはできますか?
0536デフォルトの名無しさん
2007/12/16(日) 20:20:35ウィンドウのクライアント領域のサイズ
0537デフォルトの名無しさん
2007/12/16(日) 21:21:45すいません。説明が足りませんでした。
クライアント領域からスクロールバーの領域を除くためには
1,スクロールバーが表示されているかを検出する
2,表示されていたら、そのスクロールバーのサイズ分だけクライアント領域から除く
という主順を踏む必要があります。ところが自分にはこの二つともやり方が分かりません。
例えば、スクロールーバーはコントロールの内容によって表示されたり消えたりしますよね。
HasScrollbarメソッドはどうもスクロールバーの非表示を検出してくれないようで、
ウィンドウスタイルによって値が決まってしまいます。
つまり、スクロールバーが表示されているかを正しく知る方法が自分には分かりません。
また、普通のウィンドウクラスにはスクロールバーのサイズを得るメソッドが無い
(多分どこかにはあると思うのですが自分は知らない)
のでスクロールバーのサイズを得ることもできません。
0538デフォルトの名無しさん
2007/12/16(日) 22:22:35void 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.
0539デフォルトの名無しさん
2007/12/16(日) 22:57:22またまたすいません。
対象としているコントロールにはwxTextCtrlやwxTreeCtrlなどの
wxScrolledWindowを継承しないものも含まれています。
0540デフォルトの名無しさん
2007/12/16(日) 23:22:23さすがにエスパーはいないぜ
自分で英語のリファレンス読めよ糞
0541デフォルトの名無しさん
2007/12/17(月) 17:40:00コントロールのリファレンスを読みたいのですが、教えて頂けないでしょうか?
0542541
2007/12/17(月) 17:57:54これがコントロールリファレンスですか。
>Members
ってのがメソッドで、
>Derived from
というのが派生元クラスでしょうか?
イベントも理解できれば完璧ですが、wx-Devがイベントハンドラ作ってくれるから、理解しなくても良いかなぁ?
0543541
2007/12/17(月) 18:33:28でも、WxButton::Enable(bool)が候補に出ないなぁ。コンパイルはトオタケド
0544デフォルトの名無しさん
2007/12/17(月) 18:42:19virtual bool Enable(bool enable = true)
0545デフォルトの名無しさん
2007/12/28(金) 10:15:540546545
2007/12/28(金) 10:18:150547545
2007/12/28(金) 11:18:39仕様ですか?
0548デフォルトの名無しさん
2007/12/28(金) 12:34:30EVT_WINDOW_CREATE
0549デフォルトの名無しさん
2008/01/05(土) 18:48:32wxのサンプルについてくるのでも必ず
(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だかららしいのですが。
0550デフォルトの名無しさん
2008/01/07(月) 02:47:580551549
2008/01/07(月) 03:37:44ありがとうございます。
環境を書き忘れてました、すいません。
当方64bitのGentooでしたのですが、試しに32bitのDebianで試してみたところ
segfaultで落ちることは無いようです。Glib-Object-WARNINGはuimを切ると出なくなりました。
wxGTKのバージョンは2.8.7.1です。
もしかしたら私の環境だけなのかと思い書かせて頂いた次第です。
0552デフォルトの名無しさん
2008/01/07(月) 04:20:210553549
2008/01/08(火) 00:14:53どうやらwxGTKのバグのようでした。どうもありがとうございました。
0554デフォルトの名無しさん
2008/01/10(木) 00:53:45でセルにプルダウンなメニューを出しているのですが、動作がおかしいのです。
Windowsでは期待道理に動くのですが、Linuxだと候補から選択してもセルに
値が入りません。
ttp://d.hatena.ne.jp/Megumi221/20071123
の方も同様にいわれているのですが、どなたか解決された方いらっしゃらない
でしょうか?
Linuxのgtkとかのライブラリ依存なのでしょうか・・・
0555554
2008/01/10(木) 23:50:380556デフォルトの名無しさん
2008/01/11(金) 03:40:29ってそれはえなりだよ
0557デフォルトの名無しさん
2008/01/12(土) 19:53:060558デフォルトの名無しさん
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' は内部コマンド外部コマンド、
操作可能なプログラムまたはバッチファイルとして認識されていません。
というエラーになります。。
どうすればよいのでしょうか??どなたかご教示頂けると幸いです。
0559デフォルトの名無しさん
2008/01/21(月) 03:02:40やってもダメでしょうよ。
0560デフォルトの名無しさん
2008/01/21(月) 11:12:14MSYSを導入して、rxvt上で実行しろ
0561デフォルトの名無しさん
2008/01/21(月) 11:16:12http://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`
の間違いでした。
0562デフォルトの名無しさん
2008/01/21(月) 11:33:27回答ありがとうございます。MSYSは入ってます。
MSYSを導入して、rxvt上で実行 というのは、C:\MSYS\1.0\bin\rxvt.exe を立ち上げて
そこからg++ 〜 でコンパイルしろってことでいいんでしょうか。
家帰ったら試してみます。ありがとうございます。
0563デフォルトの名無しさん
2008/01/21(月) 12:20:12$ wx-config --cflags
とでも打ってみるんだな
どんな効果がでるか一発で分かる
0564デフォルトの名無しさん
2008/01/21(月) 13:05:17操作可能なプログラムまたはバッチファイルとして認識されていません。
というエラーになります。。
0565デフォルトの名無しさん
2008/01/21(月) 13:17:20windows のコマンドラインじゃなくて
ユニックス系の shell でやらなきゃ ...
0566558
2008/01/21(月) 14:00:43564は自分じゃないですよ。
多分あまりにも基本的な部分で間違ってるので他の方に茶化されたのだと・・
でも
> wxWidgets はユニックス系なので、
> windows のコマンドラインじゃなくて
> ユニックス系の shell でやらなきゃ ...
ここらへんわかってなかったのでご指摘いただけてラッキーでした。
ありがとうございます。
シェルの勉強等まだ手をつけておらずほぼ全く分からないもので・・
初心者質問ばかりしてすいません >564さん
>563さん
ありがとうございます。帰ったら試してみます。
0567デフォルトの名無しさん
2008/01/22(火) 00:24:02Windowsでやるよりはるかに簡単だから。ネットの情報もほとんどUNIX系だし。
一旦それでやってればWindowsでもすぐできるようになると思う。
UNIX系の情報を見ながらWindowsで一発でやるには両方の知識が必要。
0568デフォルトの名無しさん
2008/01/22(火) 02:55:34xrcの存在意義を無視してるのは分かるのですが、
ソースは簡潔&実行時にはファイル一つ、にどうしてもしたくて..
0569デフォルトの名無しさん
2008/01/22(火) 05:10:430570デフォルトの名無しさん
2008/01/22(火) 05:32:32xrcのデータを実行ファイルに持たせることなら普通に出来る。ドキュメント読め。
0571デフォルトの名無しさん
2008/01/22(火) 17:11:00ご指摘されたとおり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の方が簡単なのであればそっちでやってみることにします。
ありがとうございました。
0572デフォルトの名無しさん
2008/01/22(火) 17:22:090573デフォルトの名無しさん
2008/01/22(火) 18:38:29xrcでフォームの位置やサイズをアプリケーション終了時に保存することはできますか?
0574デフォルトの名無しさん
2008/01/22(火) 23:05:56出来ました。ありがとうございます
0575デフォルトの名無しさん
2008/01/23(水) 00:04:51もうちっとコマンドラインとか、パスとか、そういうことを勉強したほうがいいと思うな ...
0576デフォルトの名無しさん
2008/01/23(水) 01:05:42そういえばマイナー同士の組み合わせの割には、wxPythonの日本語情報って
ググると意外に出てくるね。
0577デフォルトの名無しさん
2008/01/23(水) 02:08:03はじめたばかりの君は恵まれている
昔は見つからなかった
0578デフォルトの名無しさん
2008/01/23(水) 02:15:24猛者たちがあらわれたってことか。感謝感謝。
0579デフォルトの名無しさん
2008/01/23(水) 05:26:510580デフォルトの名無しさん
2008/01/23(水) 08:53:58wxに限らずPyGTKやらPyQtやらで作られたアプリが増殖中
0581デフォルトの名無しさん
2008/01/23(水) 09:11:20自信たっぷりの間違いがいくつかあるので注意
ttp://www.harukaze.net/~haruka/wxpython/
0582デフォルトの名無しさん
2008/01/29(火) 18:06:45C++ Builder/VCL だと、
>void __fastcall TForm1::ApplicationEvents1Exception(TObject *Sender, Exception *E)
みたいな感じで書くんですが。
0583デフォルトの名無しさん
2008/01/29(火) 19:13:420584デフォルトの名無しさん
2008/01/29(火) 19:22:52アプリの一箇所、一括でcatchしたいだけですが、どう書けば良いでしょう?
0585デフォルトの名無しさん
2008/01/29(火) 23:17:40{
try {
// main routine
}
catch(...) {
// error handling
}
}
0586デフォルトの名無しさん
2008/01/29(火) 23:40:34とするとwxApp::OnFatalExceptionとかがそうなのかなぁ。
ttp://wxwindowsjp.sourceforge.jp/docs/html/wx/wx30.htm#wxapponfatalexception
0587デフォルトの名無しさん
2008/01/30(水) 01:38:35wxApp::OnUnhandledExceptionのドキュメント見ると、
OnRunをオーバーライドしてそこでキャッチしろって書いてるよ。
int MyApp::OnRun()
{
try{
return wxApp::OnRun();
}
catch(std::exception &e){
...
}
}
0589582
2008/01/30(水) 10:36:01OnRunオーバーライドして、エラーはcatchはされるんですが、catchの前にエラーが出てしまうのは何ででしょう。
0590582
2008/01/30(水) 10:39:12有難うございました。
0591582
2008/01/30(水) 10:44:400592587
2008/01/30(水) 11:20:47でMyApp::OnRun()のcatchに直通できた。
wxのエラーダイアログの中止ボタン押したときの処理もこうだから、
たぶんこれで問題ないと思う。
0594582
2008/01/30(水) 11:51:30wxMac-2.8.7では、MyApp::OnOnExceptionInMainLoop()がコールされずに、
>シグナル 6(SIGABRT)により終了しました。
で終わってしまうのは何ででしょう?
throw を丸々囲んだら、ちゃんとcatchされますので、C++例外オフの問題じゃないみたいです。
念の為configureを調べても、
>checking for --enable-no_rtti... no
>checking for --enable-no_exceptions... no
です。
0595デフォルトの名無しさん
2008/01/30(水) 12:07:13wxWidgets/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
0596582
2008/01/30(水) 13:25:38>wxMac-2.8.7\samples\except
で、
コンソールからmakeしましたが、
アプリでThrowメニュー(int/string/object)を実行すると、アプリがエラーで吹っ飛びます。
どうも、wxMacのバグですね。
当面は、実行メニューをそれぞれtry-catchで囲んでおきます。
開発中にcatch内容が変わったりすると、メンドイですね。
0597デフォルトの名無しさん
2008/01/30(水) 15:29:470598デフォルトの名無しさん
2008/01/31(木) 16:16:31http://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
です。
どなたかアドバイス頂けると幸いです。。
0599デフォルトの名無しさん
2008/01/31(木) 17:14:430600デフォルトの名無しさん
2008/01/31(木) 22:16:100601デフォルトの名無しさん
2008/01/31(木) 23:01:50エラーメッセージ読んでますが読んで意味が分からなかったので質問させて頂きました。
エラーメッセージで検索したりもしてみたんですが関係ありそうなのが出てこなかったので・・
日本語ですか。特に使ってないと思うのですが・・
0602デフォルトの名無しさん
2008/01/31(木) 23:02:14エラーメッセージ読んでますが読んで意味が分からなかったので質問させて頂きました。
エラーメッセージで検索したりもしてみたんですが関係ありそうなのが出てこなかったので・・
日本語ですか。特に使ってないと思うのですが・・
0603デフォルトの名無しさん
2008/01/31(木) 23:17:53ascii文字以外が入っているかもう一度確認して見てください。
ascii文字の意味はわかりますか?
0604デフォルトの名無しさん
2008/01/31(木) 23:44:01いえ、英語は分かるのでエラーメッセージの翻訳はできるんですが、それでも意味が分からないということなんです。
ASCII文字は分かります。
「ascii文字以外が入っているか」っていうのは、どこを確認すればいいのでしょう??
0605デフォルトの名無しさん
2008/01/31(木) 23:56:32アルファベットだけつかったつもりでも、
まちがって全角スペースが入るということもあります
0606デフォルトの名無しさん
2008/02/01(金) 00:03:41直接的な答えじゃなくて申し訳ないけど、俺がやるなら:
・エラーメッセージを出力している部分の wxGlade のソースコードを読む
・エラーが出なくなるまでウィジェットを減らしてみる
0607デフォルトの名無しさん
2008/02/01(金) 00:11:460608デフォルトの名無しさん
2008/02/01(金) 01:42:06単純にコードを吐き出すパスに「デスクトップ」が入っていただけでした・・汗
回答くださった方々ありがとうございましたm(_ _)m
0609デフォルトの名無しさん
2008/02/01(金) 03:11:59ubuntu-jpも余計なことしてくれるよな. 'デスクトップ'は英語名に直しとき.
0610デフォルトの名無しさん
2008/02/01(金) 04:05:200611デフォルトの名無しさん
2008/02/01(金) 09:53:130612デフォルトの名無しさん
2008/02/02(土) 17:49:53wxDirPickerCtrlで起動後初回の選択のみ反応しないのですが,
(GetPathに反映されず,ハンドラも呼ばれない)
同じような症状の方いませんでしょうか?
使い方でミスをしてるのか,バグなのか分からなくて困ってます.
0613デフォルトの名無しさん
2008/02/03(日) 02:36:574MBぐらいになるってどこかに書いてあったのだけれど。
0614デフォルトの名無しさん
2008/02/03(日) 03:13:400615デフォルトの名無しさん
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
と言われるけど、今度は何も生成してくれない。
のはなんででしょう。。
0616デフォルトの名無しさん
2008/02/03(日) 03:26:45>特別なにもしてないと静的リンクにならないんでしょうか。
つ ldd
0617デフォルトの名無しさん
2008/02/03(日) 03:52:29>>558-563
0618デフォルトの名無しさん
2008/02/03(日) 04:42:37C初心者スレ池
0619デフォルトの名無しさん
2008/02/03(日) 04:58:13>今度は何も生成してくれない。
>のはなんででしょう。。
太陽が眩しかったから
0620デフォルトの名無しさん
2008/02/03(日) 09:23:53Unix のシェルの違いもわからないひとが GUI プログラムを
コンパイルできるようになったというのは良いことなのやら悪いことなのやら ...
0621デフォルトの名無しさん
2008/02/03(日) 10:04:57たとえ素人でも疑問を追及する意思があれば間抜けな質問を垂れ流したりはしない。
0622デフォルトの名無しさん
2008/02/03(日) 17:02:570623デフォルトの名無しさん
2008/02/09(土) 00:36:25通常のc++-mode設定だとインデント壊れて気持ち悪いよね?
(sample/minimal/minimal.cppに対してindent-regionすると120行目のMyApp::OnInit()が1インデント下がる)
ttp://www.wxwidgets.org/develop/standard.htm#indentation とかの設定もみたけど、
wxWidgetのマクロによるインデントずれの問題は解決してないように見えるんだが・・・
0624デフォルトの名無しさん
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
のようなエラーが出ます。
どこがおかしいでしょうか??
初心者質問ですいません。
0625デフォルトの名無しさん
2008/02/10(日) 08:14:57指定するのは変数名ではなくて、多分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));
:
0626625
2008/02/10(日) 08:16:38EVT_BUTTON(wxID_OK, MyFrame::OnExit)
↓
EVT_BUTTON(wxID_EXIT, MyFrame::OnExit)
0627デフォルトの名無しさん
2008/02/10(日) 13:07:31おれはDECLARE_EVENT_TABLE()とかの後ろにセミコロンを置いてる。
0628デフォルトの名無しさん
2008/02/12(火) 09:52:510629デフォルトの名無しさん
2008/02/12(火) 13:20:18http://wxwindowsjp.sourceforge.jp/html/2.8.4/wx_wxfileconfig.html
0630628
2008/02/12(火) 13:24:310631デフォルトの名無しさん
2008/02/12(火) 18:16:410632デフォルトの名無しさん
2008/02/12(火) 19:43:35つ wxArrayString
0633631
2008/02/13(水) 09:46:38wxArrayString.Text (Itemを改行コードを挟みながら連結)みたいなメソッドは無いんですね。
自作するしか無いか。
関係ないけど、やっぱ改行コードってC++のendlを使いますよね?
まさか、wxWidgetsで、CRとかLFをラップしてくれてたりしないですよね?
出来れば、wxWidgetsが改行コードのグローバル変数を持ってて、
初期処理でどのプラットフォームでもCRLFで初期化してやろうかと思ったのですが。
0634631
2008/02/13(水) 09:50:17wxWidgetsのヘルプ読んでると、
>std:string互換関数の利用が強く推奨される!
>そして遅かれ早かれstd::stringを使い始めるであろうwxWidgetsの将来のバージョンとの互換性を保つ.
とあるから、
wxStringより、std::string推奨なんですね。
文字列についてはC++の標準を使えって意味は分かるけど、std::stringって機能が弱いおね。
0635デフォルトの名無しさん
2008/02/13(水) 10:57:42>std::stringって機能が弱いおね。
たとえばどんな?
0636デフォルトの名無しさん
2008/02/13(水) 11:00:08string str1;
str1 = "a" + (string)"b";
みたいに書けないことない?(自分の勉強不足かも)
それとか、UpperCaseが無いわけじゃないけど、書きにくかったりとか。
0637デフォルトの名無しさん
2008/02/13(水) 11:11:28は標準で入ってたと思う。
0638デフォルトの名無しさん
2008/02/13(水) 11:18:50gccでエラーだったんですが。(勘違いかも)
0639デフォルトの名無しさん
2008/02/13(水) 11:47:010640デフォルトの名無しさん
2008/02/13(水) 16:26:50vector char とかするのかなぁ?
(ちょっとスレチ)
0641デフォルトの名無しさん
2008/02/13(水) 16:41:340642デフォルトの名無しさん
2008/02/13(水) 16:48:22どうも。それ使います。insertメソッドとかもありますね。
NULLで切れないと信じて。
0643デフォルトの名無しさん
2008/02/13(水) 18:30:57>str1 = "a" + "b";
は書けます。
>str1 += "a" + "b";
は書けないんですね。
ちょっと不便。
0644デフォルトの名無しさん
2008/02/13(水) 19:04:470645デフォルトの名無しさん
2008/02/13(水) 20:10:560646デフォルトの名無しさん
2008/02/13(水) 20:38:05str += "b";
は出来るだろ。
ていうかC++スレでやるべきだと思うんだ・・・。
0647デフォルトの名無しさん
2008/02/13(水) 21:58:27そのへん楽したかったら、
wxPython
wxErlang
wxHaskell
wxLua
wxPerl
wxRuby
wxSqueak
wx4j
wxJavaScript
あたり使ったらいんじゃね?
0648デフォルトの名無しさん
2008/02/13(水) 22:16:15"a" "b"
って書いたら
"ab"
って書いたのと同じだけどな。
リテラルだけだが。
0649デフォルトの名無しさん
2008/02/14(木) 10:58:06へえー、4j ってプログラミング言語があったのか・・と思った
ググって見ると、・・このスレのテンプレにすでに書いてあった・・
0650デフォルトの名無しさん
2008/02/15(金) 17:55:06(wxで無くともポータブルなら何でもかまいません)
2、↑を押すと以前選択された文字列が出てきたり、
選択可能な文字列群を設定すればtabキーで勝手に補完してくれる
なんちゃってシェルのようなクラスはありませんか?
よろしくお願いします。
0651デフォルトの名無しさん
2008/02/15(金) 20:59:460652デフォルトの名無しさん
2008/02/16(土) 00:34:08readlineってこういう事に使うライブラリなのですか。
初めて知りました^^
これで全然問題ないです。
どうもありがとうございました。
0653624
2008/02/16(土) 00:48:57返信めちゃくちゃ遅れてすいません。
ご指摘された通り直したら意図した通りに動きました。
ありがとうございましたm(_ _)m
0654デフォルトの名無しさん
2008/02/16(土) 01:22:37readline はガチガチの GPL なので、代わりにより自由な libedit をお勧めする
http://sourceforge.net/projects/libedit/
0655デフォルトの名無しさん
2008/02/16(土) 09:51:47自分も探しましたよ。ストールマンの呪縛から逃れるために^^
そこのlibeditの最終リリースが2001年8月だったので
何じゃコリャと思ってしまったのですが、
Googleで探してみるとちゃんと新しいのもあるみたいですね。
ただ、マルチバイトが使えない&直すのは難しくないが「需要がない」
という内容のMLを見たときは少しびっくりしました。
0656デフォルトの名無しさん
2008/02/16(土) 12:28:100657デフォルトの名無しさん
2008/02/16(土) 13:05:57> bigbang.exe 初期値1.xls > 結果1.xls
0658デフォルトの名無しさん
2008/02/16(土) 13:46:080659デフォルトの名無しさん
2008/02/16(土) 13:48:260660デフォルトの名無しさん
2008/02/16(土) 13:58:16自分で作らなくても、仕事だと嫌ほど受け取る。
0661デフォルトの名無しさん
2008/02/16(土) 14:52:22あとは Tecla というのもあるよ
マルチバイトが使えるかは知らないけど…
http://www.astro.caltech.edu/~mcs/tecla/
0662デフォルトの名無しさん
2008/02/16(土) 23:17:58ディレクトリ名書き換えれたけど
0663デフォルトの名無しさん
2008/02/17(日) 02:32:40てかスレ違い?
0664デフォルトの名無しさん
2008/02/17(日) 02:33:330665デフォルトの名無しさん
2008/02/17(日) 04:03:320666デフォルトの名無しさん
2008/02/17(日) 15:01:23vlcとか
0667デフォルトの名無しさん
2008/02/17(日) 21:57:27あれってなんであんなにバイナリのサイズが小さいの?
VCとかで作ってるとどんなに気を使ってもMBサイズの大きさになってしまう・・・
0668デフォルトの名無しさん
2008/02/17(日) 22:01:052.66 MB (2,793,984 bytes)
こういうカラクリ
0669デフォルトの名無しさん
2008/02/17(日) 23:55:57納得しました
0670デフォルトの名無しさん
2008/02/18(月) 02:15:57意外と盲点かもしれないね
0671デフォルトの名無しさん
2008/02/18(月) 23:25:280672デフォルトの名無しさん
2008/02/18(月) 23:45:30試したことないが。
0673デフォルトの名無しさん
2008/02/19(火) 18:56:330674デフォルトの名無しさん
2008/02/19(火) 20:28:21wxGlade, wxFormBuilder, wxDesigner, wxSmith, VisualWx...
あ、結構あるなw
0675デフォルトの名無しさん
2008/02/19(火) 20:39:390676デフォルトの名無しさん
2008/02/19(火) 22:38:31http://wiki.codeblocks.org/index.php?title=Comparison_of_wxSmith_features
0677デフォルトの名無しさん
2008/02/19(火) 23:59:22Linuxのように、ディス取り標準ビルドの共有ライブラリが一つあってそれが基準になるなら良いけど、
Windowsではオレオレビルドのdllがまかり通るからstaticリンクが無難。
0678デフォルトの名無しさん
2008/02/20(水) 01:17:48Linuxで共有ライブラリのビルドオプションが気に入らなかったら、
staticリンクにしろってことでいいのかな?
0679デフォルトの名無しさん
2008/02/20(水) 11:10:38UN*X 系は RUNPATH や LD_LIBRARY_PATH で対処する方が多いんじゃないかな。
wx みたいな、でかいライブラリを static にする事は殆ど無いと思うよ。
0680デフォルトの名無しさん
2008/02/22(金) 01:10:25gridの任意のセルに、Ctrl押し下げ+マウスの左クリックイベントを送りたいのですが
どのようにすればいいですか?
だれかとっかかりだけでも教えてください。お願いします。
0681デフォルトの名無しさん
2008/02/23(土) 03:00:16かなり頑張ってるな。
0682デフォルトの名無しさん
2008/02/23(土) 20:04:150683デフォルトの名無しさん
2008/02/23(土) 20:08:42おまえはやる気あんのか?
0684デフォルトの名無しさん
2008/02/24(日) 10:02:28wxWigets or QT or GTK どれが良いですか?
wxWigets の環境をうまく作れなかったので、QT入れてみたのですが・・・。
0685デフォルトの名無しさん
2008/02/24(日) 10:26:47恋人をうまく作れなかったので、風俗嬢に挿れてみたのですが・・・。
0686デフォルトの名無しさん
2008/02/24(日) 10:31:450687デフォルトの名無しさん
2008/02/24(日) 11:55:180688デフォルトの名無しさん
2008/02/24(日) 15:11:32初体験なのに3つも選択権をもっているような人は
このスレに来てはいけません
>>687
具体的に何を迷っているのか分からない。
なぜ考える必要があるの?
0689デフォルトの名無しさん
2008/02/24(日) 16:07:330690デフォルトの名無しさん
2008/02/24(日) 19:56:56複数のテキストボックス(サークル)間にリンクを張って
表示するのに便利なモジュールってありますか?
# うまく説明できなくてすみません。
snapshotを見ると、UML図を書けるようなアプリはあるようですが、、、
0691デフォルトの名無しさん
2008/02/24(日) 22:22:27それはおいとくとして、
けっこうプラットフォームによってまちまちな部分があるので、
マルチプラットフォームを考えてるなら、ありもののパーツで
なんとかならない場合はwxはやめといた方がいいかも。
たとえばマインドマップとかペイントソフトとかだとキャレットの操作が必要になると
思うけど、Win版はちゃんとネイティブのキャレットを操作してるが
GTK版なんかは自前でキャレットらしき棒を描く場所を変更してるだけ。
0692デフォルトの名無しさん
2008/02/25(月) 00:33:320693デフォルトの名無しさん
2008/02/25(月) 01:06:09最近のはproportionと呼び名が変わったようだ。
>>523 の説明がわかりやすいと思う。
0694デフォルトの名無しさん
2008/02/25(月) 09:50:19親ウィンドウのMoveEventから
子ウィンドウのMoveを呼び出したのですが、
エラー落ちしてしまいます。
何か方法があるのでしょうか?
0695692
2008/02/26(火) 01:20:38なるほど。523見てなんとなく分かりました。
ありがとうございました。
0696694
2008/02/26(火) 08:35:58その時にはまだ子ウィンドウが生成されてなかった。
しかも初期化が完了してない無効なポインタだったので
当然エラーということだった
コンストラクタで始めに関数が呼ばれる前に
事前初期化してないとエライことになる可能性があるという教訓でした。
0697デフォルトの名無しさん
2008/02/26(火) 16:20:52wxMenuBarにフォント設定したけど反映されない・・・
なぜ・・・
0698デフォルトの名無しさん
2008/02/27(水) 09:25:53は
wxWindowsを継承しるのになんでそのフォント使わないで
インラインで別のフォント使うのか理解できん。
0699デフォルトの名無しさん
2008/02/27(水) 11:01:340700デフォルトの名無しさん
2008/02/27(水) 21:31:150701デフォルトの名無しさん
2008/03/01(土) 00:38:09あと、その場合、バインディング言語(wxPython等)でも利用可能なんでしょうか?
0702デフォルトの名無しさん
2008/03/01(土) 09:36:440704デフォルトの名無しさん
2008/03/03(月) 01:02:32のですがどうやればいいのでしょうか?
よろしくお願いします。
0705デフォルトの名無しさん
2008/03/03(月) 01:36:52Raise()
0706デフォルトの名無しさん
2008/03/03(月) 18:51:07http://www.codeblocks.org/
0707デフォルトの名無しさん
2008/03/03(月) 18:52:500708デフォルトの名無しさん
2008/03/03(月) 19:22:07できました。ありがとうございました
0709706
2008/03/03(月) 20:05:07Fedora8で昔使ってみたときのプロジェクト試してみたけど、
Buildしたときのerrorとwarningが入れかわってる気がする。一応動いたけど。
ちょっと前にチェックしてたけど、
2、3日に一回くらい開発版だしてて追いつけなかったからリリースをまってた。
いろんなOSで動くところが好きなので、そのうち本格的に使うかも。
macportsにもきてた。
0710デフォルトの名無しさん
2008/03/04(火) 01:37:13widgetを配置する画面(Frameをダブルクリックして出てくる画面)に、
配置してあるボタン等が収まりきらなくなりました。
しかしながら、Previewで見るときちんと全部収まっています。
Panelを削除するとこの現象は出ないのですが、どこか作り方が
おかしいのでしょうか?
どなたか教えてください。
0711デフォルトの名無しさん
2008/03/04(火) 01:50:20Previewの方が正しい。
wxGladeを立ち上げ直すと直ることもある。
けど,まあそんなもんだと思っている。
0712710
2008/03/04(火) 23:36:30レスありがとうございます。
そうですか。
Panelを捨ててしまうと、タブ移動が出来なくなるので困っていました。
wxGladeのバージョンアップに期待というところでしょうか?
sizerの入れ子の数とかでおかしくなるのかなー。
0713デフォルトの名無しさん
2008/03/15(土) 16:00:25ボタンを対象に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が返ってきてしまうんだ…
0714デフォルトの名無しさん
2008/03/15(土) 16:01:46ちなみにwxRubyについてるサンプルソース読むと、XRCのサンプルでもコード上でメニューバーとか追加してた
0715デフォルトの名無しさん
2008/03/15(土) 20:02:14Wx::Frame#get_menu_bar
ちぅのがあるのね…
0716デフォルトの名無しさん
2008/03/16(日) 09:00:110717デフォルトの名無しさん
2008/03/16(日) 17:25:520718デフォルトの名無しさん
2008/03/17(月) 02:22:43wxAppクラスを継承したMyAppクラスの宣言部がmain.cppとして一個増えただけでした。
http://www.h3.dion.ne.jp/~k5_n/wxwin/memo/ver0_0.html
このページみたいにモジュールを分割していきたいのですが、wxTextCtrlを継承させる予定のwxTextCtrl2クラスのコードを別ファイルで吐かせたりするにはどうすればよいのでしょうか。
0719デフォルトの名無しさん
2008/03/18(火) 01:24:25wxTextCtrl2っていうCustom Widgetを作るんじゃなかったかな
0720デフォルトの名無しさん
2008/03/18(火) 16:17:05dlg->ShowModal();
dlg->Destroy();
メニューの実行で、上記を実行していますが、
最後のDestroyでアプリが落ちてしまいます。
Destroyは不要ですか?
環境は、Mac OS X 10.4 /wxMac-2.8.7を使っています。
0721720
2008/03/18(火) 16:28:26ダイアログのシステムボタンで閉じる → ×
Close()で閉じる → ×
Hide()で閉じる → ○
つまり、閉じ方によって、ウィンドウのDestroyが呼ばれるかどうかが決まるんですね?
詳しい方、情報もしくは、同意よろorz
0722デフォルトの名無しさん
2008/03/19(水) 14:39:14ファイルのパスのデリミタや、
実行ファイルのディレクトリを
取得できますか?
0723デフォルトの名無しさん
2008/03/19(水) 16:01:400724723
2008/03/19(水) 16:07:020725723
2008/03/19(水) 16:29:580726デフォルトの名無しさん
2008/03/19(水) 16:33:300727デフォルトの名無しさん
2008/03/19(水) 16:44:51orz
0728デフォルトの名無しさん
2008/03/20(木) 13:36:28デリミタは、wxFileName::GetPathSeparator()
実行ファイルディレクトリは、
wxFileName exepath(wxStandardPaths::Get().GetExecutablePath());
wxString exedir = exepath.GetPath();
でexedirに入る。
0730729
2008/03/20(木) 19:58:09これだとクラス継承する毎にパレットに追加しなくてはならなくなりますよね。。(当然ですが)
クラス継承して使いたい場合、みなさんどうやってコードを書いているのでしょうか??
自分で継承して作ったクラスを全部wx-Gladeで描画できるようにするのはけっこう面倒くさそうですし・・
あんまりファイル分割しない方がいいんでしょうか。
それとも、wx-gladeはあんまり使わない、とか・・
0731デフォルトの名無しさん
2008/03/20(木) 20:29:230732デフォルトの名無しさん
2008/03/20(木) 20:50:35適当なコントロールから継承したカスタムコントロールやウィンドウなら、
継承元の見た目で作って、クラスを指定してヘッダファイル名まで指定できる。
0733デフォルトの名無しさん
2008/03/20(木) 22:55:02有難うございます。まだ調査している最中だったので助かりました。
>>732
そうなんですか。。。
知らなかったのでwxDev C++ を使ってますorz
0734デフォルトの名無しさん
2008/03/21(金) 15:19:46>std::string str;
>wxString wstr = str;
と書けるんですが、
wxMacだと、
>wxString wstr = str.c_str();
と書かないとコンパイル通らないみたいです。
何でだろ。。。
0735デフォルトの名無しさん
2008/03/21(金) 16:09:270736734
2008/03/21(金) 16:19:02wxMacは、環境設定でユニコードをオンにしてmakeしたようなかすかな記憶。
Windows版は、wx-debcppをインスコしただけだったような記憶。
この問題って難しい問題ですね。
0737デフォルトの名無しさん
2008/03/21(金) 23:32:17wxDev-C++で作成したコードをLinuxでコンパイルできますか?
できるとしたら、makefileは自作ですか?
分かる方がいましたらよろしくお願いします。
0738デフォルトの名無しさん
2008/03/21(金) 23:59:590739デフォルトの名無しさん
2008/03/22(土) 04:43:560740デフォルトの名無しさん
2008/03/22(土) 10:55:32ありがとうございます。試してみます。
まず、configure自体を知らないとダメなんでしょうね。勉強します。
0741730
2008/03/23(日) 13:31:54wxformbuilder、インストールしてみようと思ったのですが
Dependency is not satisfiable libwxbase2.8-0
とエラーが出てインストールできず・・
libwxbase2.8-0の再インストールとかしてみたのですがダメでした。
解決方法分かる方いらっしゃったら教えて頂けるとありがたいのですが・・
0742デフォルトの名無しさん
2008/03/23(日) 14:07:530743デフォルトの名無しさん
2008/03/23(日) 15:26:47wx-configを調べてみて
wxConfigクラスではなくてwx-configってコマンド
0744デフォルトの名無しさん
2008/03/23(日) 15:26:51とりあえず、ver3 RC8を落として、解凍すればインストールいらないのでは?
http://downloads.sourceforge.net/wxformbuilder/wxFormBuilder_v3.0.56-RC8-archive.exe?download
wxFormBuilder.exe起動したら動いたよ?ソースからビルドしようとしてる?
0745デフォルトの名無しさん
2008/03/23(日) 21:33:15ちょいと使ってるOS回りの詳細を書いてくれ
なんとなくLinuxじゃないかと思うが、だとすっとdistroとバージョンは?
0746デフォルトの名無しさん
2008/03/23(日) 21:59:32んですけど、こういうもん?Code::Blocksの方が使いやすいですかね?(Windowsです)
0747デフォルトの名無しさん
2008/03/23(日) 22:01:31>Dependency is not satisfiable libwxbase2.8-0
の時点でUn*x系だろうけど…
wxがちゃんと動いてるなら自前でビルドした方が良いんじゃないか?
0748730
2008/03/23(日) 22:34:56OSは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 でも 既に最新のパッケージです と言われてしまう状態です。
0749デフォルトの名無しさん
2008/03/24(月) 01:25:04ダウンロードしたら、パッケージのあるディレクトリ行って
%sudo dpkg -i wxformbuilder_3.0.56-0ubuntu1dapper1_i386.deb
みたいな感じじゃなかったか
…物凄い基本だった気がするが、Linuxやめちゃったからよく覚えてないや
つーかWindowsバイナリ走らせようとするなwwww
0750デフォルトの名無しさん
2008/03/24(月) 01:25:440751デフォルトの名無しさん
2008/03/24(月) 08:27:41./configure & make & sudo make install
ならこのスレでもok...か?
0752730
2008/03/25(火) 00:08:06Linux初心者なもので・・ご親切にありがとうございます。
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
0753デフォルトの名無しさん
2008/03/26(水) 18:13:280754デフォルトの名無しさん
2008/03/26(水) 18:22:01http://www.wxwidgets.org/wiki/index.php/Development:_UTF-8_Support
0755デフォルトの名無しさん
2008/03/27(木) 02:19:49バージョンは6.10です。VB感覚で作成できそうなので、残念です。
もしwxDev-C++が候補から外れると、
Code:Blocksを使ってみようかと重うのですが、そちらはちゃんとデバッグできますか?
0756753
2008/03/27(木) 08:58:47ありがとう。
UTF-8は目標ですか。
AnsiToUnicode/UnicodeToAnsiみたいな関数が欲しいですが、
wxWidgetsにあるんだろうか。。。
>>755
そういう症状でます。
自分の場合、ターゲットOSのデバッガでデバッグできました。
デザイン用のGUIエディタと割り切って、デバッグIDEは別のものにしてみたら?
0757デフォルトの名無しさん
2008/03/27(木) 10:08:280758デフォルトの名無しさん
2008/03/27(木) 11:24:28・・・っていうかAPIリファレンスくらい目を通しておけ
http://wxwindowsjp.sourceforge.jp/html/2.8.4/wx_wxstring.html#wxstringwcstr
UTF-8の事だけど、試してないから正確なことはわからないが
未完成なだけで、一応使えるんだろ?
これから使うんだったら報告よろ
0759756
2008/03/27(木) 11:53:38さんくす。
実際にwxConvUTF8.使ってるサイトハッケソ
ttp://diary.imou.to/~AoiMoe/2004.09/middle.html
今すぐ動作させてみます。
関係ないけど、マニュアルのuft8_strを使うとコンパイルエラー、みたいな。
0760756
2008/03/27(木) 13:42:08>SBuf = "UTF-8文字列";
>wxMessageBox(SBuf, wxT("SBuf"), wxOK);
>SBuf = wxConvUTF8.cMB2WC(SBuf);
>wxMessageBox(SBuf, wxT("SBuf"), wxOK);
2番めメッセージで、空文字になってるようなorz
0761デフォルトの名無しさん
2008/03/27(木) 17:01:21wxWidgetsでIMEを制御する方法があったら教えてください。
TextCtrlにフォーカスが移ったらIMEがONになる、などの使い方がしたいです。
0762デフォルトの名無しさん
2008/03/27(木) 17:23:15気分転換にデバッガで追ってみた
原因はよくわからんが文字列に日本語が入ってるのがいかんらしい
"UTF-8String"で問題なかった
>>761
公式にはないようだから
自分で作るか適当に探してみ
あとwxTextCtrlはデフォで日本語入力ができるから
IMEが制御できてもあんまり意味ないとおも
0763761
2008/03/27(木) 17:36:16ありがとうございます。
数値を入れるTextCtrlではIMEが自動でOFFになる、と説明すればよかったです。
ググっても出てこないので、自作の道を考えてみます。
0764760
2008/03/27(木) 18:10:35調査ありがうとうございます。
言われるとおり日本語があるかないかで動作変わるみたいです。
ソースの日本語表記の問題ではないことを確かめるため、
コントロールから日本語入れてみました。
>wxString SBuf = WxEditPath->GetValue();
>SBuf = wxConvUTF8.cMB2WC(SBuf);
これで、Editに"aaa"と入れると、SBufは"aaa"で、sizeが3でした。
しかし、"あああ"と入れると、SBufは""でsizeは0。
日本語入れると動作しないUTF-8コンバートだなんて(><)
0765760
2008/03/27(木) 18:44:31を定義してコンパイルすると、
>catch (std::logic_error &e) {
> wxMessageBox(wxT(e.what()), wxT("Error"), wxOK);
>}
といったwxMessageBoxがコンパイルエラー起こすんですが、何でですか?
ソースコードのファイルはSJISですが関係あるのかなぁ。
0766760
2008/03/27(木) 18:53:43コンパイルは通るけど、リンクエラーだ。
なんか難しいなorz
0767デフォルトの名無しさん
2008/03/27(木) 18:59:21wxDev-C++なんてよくわからないもの使わないでVC++を使ってください
0768デフォルトの名無しさん
2008/03/27(木) 22:22:51ソースがSJISならwxConvUTF8は使えないと思う
0770デフォルトの名無しさん
2008/03/28(金) 07:02:56根本的にわかってないなあ。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のオプションによって使い分けるんだよ。
0771764
2008/03/28(金) 09:28:54文字変換関数のみはunicodeビルドをするしかないですね。
>wx-configのオプションによって使い分けるんだよ。
難しいorz
0772764
2008/03/28(金) 09:32:44あ、wxConfigオブジェクトとwxAppオブジェクトの連携かと思って劇しく難しいのかと思ったら、
コンパイルのコマンドラインの話ですね?
なら、文字変換関数のみ別プロジェクトでwxUSE_UNICODEを定義してコンパイルしてオブジェクトモジュールを作っとくだけですよね。
その後、>>766 のリンクエラーを対処すれば終わり?
0773デフォルトの名無しさん
2008/03/28(金) 15:58:39ここで質問してるような奴がやることじゃないと思うがなあ。
0774764
2008/03/28(金) 16:12:19wxWigetsの文字変換はやめときます。
ドズで動作するのは、ICUだけですか?
iconvは動作しませんよね。
0775デフォルトの名無しさん
2008/03/28(金) 17:27:030776デフォルトの名無しさん
2008/03/28(金) 19:56:57iconvのI/Fがいいなら
ttp://gtklab.sourceforge.jp/iconvmlang/index.html
なんかどう?
0777デフォルトの名無しさん
2008/03/28(金) 20:28:230778デフォルトの名無しさん
2008/03/29(土) 12:27:39できないのでしょうか?
描画時のイベントやメソッドが見つからないのですが・・・
0779デフォルトの名無しさん
2008/03/29(土) 19:32:18これはバグではなくて、wxFormBuilderはそういうもんなのでしょうか?
ショートカットメニューにcutとかpasteとかもあるのにdisableになっている感じなので、バグのような気がするのですが・・。
0780デフォルトの名無しさん
2008/03/31(月) 08:47:27それ、良いですね。
何でかというと、wxDev使ってるせいで、デザイン中はWinなんです。
そこで、iconvでWinとUNIX系と同じコードにできるなんて理想。
0781デフォルトの名無しさん
2008/03/31(月) 18:16:01どうやって取得すれば。。。
それとも自分でnewするもんでしょうか。
0782781
2008/03/31(月) 18:45:34>include
して、
>wxLocal::メソッド
と書くと、
コンパイル&動作しました。
グローバルオブジェクトなのか、スタティックメソッドなのかどっちかでしょう。
0783デフォルトの名無しさん
2008/03/31(月) 19:25:03>windows-932
この値は、iconv_openで使う文字列でしょうか?
0784デフォルトの名無しさん
2008/03/31(月) 20:05:31理解できないまま、推測だらけでコーディングするのは良くないよ
自分で試したり、質問する前にちゃんとドキュメント読んだり、検索してる?
0785デフォルトの名無しさん
2008/03/31(月) 23:51:050786デフォルトの名無しさん
2008/04/01(火) 02:05:32wxListCtrl - 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」と書いてあるので、何かやり方があるのかも。
0787デフォルトの名無しさん
2008/04/01(火) 16:04:23システムメニューのHelpを押したときの処理を書く方法はありますか?
もしくはシステムメニューのHelpの下にサブメニューを作りたいです。
(IDEはwx-Dev C++ですが、手書きで良いので)
0788デフォルトの名無しさん
2008/04/02(水) 00:31:40ちなみにOS は Windows XP です。
古い情報は何件か見つけたのですが、うまくいきませんでした。
0789デフォルトの名無しさん
2008/04/02(水) 10:30:04http://www.wxwindows.org/docs/faqmac.htm#aboutmenu
ここに書いてあるみたいだけど、英語だからワカンネー (´・ω・`)
0790787
2008/04/02(水) 10:44:08ググる翻訳でうっすらと分かる感じです。
とりあえず、Menu IDを合わせると動くのかなぁ。
----------
アップル社はどのような標準をサポートしてwxmacメニュー項目については、ヘルプメニューですか?
wxwidgetsがないため、特定のAPIには、 [ ヘルプ ]メニューまたはメニュー項目については、 Mac OSのポートが使用する静的変数を助けるためのいくつかのエンジンを的確に判断する:
・それを前提としてメニュー項目については、 ヘルプメニュー部分です。
・ [ ヘルプ ]メニューのタイトルは、保存されwxapp : : s_machelpmenutitlenameと、デフォルトの" &ヘルプ"が、それを変更することができますし、お客様の特定のコンストラクタをメニューのタイトルです。
・メニューアイテムのID については、保存されwxapp : : s_macaboutmenuitemid 、 wxid_aboutデフォルトでは、変更することもできますが、お客様のニーズに合わせている。
・wxwidgets 、他のアイテムは、 [ヘルプ]メニューに追加されると、マックOS ヘルプ ]メニューの翻訳文のお申込みのためのIDは透過的に処理されます。
0791デフォルトの名無しさん
2008/04/02(水) 12:18:01ttp://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 で指定しても動かなかった
0792787
2008/04/02(水) 12:50:31wxpythonででも、出来るってことは出来るってことだね。
そのままC++コードに移せそうですね。
ま、最悪、wxpythonをデバッガでトレースか。
0793788
2008/04/02(水) 23:31:490794デフォルトの名無しさん
2008/04/04(金) 02:22:32そのクラスをや他のクラスを含んだコードをクラス毎に1ファイルずつ分割して吐かせたいのですが、どうすればできるでしょうか??
subclassやらcustom control などの情報を探して色々やってみたのですが分かりませんでした。
どなたか教えていただけると幸いです。
0795デフォルトの名無しさん
2008/04/04(金) 10:47:50多分、ランタイムが必要なコンパイルとなってると思うのですが、
スタティックリンクにするための手順をご存知の方教えて頂けないでしょうか?
0796デフォルトの名無しさん
2008/04/04(金) 17:42:29この内容ヨロ!
0797デフォルトの名無しさん
2008/04/04(金) 18:24:410798デフォルトの名無しさん
2008/04/04(金) 18:27:39あんまり回答こないYO!
0799デフォルトの名無しさん
2008/04/04(金) 18:33:29wxWidget の問題なのか、C++なのか、XCode なのかとかさ。
0800デフォルトの名無しさん
2008/04/04(金) 18:37:47XCode使ってます。
逆に言うと、全く皆目見当つかなくて、切り分けできないので質問なげてます。
切り分け出来たら、あとはリファレンスとか何とか手に入れて全パターン試すだけですもんね。
ライブラリの構築(--disable-sharedですか?)の失敗なのか、
プロジェクトのmakeのコマンドラインが悪いのか。。。
0801795
2008/04/04(金) 18:48:380802デフォルトの名無しさん
2008/04/04(金) 18:58:07wx-config --static=yes --libs
で出てくるオプション指定するとどうかな
使ってる共有ライブラリを特定するには
otool -L バイナリファイル名
で出てくる
0803794
2008/04/04(金) 19:07:00795さんうらやますぃ
0804795
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
0805795
2008/04/04(金) 19:36:51>ライブラリ検索パス
>フレームワーク検索パス
が空文字でした。
これが問題なのかな?
0806795
2008/04/04(金) 19:47:29プロジェクトのメンバーにライブラリファイル
>mac-ansi-release-static-2.8
がちゃんと入っていました。
逆に、
>*.a
ファイルまで入ってるため、ダイナミックリンクになっちゃうのかな?
0807795
2008/04/04(金) 19:58:03リリースビルドを行うと、
>/usr/bin/ld: can't locate file for: -lwx_base_carbon-2.8
というエラーになりましたorz
0808デフォルトの名無しさん
2008/04/04(金) 22:57:30もっと図太くならないと。バンバンageながら、質問やら状況を795並みにするんだ。
恥ずかしくなんか無い!!
0809転載せざるをえない
2008/04/04(金) 23:05:241. ハードウェア、OSのバージョン等には一字一句触れない。
2. 大切な個人情報が漏れるとまずいので、己の行った操作、変更などは秘密。
3. エラーメッセージの類は決して書かない。「エラーが出るんです」で留める。
目の前で生じている現象をそのまま具体的に書くなどもっての外。
事実より俺様の脳内解釈を優先すべし。
4. 独り言文体で必勝。
「…なんだけど、どうすればいいのかなぁ」「何が悪いんだろう?」
5. 「急いでいます」「困っています」等、自分の都合を全面に押し出す。
6. もう試したことを得意げに指摘してくる奴には、厳しく対応。
「それが駄目だったから質問してるんです」「それはもう試してみて駄目でした」
"どう"だめだったのか、本当に実際それを行ったかどうかなんか問題じゃない。
7. ストレートに答えを書かないもったいぶったレスには、逆切れで対応。
「だからどうすればいいんですか?」「分からないなら引っ込んでろやゴルァ」
示されたURL等を参照するなんて態度は、回答者を甘やかすことに他ならないので
絶対に避ける。
8. 情報は小出しに。
「エスパーきぼんぬ」 補足
上の八ヵ条を「一つでも」満たす者は質問者として不適格だということだ。
そのような悪い質問に対して答えられるのは,
質問者の意図をすべて汲み取ることのできるエスパーでもなければムリ,
という意味であって,決して,高度な技術を持つユーザに対する尊称ではない。
まちがっても「エスパーの方,回答お願いします」
なんて痛い質問するな。つうか氏ね。
0810デフォルトの名無しさん
2008/04/04(金) 23:11:06をオプションに入れるんじゃなくて、これを実行して出てくるオプションを入れてくれ
というか一体どうやってビルドできるところまで設定したのよ
0811デフォルトの名無しさん
2008/04/04(金) 23:20:44794がかわいそうすぎる
0812794
2008/04/04(金) 23:26:42ありがとうございます。
神経細いわけではないと思うんですが笑、
状況を詳しく書こうと思っても、エラーが出るとかじゃないですしOSどうこうってわけでもなく、単純に使い方が分からないってだけなのでこれ以上説明できることが何もないのです・・。
wxFormbuilder使えば、wxFormbuilder上で既存のウィジェットを継承したクラスを作成できると思っているのですが、そもそもそれが間違っているのでしょうか??
ていうか809は俺のこと言ってるんですかね?汗
0813809
2008/04/05(土) 02:55:06そういや開いてから3時間ぐらい放置してたわ
…それだけだと何なので、
http://wiki.wxformbuilder.org/Tutorials/UsingSubclass
こういうことではないの?
0814デフォルトの名無しさん
2008/04/05(土) 09:25:00wxFBではクラスを作ることはできないので、自分で作るしかない。
ただ、作ったクラスを使うことはできる。適当にコントロールを置いて、プロパティのところに、includeするヘッダとクラス名を書けば
そのクラスを使うようにはなるが、コンストラクタへの引数やスタイルなどのプロパティは置いたコントロールに依存するので、paneあたりを
継承すれば、wxWindowあたりを継承したコントロールなどにも対応できる。
MS VC++のMFCのようなものではなくて、リソースファイルを作るぐらいに考えるといいのかな。
ウィンドウやダイアログごとに別ファイルにしたいなら、作者に要望を出すとか、ソース公開されてるから自分で変えるとか・・・
0815794
2008/04/05(土) 13:54:14> 813 さん
そのページも見たのですが、どうもサブクラスに使う名前とヘッダーファイルを指定できるだけのような感じがして、求めているものじゃない感じでした。
> 814 さん
>>wxFBではクラスを作ることはできないので、自分で作るしかない。
>>MS VC++のMFCのようなものではなくて、リソースファイルを作るぐらいに考えるといいのかな。
やっぱりそういうものだったのですか。
情報ありがとうございました。
逆に、継承クラスを書いたり、クラス別にファイルを吐き出してくれたりするwx関連のRADツールみたいなものはないのでしょうか??
0816デフォルトの名無しさん
2008/04/07(月) 19:23:00自分でコードを書いて作ったコントロールを
wxFormBuilder上でフォームに貼ることならできるみたい。
http://wiki.wxformbuilder.org/Tutorials/CreatingCustomWidgets
これだけ調べて出てこないということは、
wxでは、コントロールはコードで書く必要があるのではないかと。
0817デフォルトの名無しさん
2008/04/07(月) 23:58:12wxFormbuilder か wxDev C++ っていうのが一番よく見かけるような気がしたのでどちらかにしようかと思っているのですが、それぞれどういった特徴があるんでしょうか??
なんか上のやりとり見ているとの実際使ってみても何ができて何ができないのかすぐに分からなそうな気がしたので、詳しい方に教えてもらう方が早いかと思いました。
よろしかったらどなたかご教示ください。
0818デフォルトの名無しさん
2008/04/08(火) 19:05:350819デフォルトの名無しさん
2008/04/09(水) 12:50:10ただし Borland/CodeGear C++ Builder 用のアドインだけど。
0820デフォルトの名無しさん
2008/04/09(水) 13:11:03それ使って上での話?
C++Builderなら使ってるんだけど、
wxWidgetsは心機一転、別のIDE(wx-dev)にしちゃったおorz
0821デフォルトの名無しさん
2008/04/09(水) 13:50:41いや、使ってない。
Web 上の資料を見て「RAD じゃん!」と思ったので。
0822デフォルトの名無しさん
2008/04/09(水) 13:57:350823795
2008/04/09(水) 13:59:07有り難うございます。出力されました。
-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しました。
0825デフォルトの名無しさん
2008/04/09(水) 19:05:59頼むから、内容を細切れにして、いろんなスレでマルチで聞くのはやめてくれ。
誘導元か、関連するレスのリンクを貼ってくれないと状況が理解できない。
そんなんだと、根本的な問題の原因を見抜けなくてドツボにはまるかもよ。
0826デフォルトの名無しさん
2008/04/09(水) 20:14:280827デフォルトの名無しさん
2008/04/09(水) 21:35:35俺はRubyな人だけどXRCedが一番使いやすいと思ったわ
0828デフォルトの名無しさん
2008/04/10(木) 07:55:350829デフォルトの名無しさん
2008/04/10(木) 21:00:420830デフォルトの名無しさん
2008/04/10(木) 21:18:140831デフォルトの名無しさん
2008/04/11(金) 17:21:30簡単な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
解決方法分かる方いらっしゃいましたら、教えていただけると幸いです。
0832デフォルトの名無しさん
2008/04/11(金) 17:37:29上記のソースは1つのLinux環境と2つのWindows home 環境で試したのですが、Linux環境ではリンクにも成功してビルドできるのですが、Windows Home 環境では両方ともリンクに失敗します。
なので、WindowsにインストールされているwxMSWで設定がおかしいところがあるのかなと思うのですが・・
0833831
2008/04/11(金) 18:54:27wx-config --libs で使うライブラリがmsys の /usr/lib
になければいけなかったのですが、なぜだか/local/lib にインストールされていたせいでした。
/usr/lib にコピーするだけで解決しました。
wxWidgetsインストール時のバグだったんでしょうか。。
0834デフォルトの名無しさん
2008/04/11(金) 20:31:28wxGlade は、次の2点が理由で好きではないのです。
1. 自分の書いたコードと自動生成されたコードがまざるのが不安
2. Output Path に指定したパスが保存したファイル(*.wxg)に入ってしまう。
特に2番は、複数マシンで開発をしているときに困ります。
0835デフォルトの名無しさん
2008/04/11(金) 20:41:34>wx-config --libs で使うライブラリがmsys の /usr/lib
>になければいけなかったのですが、なぜだか/local/lib にインストールされていたせいでした。
prefix指定しなかったのならデフォルトで /usr/local/lib にインストールされる。それが普通。
あと別に /usr/lib になければいけないなんてことはなくて
コンパイル時に -L/usr/local/lib つければいいだけ。
wx以前にgccの使い方の話なんでその辺勉強してみるといいかも。
0836デフォルトの名無しさん
2008/04/12(土) 00:57:03>1. 自分の書いたコードと自動生成されたコードがまざるのが不安
C++で使ってるけど,wxGladeの吐く.cpp, .hとは別のファイルにそれから
派生したクラスを定義して,実装は派生クラスに書いて,wxGladeの吐く
コードとはほぼ完全に分離できている。
>2. Output Path に指定したパスが保存したファイル(*.wxg)に入ってしまう。
.wxgからの相対パスで指定すればOKかと。
0837デフォルトの名無しさん
2008/04/12(土) 05:51:46wx-config って、その -L とかを自動で指定してくれるスクリプトのはずなんだよ。
それが必要なパスを吐かないなら、設定に問題がある。
インストールがうまくいかなかったんじゃないかな。
0838デフォルトの名無しさん
2008/04/12(土) 10:58:54自分は Python 形式で書き出しているので、
書き出されたファイルの一部に手を加える必要があります。
(最低でも ID 宣言とか)
相対パスで指定できるのは知らなかったです。
試してみます。
0839デフォルトの名無しさん
2008/04/12(土) 21:18:32ど素人なのすが、Windowsではwx-config は msys上でしか使えませんか?
eclipse上で指定したいのですが無理ですか?
0840デフォルトの名無しさん
2008/04/13(日) 11:54:53@c:\msys\1.0\bin\sh.exe --login -c "wx-config %*"
こんな感じでwx-config.batとか作るといいかもしれない
eclipseでバッチファイルをそのままオプションに指定できるのかどうかはわからないが
0841デフォルトの名無しさん
2008/04/13(日) 18:02:18のですがwxImageの画像データを直接取得する
方法はありませんか。GetData,SetDataでは
コピーしか渡らないようでうまく行きません。
PIL,Pygameによる画像変形は転送がネックに
なり高速になりませんでした。
PyOpenGLでは画像を直接取得できそうなのですが
画像が大きくなる(2048*2048)とリソースで
問題が出るようで試していません。
御教示お願いします
0842デフォルトの名無しさん
2008/04/13(日) 18:43:25wxImageのGetDataならピクセルデータを直接得られるはずだよ。
少なくとも、自分のところではそうなってる
0843841
2008/04/14(月) 01:39:36Python上で出来ました?
言葉が足りなかったので補足しますと、
wxImageの画像アドレスを知りたいのです。
ctypesでGetDataから渡された文字列を
強制的に書き換えても画像に反映されないので
コピーが渡されているようです。
高速化するにはDLLから直接書き換えるしか手が
なさそうなのですが、やっぱり無理
かなぁ。メニューのフォントサイズ変えるため
MenuItem.SetFontしたら落ちるし、前途多難…
0844デフォルトの名無しさん
2008/04/14(月) 03:11:03wx.ImageのGetDataBufferはダメだった?
0845843
2008/04/14(月) 17:22:28御回答有難うございます。
GetDataBufferってあったんですね。_core.py見なおしたら
見つかりました。返却値はbufferオブジェクトですね。
str()はありますがアドレスは隠蔽されてるみたいです。
Pythonからのアクセスはかなり快適で面白いオブジェクト
でしたが…残念。
答えていただけそうなのでもう1件お尋ねします。
wxBitmapを大量に格納しようとするとすぐ落ちて
しまいます。wxImageでは問題無いのでシステムリソースに
格納してるのかとも思っているのですが、その
限界を知る方法がよく分りません。御存知の方が
いましたら御教示お願いします。
0846デフォルトの名無しさん
2008/04/14(月) 19:52:08DLL 側で画像描画をできないだろうか…と
ちょっと思ったり。
ファイルからの Bitmap の読み込みも DLL 側でやる感じで。
0847843
2008/04/14(月) 22:50:17bufferオブジェクトってインタラクティブな状態で
見ると実体アドレスが出てる。bufferオブジェク構造体から
アドレスを拾えるみたいです。ctypesで直接書き込んで
確認できました。pyrex使えばなんとかなる…かも
教えていただき有難うございました。
>>846
ちょっと似たことをPILのImageWin.Dibでやってみました。
描画はPILからwxでwxのDCにPILからpasteする方法です。
結果はクリッピングがとても面倒で実用になりません
でした。pythonオブジェクトはpyrexで簡単に
拾えるかもしれませんが私の能力では実現は厳しそうです。
0848デフォルトの名無しさん
2008/04/15(火) 19:07:29ソースの文字コードがUTF-8だったので、UbuntuではwxWidgetsの文字コードがデフォルトでUTF-8になっていて、WindowsではUTF-8ではない(多分S-JIS?)ということだと思うのですが、結局Windowsでは文字コードは何で開発するのがいいんでしょうか?
どういう観点から考えて決めればいいのか分からないので、ご助言頂けると幸いです。
0849デフォルトの名無しさん
2008/04/15(火) 22:09:40wxWidgets をインスコする際に UTF-8 モードか ANSI モード(すなわち日本語だと shift jis モード)か選択出来るので、
クロスプラットホームのために wxWidgets をつかってるなら使うプラットホームでそれを同じにしておいたほうがいいです。
どっちにするかですが、これからの時代は何も考えず UTF-8 にしておくのがよいと思います。単に業界の趨勢なので。
0850848
2008/04/16(水) 00:01:26やはりUTF-8ですか。
,/configure のときに --enable-unicode でいいのですよね。
レスありがとうございましたm(_ _)m
0851850
2008/04/18(金) 12:54:56./configure --enable-unicode
でmake し直したのですが、
やはりUTF-8のソースをビルドするとインターフェース部分のマルチバイト文字が化けてしまいます。
どうすればUTF-8のソースを文字化けせずにビルドできるようになるでしょうか?
Windows Home
wxWidgets 2.8.7 です。
どなたか教えていただけると幸いです。
0852デフォルトの名無しさん
2008/04/18(金) 17:47:58VCならBOM有りの場合にはshift jisに変換後にコンパイルしてくれる。当然、埋め込んだ文字列はMBCSのShift_JISになる。
そこで、Shift_JIS->UTF-8への変換をプログラムでやる必要がでてくる。
もう一つの方法は全て英語で書きASCIIにして、.po/.moファイルを作成しi18nにより日本語を表示する。
この場合全てasciiなので、UTF-8とShift_JISは同じものとなるので、特に問題は生じない。
0853デフォルトの名無しさん
2008/04/18(金) 23:37:55そもそもマルチバイト文字列をソースコードに書き込むのは
ポータビリティー上良くないということを認識しましょう。
コンパイラによって扱いが変わってくるので。
将来誰かが非日本語版のを作る場合とかも考えて、
(オープンソースなら誰か勝手にやるだろうし、会社でやってても
中韓国語版をつくることになるかもしれない)
ソースは ascii にして、wx の国際化機能をつかってやるのが吉。
ちょっと手間でも、いま払っておいた手間が後で
格段に仕事を節約することになります
0854843
2008/04/19(土) 01:58:58言われた意味がよくわかりました。ConvertToBitmapが
滅茶苦茶遅い!本気でImageからDCに直接描き込もうか
とも考えましたが、別の解決策があったので止めました。
でもScaleやRotateの出力先くらい指定できた方が
扱い良さそう。
実験としてwxPython用のコンボリュ−ション行列と
YUV操作関数作ったけど…誰も要りませんよね
0855デフォルトの名無しさん
2008/04/19(土) 03:49:33将来的にもソースは出せないと思います。
ゆくゆくは自作のプログラムに組み込めればそれでいいかな、と。
0856854
2008/04/19(土) 05:03:13直接wxImageをPythonからいじるノウハウについて
言ってるだけですよ。swig通してオブジェクトを
いじれれば質問もせずに済んだんですけど
0857デフォルトの名無しさん
2008/04/19(土) 14:34:240858854
2008/04/19(土) 23:09:46wxImageからDCに直接描画するwxPythonライブラリも
作ったけど御忠告に従います。有難うございました。
0859デフォルトの名無しさん
2008/04/20(日) 12:27:47いや、>>3 のコピペは「作ったのに公開しない人」を皮肉ったもので
悩まずどんどん公開すべきという意味だと思います。
0860デフォルトの名無しさん
2008/04/20(日) 12:32:530861デフォルトの名無しさん
2008/04/20(日) 21:21:39664 名前:デフォルトの名無しさん [sage]: 2006/01/09(月) 04:46:55
wxWidgetsのwxScintilla(wxStyledTextCtrl)に手を加えているのですが
意見をもらえないのでしょうか?
http://www.geocities.jp/full_sarcasm/testedit.html
開発途中のWindows版バイナリです。
車輪の再発明をしても仕方がありませんし、公開に値するしろものでもありませんので
将来的にもソースは出せないと思います。
ゆくゆくは自作のプログラムに組み込めればそれでいいかな、と。
0862デフォルトの名無しさん
2008/04/21(月) 12:25:27遅いけどこんなんあった
http://miteidesu.seesaa.net/article/93929180.html
0863デフォルトの名無しさん
2008/04/22(火) 00:21:52おぉぉぉ。すばらしい。明日試してみます!
0864デフォルトの名無しさん
2008/04/24(木) 17:03:40同じ症状のかたいらっしゃるでしょうか?
wxWidgets と gdbは相性が悪いのだろうか・・
0865デフォルトの名無しさん
2008/04/24(木) 18:08:21MinGW固有の問題かな?
0866864
2008/04/25(金) 00:34:380867デフォルトの名無しさん
2008/04/25(金) 14:41:33ここを見ると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
ここも見てみましたが、探している情報は載っていないように感じました。
どなたか教えて頂けると幸いです。
0868845
2008/04/25(金) 23:36:24私の環境はWin98だったのですが、この場合内部で
DIBもしくはDDBを作成する為システムリソースを
食い潰す事が原因のようです。Win9xはリソース上限が
2M程度と聞きますが実際はよく分りません。
Win上でスクリプトからなら大量の画像はwxImageで
管理した方がよさそうです。
wxのソースをみてたらwxImageの処理があんなに
遅い訳がわかります。せめてAlphaの有無で
ループを別けてくれれば拡縮とかは少しは速く
なりそうなんですが…。
0869デフォルトの名無しさん
2008/04/25(金) 23:58:000870845
2008/04/26(土) 00:51:40そう出来ればいいですねぇ…
リソース浪費するのは同じなのでWin2000以後も
この件に付いては気をつけたほうが良いとも
思います。ソースを追っていませんし管理方法に
詳しくありませんが、wxはDIBとDDBを使い分けてる
ようでDDBならVRAMの容量が処理能力に直結する
気がします。
0871デフォルトの名無しさん
2008/04/26(土) 05:17:33wxFileInputStreamで開けばいい。
0872デフォルトの名無しさん
2008/04/26(土) 09:32:15Vista WDDM以降、DDBはDIBみたいに振る舞うので注意。
0874867
2008/04/26(土) 19:59:52ありがとうございます。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関数で設定ファイルを更新しようとしても何も更新されません。。
どなたかアドバイス頂けると幸いです。
0875デフォルトの名無しさん
2008/04/27(日) 08:11:310876デフォルトの名無しさん
2008/04/27(日) 10:02:270877874
2008/04/28(月) 12:19:09wxFileConfig::Write(); が、コンパイルには成功するのに正常に動作しない問題が解決しました。
正常に動かないときは
wxFileConfig* m_pConfig
..略..
m_pConfig->Write(wxT("sample"), 10);
のように、wxFileConfigのポインタからアロー演算子でWriteメソッドにアクセスしていたのですが、
wxFileConfig m_Config(コンストラクタの引数);
m_Config.Write(wxT("sample"), 10);
のように、ポインタにせずドット演算子でWriteメソッドにアクセスすると、書き込みに成功しました。
これはwxWidgetsのバグなんでしょうか??
どなたか同じ症状の方はいらっしゃるでしょうか?
0878デフォルトの名無しさん
2008/04/28(月) 13:15:540879デフォルトの名無しさん
2008/04/28(月) 13:16:20そんなバグは聞いたことがない。
m_pConfigの実体を確保し忘れてるとか、多分そんなのが原因だと思う。
0880874
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();は普通に動くんですが・・
0881デフォルトの名無しさん
2008/04/28(月) 15:57:160882デフォルトの名無しさん
2008/04/28(月) 16:20:22両方やってないから書き込まれない。
0883874
2008/04/28(月) 16:39:36>>882さん
レスありがとうございます。
Write(); のあと Flush(); でいけました!まじありがとうございます!
Flushが必要、という情報が見つけられないのですが、よろしかったらソースを教えて頂けないでしょうか??
あと、「両方やってないから書き込まれない」の「両方」とは、Flush(); と、あともう1つは何でしょうか??
0884デフォルトの名無しさん
2008/04/28(月) 16:45:51>>882 を読んでそれが何かわからないようならC++を勉強しなおした方がいい
0885デフォルトの名無しさん
2008/04/28(月) 16:48:43「両方」じゃなくて「どちらも」の間違いだった。どちらかでも行えば書き込まれる。
あと、人に聞くまえにリファレンスを読め。
0886874
2008/04/28(月) 17:18:22の
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
0887851
2008/05/02(金) 23:40:36>>853 さん
めちゃくちゃ遅くなってすいません・・
レスありがとうございましたm(_ _)m
なんか書き込んだと思ったら書き込んでなかった?ようです><
すいませんm(_ _)m
0888デフォルトの名無しさん
2008/05/06(火) 01:24:28勉強し始めたばかりなんですが、トップフレームにボタンを作って、
このボタンを押すと、別スレッドで重い処理を実行させて、終わったら
「終わりました。」てメッセージボックスを表示させるプログラムを書いてます。
別スレッドのなかでwx.MessageBox("終わりました。","")を実行すると、
Windowsでは普通に表示されてOKボタンでメッセージボックスが閉じますが、
Linux(GTK)だとメッセージボックスが表示されますが、固まってしまいます。
WindowsとLinuxどちらの動作が正常なんでしょうか?
(wx.Frameなどを継承していない)別スレッドのクラスからwxを使っていいのでしょうか?
0889デフォルトの名無しさん
2008/05/06(火) 19:56:05http://docs.wxwidgets.org/stable/wx_threadfunctions.html#wxmutexguienter
0890デフォルトの名無しさん
2008/05/09(金) 20:18:36ありがとうございます。
やっぱり何も対策を取らないと固まるんですね^^;
wx.MessageBox("終わりました。","")の手前にwxMutexGuiEnter()を書いて、
直後にwxMutexGuiLeave()を書いて試しましたが、wxMutexGuiEnter()で
固まってしまいました。たぶんMutexの初期化?が足りないのかもしれません。
http://wiki.wxpython.org/LongRunningTasks
ここを参考にwx.PostEventを使って、Windows&Linuxで思い通りの動作になりました。
0891デフォルトの名無しさん
2008/05/11(日) 07:22:33config.gccのopenglのオプションを有効にしてgccでコンパイルしました。
openGL用のライブラリがリリース版とデバッグ版の2つできたのですが、
2つともファイルサイズが40kb程度しかありません。
これで正しくライブラリができているのでしょうか?
0892デフォルトの名無しさん
2008/05/26(月) 12:11:450893デフォルトの名無しさん
2008/05/26(月) 12:24:10GLCanvasってレンダリングコンテキストのハンドリングぐらいしかやってないんじゃないかな。それだけならそんなもんじゃないかなぁ。
0894デフォルトの名無しさん
2008/05/26(月) 23:56:39>それ用の関数ってないですよね??
質問の仕方、心構えが間違ってる。ありませんか?と自然に聞けば良い。
自分が既に調べてみつからなかったんだけど ... ということをアピールして、
しかも、自分って正しいですよね、という雰囲気である。
これでは自分で心を閉ざしているようなものであって、
API レファレンスを読めばみつかる API もみつからない。
というのは別にして、wxString::find(const wxString&,size_t) ではだめなの?
0895デフォルトの名無しさん
2008/05/26(月) 23:59:560896デフォルトの名無しさん
2008/05/27(火) 00:04:290897デフォルトの名無しさん
2008/05/27(火) 00:28:370898892
2008/05/27(火) 02:09:22>>質問の仕方、心構えが間違ってる。ありませんか?と自然に聞けば良い。
>>自分が既に調べてみつからなかったんだけど ... ということをアピールして、
う、こういう聞き方、あまりよろしくないのですかね??
単純に「ありませんか??」だとググれと言われてしまうし、かと言って毎回なんか質問書き込む度に既に調べて分からなかったので質問しましたってのは正直億劫だったのでこんな感じの聞き方になっていましたが・・
wxString::Findだと、最初にマッチした部分のインデックスが返ってくるだけですよね??
でもwxString::Cmpとforとif使ってなんとかなったので、質問したこと自体は解決しました。
>API レファレンスを読めばみつかる API もみつからない。
これはなんでですか??
この質問の仕方だとなんでAPIリファレンスに書いてあるAPIも見つからなくなる、のでしょう?
突っ込まれて反論してるのではなく、どういう意味か分からなかったので単純に教えて頂きたいな、ということです。
0899デフォルトの名無しさん
2008/05/27(火) 02:25:57>毎回なんか質問書き込む度に既に調べて分からなかったので質問しました
答える側になった事を考えれば分かると思うが、これが正解
事前に何を調べて自分としてはどう思っていて何が疑問なのかを丁寧に書く
これしか無いよ
0900デフォルトの名無しさん
2008/05/27(火) 02:32:59解決したならいいけどCmp()でどんなコードを書いたの?
0901デフォルトの名無しさん
2008/05/27(火) 03:13:25>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
をみてください。
0902デフォルトの名無しさん
2008/05/27(火) 03:24:20あとでゆっくり読むぜ
0903デフォルトの名無しさん
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」 ノ| .|
( ,ハ ヽ _ン 人! | ||ヽ、 ,イ| ||イ| /
,.ヘ,)、 )>,、 _____, ,.イ ハ レ ル` ー--─ ´ルレ レ´
0904デフォルトの名無しさん
2008/05/27(火) 10:02:580905デフォルトの名無しさん
2008/05/27(火) 13:52:470906デフォルトの名無しさん
2008/05/27(火) 17:45:130907デフォルトの名無しさん
2008/05/27(火) 19:56:550908892
2008/05/27(火) 22:50:50>ちなみに find が大文字か小文字かも違います。
これに気づいてませんでした。C++互換というやつがあったんですね・・。
>相手が wxString::find を言ったということは、実は二つ目以降も返ってくるんではないか?
これはもちろん考えてます。が、それでも完全に見逃していました。。
wxString::find(const wxString&,size_t) でいけそうです。ありがとうございます。
が・・
>>それ用の関数ってないですよね??
>質問の仕方、心構えが間違ってる。ありませんか?と自然に聞けば良い。
これは分かるんですが・・
>>wxString::Findだと、最初にマッチした部分のインデックスが返ってくるだけですよね??
>この「ですよね??」という聞きかたが良くないです。
これはではどう聞けばよかったんでしょう?
これ以外に聞きようが無い気がするんですが・・
0909892
2008/05/27(火) 22:55:44こんなの書いてました汗
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++;
}
}
0910デフォルトの名無しさん
2008/05/27(火) 23:10:59ですよね?と聞く前に、wxString のメンバ関数一覧を再確認すればよかったんじゃないかな。たぶん。
0911デフォルトの名無しさん
2008/05/27(火) 23:47:43○(調べたけどわかんなかったので)ありませんか?
△(調べずに)ありませんか? … (ググれと言われる)
×ないですよね? … (ないんですよ。そうでしょう?(同意求む)的な感じ)
って感じなのかな。
0912892
2008/05/27(火) 23:55:56再確認して、その上で分からなかった(見逃してた)んです。
なので、言ってしまえば回答に直結するレス頂いてそれでも気づかなかった自分がバカだったってだけの話なのですが汗
0913デフォルトの名無しさん
2008/05/28(水) 00:03:07まあふと疑問がでてドキュメント見たときに、
そのクラスのあんま関係なさそうだけど他のメソッドもついでに
全部勉強しておいてやろうとかいう感じでやってればスキルもあがるんじゃないでしょうか。
0914デフォルトの名無しさん
2008/05/30(金) 10:19:55コンパイラが64bitなら無問題?
0915デフォルトの名無しさん
2008/05/30(金) 11:55:450916デフォルトの名無しさん
2008/05/30(金) 12:15:03wxCocoaの完成を待つしか無い???
0917デフォルトの名無しさん
2008/05/30(金) 12:53:48いまんところの Apple の発表は、 Carbon の GUI 部分は 64 bit にしない、Carbon の非 GUi 部分は 64 bit にする、とのことだけど、まあすぐ気の変わる会社だから誰にも分かりません
Qt はもう方針転換して、Cocoa で組みなおしてます。もう Cocoa 64 bit のβ版がでてるはず。
wxMac はメンテナンスはされてるけど、ドキュメントから何から激烈に古いのでこれを機会に wxCocoa を誰か頑張ってくれ。
0918デフォルトの名無しさん
2008/05/30(金) 13:03:150919デフォルトの名無しさん
2008/05/30(金) 13:10:59Windows でも cygwin とかでX11 サーバをいれとけば wxGTK も動くというのと同じ状況です
OS X の WindowServer は X11 ではないので。
まあ X11 は標準でついてくるけど。
0920デフォルトの名無しさん
2008/05/30(金) 13:49:290921デフォルトの名無しさん
2008/05/30(金) 15:31:32クリップボードさえX専用クリップボードだったり、
Windowsの16ビットアプリケーションより連携悪い。
0922デフォルトの名無しさん
2008/05/30(金) 16:00:05cout << で、マルチバイト文字が化けて表示されてしまいます。
同じような症状の方、また解決方法を分かる方いらっしゃいましたらご教示いただけると嬉しいです。
ちなみにwxMSWをunicodeモードでインストールして使っています。
0923デフォルトの名無しさん
2008/05/30(金) 16:03:510924デフォルトの名無しさん
2008/05/31(土) 16:12:39Code::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
ここまでチラ裏
0925デフォルトの名無しさん
2008/06/01(日) 10:58:290926デフォルトの名無しさん
2008/06/02(月) 23:48:04了解
0927デフォルトの名無しさん
2008/06/03(火) 00:10:51自分でビルドしようと思ってもコンパイルエラー。swigのバージョンかな?
動かぬなら 動くまで待とう wxPython
0928デフォルトの名無しさん
2008/06/03(火) 19:47:070929デフォルトの名無しさん
2008/06/04(水) 00:20:540930デフォルトの名無しさん
2008/06/04(水) 00:55:38いや、本家フォーラムではもう話題になってる。日本で話題になって無いからチラ裏してみただけ。
0931デフォルトの名無しさん
2008/06/04(水) 00:57:500932デフォルトの名無しさん
2008/06/04(水) 02:16:47ん?採用してるプロダクトも多いし
コミュニティも活発じゃん。
なんでそんな事を思うのかい?
0933デフォルトの名無しさん
2008/06/04(水) 09:00:21コミュニティも活発じゃないからだろうきっと。
0934デフォルトの名無しさん
2008/06/04(水) 10:01:180935デフォルトの名無しさん
2008/06/04(水) 12:26:07Photoshop Elements、Opera、Google Earth、SkypeなんかがQtだね。
確かにちょっとよさそうだし、有料なんでサポートもしっかりしてそうだけど
wxWidgetsをすでに使ってるんだったら乗り換えるほどではないかな・・
0936デフォルトの名無しさん
2008/06/04(水) 12:27:18じゃあ乗り換えるのやめる。
0937デフォルトの名無しさん
2008/06/04(水) 18:08:03if(string::npos != mml.find(wxT("\n"), i ,len)){
line_count++;
}
のように書いてみたのですが、改行文字じゃないところまでマッチしてしまいます。
正しい書き方分かる方いらっしゃいましたら教えて頂けると嬉しいです。
環境はWindows wxMSW2.8.7
文字コードはunicodeです。
0938デフォルトの名無しさん
2008/06/04(水) 20:03:39いまいちこの辺の理解ができない。
0939デフォルトの名無しさん
2008/06/04(水) 22:02:11i はどうやって更新してるの ???
0940937
2008/06/04(水) 22:27:08分かりにくくてすいません。
lenはずっと固定1で、
iは1ループで1ずつ加算していく感じです。
単純に一文字ずつ調べていくように書きました。
あとmmlってのがwxStringオブジェクトです。。
0941デフォルトの名無しさん
2008/06/04(水) 23:39:29http://www.cplusplus.com/reference/string/string/find.html
そもそも、findメソッド使いながら一文字ずつ調べようという発想が阿呆過ぎる。
0942デフォルトの名無しさん
2008/06/05(木) 00:08:18find は、i 文字目から探しはじめて、はじめにみつかった文字列を返す、ので、
i を1 ずつ加算していくとそりゃおかしくなるでしょうよ
0943デフォルトの名無しさん
2008/06/05(木) 02:45:11#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;
}
0944937
2008/06/06(金) 14:26:46レスありがとうございました。解決しましたm(_ _)m
0945デフォルトの名無しさん
2008/06/06(金) 15:05:22を使ってみたんですが、マルチバイト文字をテキストコントロールのインターフェースに入力すると、なんか補完ウィンドウ?みたいのが出ます。
これを出ないようにしたいのですが、どうすればいいでしょうか。
リファレンス見ても分かりませんでした。
0946デフォルトの名無しさん
2008/06/06(金) 15:30:060947デフォルトの名無しさん
2008/06/06(金) 23:39:26そのうちなくなるかもしれないが、俺達にはwxCocoaがある!
未だまともに動かないwxCococaがっ
0948デフォルトの名無しさん
2008/06/07(土) 00:19:470949デフォルトの名無しさん
2008/06/07(土) 00:25:23全部 Cocoa ベースに置き換えられるとは到底思えないんだよなぁ…
0950デフォルトの名無しさん
2008/06/08(日) 18:42:06補完ウィンドウが出る、というか、日本語を打つと、書いた文字がスペースキーを押すと漢字変換が出来る状態になりますが、
その状態の文字が、文字を打った場所ではなく、なぜかテキストコントロールのインターフェースの一番上の行に毎回表示されてしまう、という現象のようです。(それを補完をウィンドウ?と455で言っていました。)
wxTextCtrlだと普通に打ったマルチバイト文字がその行に表示されるのですが・・wxRichTextCtrlだとなぜかこうなってしまいます。
解決方法見つからず困っています。どなたかアドバイスいただけると幸いです。
0951デフォルトの名無しさん
2008/06/08(日) 23:19:46wx のソースコードのバグを取って開発に貢献してください。
0952デフォルトの名無しさん
2008/06/08(日) 23:52:47半年ぐらいしてパッチ当てるよーってメール着たんだが、さらに半年経っても当たる様子無い。
仕方ないんで、ソース取り出してクラス名変えて使ってるよ。
0953デフォルトの名無しさん
2008/06/08(日) 23:52:540954デフォルトの名無しさん
2008/06/09(月) 00:08:10あとで同じことにはまる人もいると思うので。
0955デフォルトの名無しさん
2008/06/09(月) 00:34:260956デフォルトの名無しさん
2008/06/09(月) 03:26:300957945
2008/06/09(月) 11:31:24やはり自分もwxWidgets自体のバグなのかなと思うのでソースをいじってみることを考えているのですが、
スペースキーで漢字変換できる状態(うまい表現の仕方あったら教えてください・・)の文章の表示位置がおかしい、というのは、wxWidgetsとIMEの連携部分で何かおかしくなっている、ということなのでしょうか。
wxTextCtrlなら正常に動く感じなので、textctrl.hとrichtextctrl.hを比べてみたりしているのですが、どの辺りを見ればいいのか・・
0958デフォルトの名無しさん
2008/06/09(月) 18:00:33気になったので調べてみた。
どうやら wxRichTextCtrl は独自の処理を行っていて
riched32.dll などを使っていないようだ。
wxTextCtrl に wxTE_RICH(2) などを付加して作成すると
riched32(20).dll を使う仕組みになっているっぽい。
0959957
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でこのようなことは出来るのでしょうか??質問ばかりですいません。
0960デフォルトの名無しさん
2008/06/09(月) 22:20:000961957
2008/06/09(月) 23:15:37wxTextCtrlで強調表示機能実現できるかどうかってプラットフォームに依るのでしょうか??
wxTE_RICHはMSWでしか使えなくて、それ使わないと無理なので他のプラットフォームでは自動的にwxTextCtrlでは実現不可、ってことでしょうか。
0962デフォルトの名無しさん
2008/06/10(火) 11:19:56wxTE_RICH は wxMSW 専用。ほかの環境では意味をなさない。
(リッチエディットコントロールを使う指定だから)
>>959
入力した文字列をリアルタイムに強調表示したいのであれば、
OnChar(wxKeyEvent &)
あたりを使えばいいんじゃないかな。やってみないとわからないけど。
0963デフォルトの名無しさん
2008/06/10(火) 11:25:22ちょっと説明不足だったけど、強調表示などは
wxTE_RICH を指定しなくても wxTextCtrl::SetStyle() と
wxTextAttr を使えば、実現できるんじゃないかな。
0964957
2008/06/11(水) 00:01:42http://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
0965デフォルトの名無しさん
2008/06/11(水) 10:46:47univ ってのは、たぶん Universal Version のこと。
Windows の例で言えば、Windows のコントロールを使わず、
全部自前で処理するようにすること。
いろいろなプラットフォームで共通した動作をするようになる。
0966957
2008/06/18(水) 18:21:31返信遅れてすいません。
EVT_KEY_DOWN とか EVT_CHARとか使って強調表示機能っぽいものが出来始めたのですが、一つ分からないことが出てきました。
EVT_CHARは、ASCII文字の入力のタイミングは拾えるようなのですが、どうも全角文字の入力タイミングは拾えないみたいなんです。
全角文字でも強調表示したい単語があるので、全角文字が一字書き込まれる毎にそのタイミングを拾って、そのイベントが終了したらwxProcessEventでキャレット周辺の文字列を取得して、所定の文字列が含まれていたら強調表示〜みたいなことがしたいのですが、
そもそも全角文字入力の際に発生しているイベントはなんなのでしょう??
0967デフォルトの名無しさん
2008/06/18(水) 21:37:042度EVT_KEY_DOWNが飛んできませんか?
内部で捨てていない限り2度飛んでくるので、
それを漢字1文字分にすればいいと思います。
0968デフォルトの名無しさん
2008/06/18(水) 23:14:50キー毎に強調表示するんでなくて、タイマーで1秒ごとに処理するとか ...
0969デフォルトの名無しさん
2008/06/23(月) 01:12:54#include <wx/memory.h> して wxDebugContext::PrintStatistics(); すると
error: ‘wxDebugContext’ has not been declared
というエラーになるんですが、なぜなんでしょうか。
プリプロセッサかなにか定義しないといけないんでしょうか。
ちなみに関係ないと思いますがwx-configには--debugを渡しています。
バージョンは2.8.7.1です。
0970デフォルトの名無しさん
2008/06/23(月) 17:28:25noob ってなんだろ…
sample の memcheck.cpp をみてみたけど、 wx/setup.h の下に書いてある
wxUSE_MEMORY_TRACING か wxUSE_DEBUG_CONTEXT を 1 に
しないと使えないみたいだよ。
0971969
2008/06/23(月) 21:52:45どうもありがとうございます、コンパイルはできました。
…ですがリンク時に大量のエラーが。
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
リンクコマンドはこんな感じなんですが。
0972デフォルトの名無しさん
2008/06/23(月) 23:16:55wx-config --cflags --libs --debug
でどうよ
0973デフォルトの名無しさん
2008/06/23(月) 23:17:250974デフォルトの名無しさん
2008/06/23(月) 23:25:24wx-configだけで実行してみ?
-Lオプションとかちゃんとついてる?
0975969
2008/06/23(月) 23:42:53-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
こんなかんじでした。
0976デフォルトの名無しさん
2008/06/23(月) 23:44:57いや、だから、-Lがないじゃん。
--cflagsでも--ldflagsでもいいから、-Lオプションが出るようにしてみ?
0977969
2008/06/23(月) 23:51:19うーん、どのフラグを指定しても-Lオプションは出ないみたいです。
ちなみにwx/setup.hをもとに戻してwxDebugContextの部分を消せば、ほかでwxWidgetクラスを参照していても
リンクまでちゃんとできます。
0978957
2008/06/24(火) 00:12:13レスありがとうございましたm(_ _)m
0979デフォルトの名無しさん
2008/06/24(火) 00:28:58あぁごめん、>>969からの流れ見てなかった。
自分でUbuntuにwxWidgets入れてみたら、/usr/lib/libwx*.so になってるから、-Lはいらなかった。多分>>969の環境も-L要らないんだろう。
で、wx/setup.hを勝手に変えちゃいけないよ。
wx/setup.hは、libwx*.soをビルドしたときに使ったオプションだから、変えたかったら自分でwxWidgetsをビルドしなおさないと。
0980デフォルトの名無しさん
2008/06/24(火) 10:13:06979 も書いているけど、ライブラリもリビルドしないと駄目。
リビルド方法は Windows ならやり方わかるんだけど、
Unix 関連だとわかんないや。スマソ。
0981969
2008/06/24(火) 23:27:51なるほど、wxWidgets自体をリビルドですか…
思いのほかめんどいんですね。
ともかく、皆さんどうもありがとうございました。
レス数が950を超えています。1000を超えると書き込みができなくなります。