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

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

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

1 :デフォルトの名無しさん:04/10/12 04:58:32
クロスプラットフォーム GUI ライブラリの wxWidgets (旧 wxWindows)について語りましょう。

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

333 :デフォルトの名無しさん:05/02/28 22:54:47
英語版はただいま書いてる人がいる。それが出たら誰か翻訳してくれるんじゃない。


334 :デフォルトの名無しさん:05/03/01 01:34:12
オライリーの本でもない限り邦訳は期待しない方がいい。
つうかプログラミング関係の書籍って結構悲惨な状況じゃね?
言語にばかり偏りすぎてる気がするし、少なくともGUIツールキット
関係はボロボロでそ。

こないだ偶然インドのLinux雑誌のサイトを見つけたのだけど、特集
でD-BUS使ったプログラミングの記事なんてものが普通に載ってた。
それにひきかえ日本は超初心者向けのしょぼいものしかないし。

335 :デフォルトの名無しさん:05/03/01 13:54:37
Mac OSX で wxPython2.5を使って、勉強しはじめたところです。

http://202.181.97.151/ymasuda/python/wxpython/simplesample.html
ここのページの「イベントとその処理」というサンプルの、キーボードからの入力イベントで、
frame.Bind(wx.EVT_KEY, myKeyHandler)
とあるのですが、実行してみるとwx.EVT_KEY が存在しないようです。
wx.EVT_KEY_UP, wx.EVT_KEY_DOWN というのがあったので置き換えてみたのですが、何も起りません。
キー入力イベントを実行するにはどうしたらいいのでしょうか?

336 :デフォルトの名無しさん:05/03/01 14:58:24
>>335
windowsだとwx.EVT_KEY_DOWNで動作してるよ。

なにかエラーは出てない?
キーを押したときにイベントプロシージャは呼ばれてる?

337 :335:05/03/01 16:11:05
イベントプロシージャ(関数)を単純に
def myKeyHandler(evt):
 print "HELLO"
としてみましたが、エラーも出ず何もおこりません。
イベントを「wx.EVT_LEFT_DOWN」「EVT_MOUSE_EVENTS」とかにすると
それぞれ反応して「HELLO」と出力されます。

付属のデモスクリプトの「KeyEvents」を実行したらキー入力に反応するので、ソースを見て調べたところ、
wx.Frameの上にwx.Windowを作って、そこでwx.EVT_KEY_DOWNをBindすれば反応するようです。

338 :デフォルトの名無しさん:05/03/01 16:22:58
from wxPython.wx import *
class App(wxApp):
  def OnInit(self):
    myform = MyForm(None, title="MyForm")
    self.SetTopWindow(myform)
    return True
class MyForm(wxFrame):
  def __init__(self, *args, **kwds):
    wxFrame.__init__(self, *args, **kwds)
    panel = wxPanel(self)
    btn = wxButton(panel, pos=(20,10))
    btn.Bind(EVT_BUTTON, self.__OnClick)
    self.chk1 = wxCheckBox(panel, label="CheckBox1", pos=(20,50), style=wxCHK_3STATE)
    self.chk1.Bind(EVT_CHECKBOX, self.__OnCheck)
    self.Show()
  def __OnClick(self, evt):
    self.chk1.Set3StateValue(wxCHK_UNDETERMINED)
  def __OnCheck(self, evt):
    chk = evt.GetEventObject()
    print chk.GetTitle(), chk.Get3StateValue()
if __name__ == "__main__":
  app = App(redirect=False)
  app.MainLoop()

すいませんwxPythonなんですがwxCheckBox::Set3StateValueを送ってもチェックボックスのイベントは
発生しないみたいなんですが自分でイベントを送るにはどのようにすればいいんでしょか。

339 :デフォルトの名無しさん:05/03/03 04:02:56
アプリケーションのデフォルトのフォントを変えるにはどうすればいいのでしょう。
wxMessageBox()等の文字の大きさを変えたいのですが
アプリケーションの中からは変更できないんですかね。

340 :デフォルトの名無しさん:05/03/03 12:32:19
wxGradeなんてのがあったのかよチクショーーーーーーーーーーーーーーーーーーーー

341 :デフォルトの名無しさん:05/03/03 14:23:07
wx-Devcpp
http://wxdsgn.sourceforge.net/
VisualWx
http://visualwx.altervista.org/index.php

GUIエディタなら他にもあるにょ

342 :デフォルトの名無しさん:05/03/03 16:00:03
すげーーしらなんだ

343 :デフォルトの名無しさん:05/03/03 16:11:05
VisualWxのがずごくよさそう!ありがとう!

344 :デフォルトの名無しさん:05/03/03 16:41:11
VisualWx
http://visualwx.altervista.org/index.php
C++でコンパイルできませ〜ん

345 :デフォルトの名無しさん:05/03/03 17:22:39
wx-Devcppにしましたorz

346 :デフォルトの名無しさん:05/03/03 20:18:59
誰かEclipse Plugin作ってくれないかなあ。

347 :デフォルトの名無しさん:05/03/03 21:38:02
>>346
君がいるじゃん

348 :デフォルトの名無しさん:05/03/04 00:33:27
_________________________
    <○ノ
     ‖
     くく
しまった!ここは言い出しっぺの法則が支配するスレだ!
オレが挫折する前に他実装へ逃げろ!
早く!早く!オレに構わず逃げろ!

349 :デフォルトの名無しさん:05/03/05 17:36:53
warotra

350 :デフォルトの名無しさん:05/03/07 21:30:14
三ツ矢サイザー

351 :デフォルトの名無しさん:05/03/07 22:17:13
全身セイカンサイザー

352 :デフォルトの名無しさん:05/03/07 23:22:45
宇宙刑事サイザー
「サイザー・WXフラッシュ!!」

353 :デフォルトの名無しさん:05/03/08 14:22:59
wxGlade で自動生成した C++ ソースコードを見ると
クラスのデストラクタが見当たらないんですけど
こういうものなのでしょうか。 (newの対になるdelete も無い)

354 :デフォルトの名無しさん:05/03/09 00:57:12
ttp://wxwindowsjp.sourceforge.jp/docs/html/wx/wx16.htm

355 :353:05/03/09 02:25:58
>>354
ありがとうございます。
なるほどwxWidgetsが処理するので必要なかったんですね。
マニュアルをきちんと読んでこい、ってところですね。すみません。

356 :デフォルトの名無しさん:05/03/09 20:44:52
必要ないつーか、しちゃいけないでしょ

357 :デフォルトの名無しさん:05/03/09 20:45:37
あ、Destroy()はいいのか

358 :デフォルトの名無しさん:05/03/10 01:05:47
Search and Destroy

359 :デフォルトの名無しさん:05/03/11 15:06:52
spybot Hellsing

360 :思兼:05/03/12 13:54:38
 ユーザーがnewしたものをwxWidgetsがdeleteするのは悪い仕掛け。
 wxWidgetsをDLLで使うと、DLLを作ったコンパイラとDLLを使うアプリを作るコンパイラが
違ったらnewしたのと違う方法でdeleteすることになり、大問題。だからwxWidgetsをDLLで
使ったらダメ。
 newと同じレイヤでdeleteするというのはC++の大原則で、>>353が感じた違和感は
すごく正当。

361 :デフォルトの名無しさん:05/03/12 14:59:32
>360
問題なのはインスタンスの所有者がはっきりしないことかと思うけど。
auto_ptr使って、所有権の委譲をはっきりさせるべきだよね。

DLLの問題は、どちらかというとC++全般の問題のような
気がするけど……まあ、Creator()とか用意しろ、というのは
感じるけどね。


362 :デフォルトの名無しさん:05/03/12 23:29:12
C++的には違うコンパイラでコンパイルしたものを利用することなんて
何の保証もないと思うが。



363 :デフォルトの名無しさん:05/03/12 23:33:41
qtとかgtkとかfltkも親が勝手に削除するが。

364 :デフォルトの名無しさん:05/03/13 08:51:30
現実的には共有ライブラリを使わないわけにもいかないし
オブジェクトを引数にできないんじゃ著しく利便性に欠ける。
コンパイラに合った共有ライブラリ名を呼び出せばいいんじゃない。

wxMSW-*.zipをGCCでビルドしたら共有ライブラリ名は
wxbase253_gcc_custom.dllになってるし。

365 :思兼:05/03/13 09:36:33
>>364
 共有ライブラリを使わないわけにいかないのは何故?HDDやメモリが安くなったん
だから、細かいとこケチってDLL Hell起こすよりstaticリンクした方が良い。
 共有ライブラリ名でコンパイラの種類は分けられても、コンパイラのバージョン
までひっくるめては管理できないし、バージョンが違えば実装が異なる可能性が
あるので危険。
 というかnew/deleteを同じレイヤでという原則を守ればいいだけの話。wx側で
deleteしたいなら、元からCOMっぽいインタフェースにすれば良い。

366 :デフォルトの名無しさん:05/03/13 10:07:32
そういうこと主張してみたいならwx-devでやれよ。
ちなみにwxでDLL使う方法はFAQなんであるていどちゃんとまとめられてる。

>>365
>  共有ライブラリ名でコンパイラの種類は分けられても、コンパイラのバージョン
> までひっくるめては管理できないし、バージョンが違えば実装が異なる可能性が

コンパチビリティがなければ別の名前にすりゃいいだけじゃねえか。

>  というかnew/deleteを同じレイヤでという原則を守ればいいだけの話。wx側で
> deleteしたいなら、元からCOMっぽいインタフェースにすれば良い。

だから何?


367 :デフォルトの名無しさん:05/03/13 10:08:58
>>365
staticリンクした方が良いと思えばstaticリンクしたら良いでしょ。
それは製作者の思惑や立場による話だし。

new/deleteを同じレイヤするべきって話は、wxWidgets側が
そうなってるんだから仕方ない。問題を提起して解決できる方法を
提供できるなら、その主な環境をサポートするCOMっぽいインタフェースなどを
wxWidgets の人たちにcontributeしてみてはいかが?

368 :デフォルトの名無しさん:05/03/13 13:35:33
D言語とwxWidgetsは愛称よさそうだな
今までにも挫折した人がちらほらいるらしいけど

369 :デフォルトの名無しさん:05/03/13 16:21:23
wxGridの使い方で質問があるのですが、
これってwxFrame上にしか配置できないんですか?
親をwxPanelにして生成しても何も表示されないっす。


370 :デフォルトの名無しさん:05/03/13 17:17:08
wxGridってしょぼくない?
描画もそうだけど、サイズやスクロールバーの制御とか……。今はよくなったん?


371 :デフォルトの名無しさん:05/03/13 19:37:22
wxGTK-2.5.4でスレッドサンプルが動かない問題は既出でしょうか。
問題の大きさから考えると騒ぎになっいてもよさそうな気がするのですが
本家フォーラムでもそれらしい話題はないし、
ちょっと手詰まりです。
wxから呼び出している他のライブラリに依存するのかもと思っています。
何かご存知の方がいらっしゃいましたら
お知恵を拝借願います。

372 :sage:05/03/14 14:30:15
>>369
サウザー

373 :369:05/03/14 23:48:25
>>372
サイザーにAddするときにwxEXPAND指定したら表示されました。ありがとう。
wxSize指定しても無視されるのですねぇ・・・。

374 :デフォルトの名無しさん:05/03/15 17:58:00
2.5.4 がいつのまにか出てた。

が、すぐに 2.5.5, 2.6.0 と出すって書いてあるんで、
インスコしません。

人柱さんたちの具合はどうなんでしょう?

375 :デフォルトの名無しさん:05/03/15 19:30:20
あなたのような人は2.6.0まで待ちましょう。


376 :デフォルトの名無しさん:05/03/15 21:23:42
Mac OS X の wxPython2.5 で wx.html を試してるのですが、
存在しないURLを開こうとするとエラーダイアログが出ます。
何と言っていいのかわかりませんが、「16ton」アイコン付きの独立したダイアログで
 HTMLTest Error (※←スクリプト名)
 Unable to open requested HTML document: http://〜・・・
と表示され、try文では引っかかりません。
存在しないURLの場合にスクリプトで処理するにはどうしたらいいのでしょうか?

import wx, wx.html
class MyApp(wx.App):
  def OnInit(self):
    self.frame = wx.Frame(None, -1, "HTML Test", size=(400,400))
    self.frame.Show(1)
    self.HtmlWin = wx.html.HtmlWindow(self.frame, -1, style=wx.NO_FULL_REPAINT_ON_RESIZE)
    self.HtmlWin.LoadPage("http://ppppppppppppppppppp/")
    return 1
app = MyApp()
app.MainLoop()

377 :sage:05/03/16 05:59:00
ttp://wxwidgets.org/manuals/2.5.3/wx_wxhtmlwindow.html#wxhtmlwindowloadpage
Return value: false if an error occurred, true otherwise
パネルを出したくなければurllibを使ってあらかじめ読み込んではどうですか.

378 :デフォルトの名無しさん:05/03/19 03:26:24
主にMSVCで使ってるだけど、Staticビルドでもランタイムはデフォルトで全部
“マルチスレッド DLL (/MD)”とか“マルチスレッド デバッグ DLL (/MDd)”
となってるのは、個人的には/MTか/MTdのほうがよかったなあ。
Staticビルドとしては中途半端になるので。

379 :デフォルトの名無しさん:05/03/19 22:09:27
同名のプロジェクトが二つある件について
http://wxd.sourceforge.net/
http://wxd.sourceforge.jp/

380 :デフォルトの名無しさん:05/03/20 00:30:32
>>379
あひる氏のほうなら挫折済み

381 :デフォルトの名無しさん:05/03/20 01:16:01
>>378
VCTK2003だけど、そういや俺も気になってCRTFLAG=/MTでmakeし直したな
まあ配布しないから何でもいいと思うが

382 :デフォルトの名無しさん:2005/03/21(月) 21:23:23
wxGTKでウィンドウ削除後にglibの警告がわんさか出るのは
いい加減なんとかなりませんかね。どうも英語ロケールとかだと出ないらしいが。
gtkの問題?



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

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)