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

2010/04/09(金) 15:12:36
クロスプラットフォーム GUI ライブラリの wxWidgets (旧 wxWindows)についてのスレ。

本家
 ttp://www.wxwidgets.org/
wxWindows日本語プロジェクト
 ttp://wxwindowsjp.sourceforge.jp/
Cross-Platform Programming with wxWidgets
 ttp://wxwidgets.info/
Let's wxWidgets
 ttp://dot-gray.s33.xrea.com/
wxWindowsで始めるC++ GUIプログラミング
 ttp://www.h3.dion.ne.jp/~k5_n/wxwin/
wxWidgets でクロスプラットフォーム GUIアプリを作ろう
 ttp://0xcc.net/pub/uu-2004-08/

前スレ
【GUI】wxWidgets(旧wxWindows) その4【サイザー】
http://pc12.2ch.net/test/read.cgi/tech/1214657360/
2012/07/16(月) 05:30:47.00
>>444
>wxStringは、通常変数? wxArrayStringは、ポインタ変数?を利用しているというころでしょうか?

C/C++ではクラスや変数の宣言時に実体を宣言するかポインタで宣言するか決められるので
その質問はそもそもちょっとポイントがずれている

【ポインタ】
例えば
wxButton *btn1 = new wxButton(panel, wxID_BUTTON1, wxT("ボタン1"));

はwxButtonクラスをポインタ変数で宣言している
*btn1内のクラスメソッドをいじるには「*btn1->GetLabel();」と書く必要がありますよ、と
普通は大きなクラスはポインタ変数でインスタンスを作って宣言したほうが良い

【実体】
wxString myTestStr;
myTestStr = wxT("テスト文字列");
myTestStr.IsEmpty();  ← 空文字であるかどうか調べてる

>下記マニュアルをどのように調べればよいのでしょうか?

もうお気づきかもしれないが
http://wxwindowsjp.sourceforge.jp/docs/html/wx/wx368.htmに載っているのは
wxStringという「クラス」についてのリファレンス
wxString::Hogehoge のように「::」がくっついた後半部分がそのクラスが使用出来るメソッド(関数)

myTestStr.IsEmpty();  ← wxStringのIsEmptyというメソッドをつかっている

自分が欲しい機能をクラスリファレンスで探し、クラスを宣言してどのように使えるかは
メソッド部分を見れば良いということ。
446デフォルトの名無しさん
垢版 |
2012/07/16(月) 07:23:17.68
DLLよりもstaticの方が配布サイズ小さくなるな
2012/07/16(月) 10:56:52.47
逆でわ?
2012/07/16(月) 11:06:12.02
DLLリンクで作るともちろんexeは小さくなるけど
DLLも一緒に配布するとなるとでかくなるって意味
2012/07/16(月) 11:08:34.14
そりゃあんたのプログラムの規模が小さいだけでわ?
2012/07/16(月) 11:12:44.68
いや先入観無しで聞いてくれ
最初はそう思ってたんだが
確かにDLLリンクで作るとexeはめっちゃ小さい
しかし実際そこそこの規模のプログラム書いて
staticで作ってみて出来たexeが
(前者のexeに必要なDLLを合わせたサイズに比べると)
意外と小さい
451デフォルトの名無しさん
垢版 |
2012/07/16(月) 11:15:19.52
exe だけ配布汁!
2012/07/16(月) 11:22:57.42
そりゃDLLはwxWidgets全部入りだしな
2012/07/16(月) 12:51:54.82
規模によるとしか言いようがない
2012/07/16(月) 12:57:22.32
MFC 最強ですねわかります
2012/07/16(月) 13:25:13.34
DLLはwxWidgetsのシンボル全部入ってるけど、
staticリンクだと本体が使うシンボルだけ.aから
引っ張ってくるんだから、そうなるのは当たり前
2012/07/16(月) 14:12:18.33
規模によるとしか言いようがない
2012/07/16(月) 14:13:00.02
DLL ってなんのためにあるんだっけ?
2012/07/16(月) 14:13:47.36
ワロタ
2012/07/16(月) 14:34:56.55
wxWidgetsで作ったexeが一個(あるいは少数)しかないときはそうなるのは当たり前。
DLLのメリットが生きるのはOS等のようにexeが無数にあってさらに共通部分(API)が多い場合。
趣味でやってるならSTATICでいいんじゃね?
2012/07/16(月) 14:56:37.82
めずらしくwxWidgetsスレが伸びている・・・
2012/07/16(月) 15:55:58.62
規模によるとしか言いようがない
2012/07/16(月) 15:56:38.27
2.9.4 出たからな
2012/07/16(月) 16:19:03.02
2.9.4 はまだ Development だよね。

いつ Stable になるんだよ、まったく。
2012/07/16(月) 16:28:29.73
馬鹿には無理
2012/07/16(月) 17:57:49.06
馬鹿には無理さんは帰って、どうぞ
466437
垢版 |
2012/07/16(月) 19:32:54.08
事故解決しました。
リンカ設定ではディレクトリで vc_dll の方を指定していたのですが、
PreprocessorDefinitions に WXUSINGDLL が抜けていたため、
static link しようとしてシンボル未解決になっていたようです。
2012/07/16(月) 19:53:09.82
つ ttp://wiki.wxwidgets.org/Microsoft_Visual_C%2B%2B_Guide#Project_properties
2012/07/16(月) 19:55:20.02
そうそう。
それです。
2012/07/17(火) 23:59:29.64
>>445
レスありがとうございます。
>>その質問はそもそもちょっとポイントがずれている

ポインタ渡し、参照渡しを調べていたのですが、勘違いしていたようです。

int,charなどの型の場合・関数の場合・クラスの場合と大体は似ているようですが、
クラス内の機能を使用するときには、->を使わないとだめなことがなんとなくわかりました。

void functestFrame::OnButton2Click(wxCommandEvent& event)
{
wxString str1 = wxT("まっぎょ");
functestFrame::wxStringfunc(&str1);
}
void functestFrame::wxStringfunc(wxString* str)
{ wxMessageBox(*str);
str -> Last();}

教えてもらったとおりやると、コンパイルと実行ができ、str.Lastとやればコンパイルエラーがでました。

間接参照演算子の*strの使い方で勘違いしていました。
あくまで、データをみるだけで、クラス等のpointer渡しの場合かつその機能を使う
場合は、->を使うんですね。

ありがとうございました。
2012/07/18(水) 09:07:55.01
全然違うw

C++の初心者用入門本読んで勉強汁
2012/07/18(水) 13:24:00.41
wxWCharBuffer の使い方が良く判りません。
472デフォルトの名無しさん
垢版 |
2012/07/23(月) 08:38:27.68
過疎
2012/07/23(月) 13:34:00.85
過疎かあヌ
2012/08/10(金) 14:24:37.30
わからないことがあるので、教えてください。

http://fossies.org/unix/misc/wxWidgets-2.9.4.tar.gz:a/wxWidgets-2.9.4/utils/helpview/src/client.cpp
のソースの中で、149行目と150行目の : は何という演算子で、どのようなことをしているのでしょうか? 
149 MyFrame::MyFrame(wxFrame *frame, const wxString& title)
150 : wxFrame(frame, wxID_ANY, title, wxDefaultPosition, wxSize( 200, 100 ) )

149行目は、コンストラクターというのはなんとなくわかりますが、その後の演算子?がなにをしているのかが
わかりません。

検索しても、スコープ演算子はでてくるのですが、: 一個だけの演算子の意味がでてきません。

試しに、150行目に該当する部分をコメントアウトしてみると、ビルドは通りますが、実行しても何も表示されません。

{}の中に、 wxFrame(frame, wxID_ANY, title, wxDefaultPosition, wxSize( 200, 100 ) );を追加してビルドして
実行しても何も表示されません。






2012/08/10(金) 14:33:22.20
すいません、リンク先の内容が質問したい内容と同じではありませんでした。

実際は、C:\wxWidgets-2.9.3\samples\sockets\client.cppの内容をビルドしながら理解しようとしています。

client.cpp
// frame constructor

MyFrame::MyFrame() : wxFrame((wxFrame *)NULL, wxID_ANY,
_("wxSocket demo: Client"),wxDefaultPosition, wxSize(300, 200))

ここのコンストラクタの後の、: の演算子?であっているのかどうかも不明なのですが・・・
これは何をしているのでしょうか?

476デフォルトの名無しさん
垢版 |
2012/08/10(金) 14:58:02.41
>>475
MyFrameは多分継承したクラスなので、基底クラスであるwxFrameのコンストラクタを呼び出している。
2012/08/10(金) 14:59:37.21
あげちゃった・・・。Orz
2012/08/10(金) 15:15:07.17
>>476

教えてくれてありがとうございます。
継承と基底クラスを調べてみます。
479デフォルトの名無しさん
垢版 |
2012/08/10(金) 16:12:34.61
若き日のヴィドゲンシュタインがよみがえったように
480デフォルトの名無しさん
垢版 |
2012/08/10(金) 16:21:56.40
連結グラフ G=(V,E) と重み d:E->R+が与えられたとき 最小木を求めよ。
2012/08/14(火) 17:06:28.44
演算子?ではありませぬ
2012/08/28(火) 18:53:02.77
初期化リストじゃね?
2012/08/31(金) 17:18:28.13
wxStaticBitmapに透過png画像を指定して描画しても、
透過になってくれてないようなのですが、
単にwx.BITMAP_TYPE_PNGで読んだものを貼るだけじゃ駄目なんでしょうか?
2012/08/31(金) 18:43:26.98
wxInitAllImageHandlers() の呼び忘れや
png を作成したソフトが原因で正常に透過処理されないとかかなあ
サンプルのimage参考にするといいと思うよ
2012/08/31(金) 22:09:21.20
wxPython in action の翻訳版が・・・
http://www.slideshare.net/ryanvan/wxpython-in-action
2012/08/31(金) 23:26:46.41
スライド565ページって、出版じゃないのかー。
それでも俺は原書を選ぶぜ。
2012/08/31(金) 23:48:10.30
webはスライドだけど
savefileボタン押したら
普通にPDFが落ちて来た
2012/09/01(土) 02:49:55.50
・wxAuiPaneInfoで、一度設定したCaptionをCaptionVisibleのtrue, falseで切り替えたいけど
なぜか反映されん、なんでだぜ

wx 2.9.4使ってみた

・GTK環境 wx2.8でSetSizer呼んだ後Fit呼ぶと異常終了するバグが2.9.4では直ってた
・同じくGTK環境 wxListctrlでwxLIST_AUTOSIZEしても、自動でカラムの幅が調整されない
(なんかメーリス見たらwxPythonのロビンさんが「まだ直ってないの?」みたいなこと書いてた。誰か直して。)
2012/09/01(土) 04:53:40.84
GTKは糞
2012/09/05(水) 19:33:35.92
GTK+ は多段タブも実現できんのだな
WindowsにできてGTKにできんことが結構見えてきた

ミゲルさんもこんなこと書いてるし、Linuxのデスクトップはダメだな
http://www.yamdas.org/column/technique/linuxdesktopj.html
2012/09/06(木) 09:29:27.19
>>489
またおまえか
巣に帰れ
2012/09/06(木) 09:57:24.07
何度でも言うよ
欠かさず言うよ
GTKは糞
2012/09/06(木) 17:47:43.41
>>492
おっさんなにやってん?
2012/10/15(月) 03:49:13.19
eNprdGhEhnH6XMi8RgcFfQj71L1t6+FS
Cvr6jXc0G/c3BgLhfriwvl5No4NejUJz
LpIZQVwwPY0OQOkaBSBnDlRujgKYC4ZQ
ZfoKYGVzkkEcDYX4xjnxmo0OzXUKU/L6
1jadbDo7bfP0uVwwA8FqG4MgjH01YAMa
A7kgNND1LQtgroC6Kb4xDiyr1BiAAjP1
9JpzFQBRXmeP
495デフォルトの名無しさん
垢版 |
2012/10/24(水) 22:55:14.82
大量削除の危機を生き延びたんだな
496デフォルトの名無しさん
垢版 |
2012/11/01(木) 21:43:39.40
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘
497デフォルトの名無しさん
垢版 |
2012/11/17(土) 01:59:11.60
hosh
2012/11/18(日) 17:34:28.86
wxWidgetsって、gtkを呼び出す抽象的なレイヤになるの?
2012/11/18(日) 18:00:39.95
OSとかbuildしたときの設定による
Windows版なら今は直接Win32API呼んでるはず
2012/11/19(月) 00:34:29.96
>>498
抽象的なレイヤって言い方が引っかかるけど
どのプラットフォームでも同じコードで動くよ
2012/11/19(月) 02:31:32.83
gtkを呼び出す抽象的なレイヤなんてないよ
2012/11/20(火) 14:03:35.35
wxGtkって何なんだ?
2012/11/20(火) 14:05:16.89
具象的
2012/11/20(火) 16:40:02.72
gtkをwxWidgetのバインディングで呼出してんだから抽象的じゃないの?
具象的だと日本語おかしくね?
2012/11/20(火) 16:46:58.65
gu
taite
ki
2012/11/22(木) 21:38:02.68
>>505
はいはいワロス
2012/11/22(木) 23:26:03.48
>>506
ひでー
2013/01/10(木) 03:31:25.47
>>492
何度も言うよ
残さず言うよ
だろ
>>493
中途半端なつっこみするなら黙ってろよムズムズする
509デフォルトの名無しさん
垢版 |
2013/01/10(木) 07:36:12.49
何度でも言うよ
欠かさず言うよ
GTKは糞
2013/01/10(木) 16:50:22.28
マイナーGUIスレを見たけど、以前はFOXが人気だったんだね
まだ息してるのかな
2013/01/10(木) 16:53:16.15
今はもう、QtかWxWidgetsの二択にしか見えない。気のせい?
2013/01/11(金) 08:37:58.62
FortranプログラムのGUIシェルをwxWidgetsで作ろうとsampleのexecを改造しているけれどよくわからない。
いい本ないでしょうか。
最近wxPythonの本が出ましたがパイプまでは書いていないので…
513デフォルトの名無しさん
垢版 |
2013/01/11(金) 09:01:20.21
eNprdGhEhnH6XMi8RgcFfQj71L1t6+FS
Cvr6jXc0G/c3BgLhfriwvl5No4NejUJz
LpIZQVwwPY0OQOkaBSBnDlRujgKYC4ZQ
ZfoKYGVzkkEcDYX4xjnxmo0OzXUKU/L6
1jadbDo7bfP0uVwwA8FqG4MgjH01YAMa
A7kgNND1LQtgroC6Kb4xDiyr1BiAAjP1
9JpzFQBRXmeP
2013/01/13(日) 12:10:17.65
64bit版MinGWでwxWidgetsコンパイルしてるけど
作ったバイナリが起動すらしないので死にそう
2013/01/14(月) 01:59:27.93
コンパイルできた
64bitネイティブアプリや、どや
2013/01/15(火) 01:35:39.03
windows7を使用しています。

ttp://wiki.wxwidgets.org/Beech:Using_common_dialogs
を参考に拡張子が、csvとtxtのファイル名のみを取得しようとしています。

wxDir::GetAllFiles(dir , &filename ,wxT("*.txt"));
wxDir::GetAllFiles(dir , &filename ,wxT("*.csv"));
filespecが一つのときは指定拡張子のみ取得できます。

wxDir::GetAllFiles(dir , &filename ,wxT("*.csv;*.txt"));
2個指定すると何も取得されません。

指定方法が悪いと思うのですが、どのようにすればいいのでしょうか?
教えてください。
2013/01/15(火) 06:14:19.90
http://trac.wxwidgets.org/ticket/4420
518デフォルトの名無しさん
垢版 |
2013/01/15(火) 06:31:29.95
分からないならレスしないでください
2013/01/15(火) 17:15:14.30
>>517
レスありがとう。
一つしかサポートされないのですね。

ありがとうございました。
2013/01/16(水) 15:50:20.31
なんで
ttp://wiki.wxwidgets.org/Beech:Using_common_dialogs
を参考にすると
wxDir::GetAllFiles(dir , &filename ,wxT("*.csv;*.txt"));
が出てくるんだろ
基地外か
2013/01/16(水) 23:31:49.99
wxWidgetsを使おうとしてる時点でオカシイのだ(・∀・)
2013/01/17(木) 18:18:55.83
童貞乙
2013/01/19(土) 07:42:35.24
この道はいつか来た道♪ああ そうだよあかしやの花が咲いてる
2013/01/20(日) 02:49:05.26
windowsで変な抽象レイヤなんて触るなら、c#使った方がマシ
2013/01/21(月) 20:07:51.79
wxRubyでWindowsのイベントを捕まえたいのですがどのようにすれば出来ますか?
C++なんかだとMSWWindowProcをオーバーライドすることで出来るみたいですが
wxRubyには見あたらないような・・・
526デフォルトの名無しさん
垢版 |
2013/01/21(月) 23:44:55.73
Ruby を Windows で使う人って()
2013/01/21(月) 23:59:56.58
【ActiveScript】RubyをWindowsで使うスレ【GUI】
http://toro.2ch.net/test/read.cgi/tech/1155031689/
2013/01/23(水) 01:57:17.09
>>521
MFCを直に触りたくないとき、他に候補なんてある?
2013/01/23(水) 04:51:35.91
Qt
2013/01/23(水) 07:01:30.47
CLX, GTK+, Qt, Tk, FLTK, FOX

C言語/C++ベースおよびマルチ言語ベース
ウィジェット・ツールキット - Wikipedia
2013/01/23(水) 07:03:10.89
Agar
CEGUI
GLUI
Juce
Ultimate++
Visual Component Framework (VCF)
YAAF
2013/01/30(水) 12:24:11.63
MFCならWindowsのみで動けばいいんだろ

WTL
OWLNext
2013/01/31(木) 05:40:10.73
このひとまた変な本出してるな
ttp://www.amazon.co.jp/dp/4877832890/
このひとの他の本酷かったから買うつもり無いけど
2013/02/28(木) 14:11:47.04
またバグを発見してしまった

http://docs.wxwidgets.org/stable/wx_wxinputstream.html#wxinputstreamlastread

wxInputStream::LastRead
size_t LastRead() const

LastReadをlinuxで使うと常に0で返ってくる。
6年前に修正されてるはずだけどbranchに入ってないからバグったまんまですかVZさん。。。
2013/02/28(木) 14:13:49.27
チケットは以下

http://trac.wxwidgets.org/changeset/44485
2013/02/28(木) 14:15:06.81
そうか、 2.8のブランチには入ってるけど2.9には反映されてないのか、どちらにせよだめぽ
2013/03/01(金) 00:54:34.59
wxInputStreamなんて使わんから
2013/03/01(金) 01:16:17.90
馬鹿には無理
2013/03/01(金) 08:18:29.29
wxWidgets は正規表現とか、
文字コードの変換がいまいち信用出来ないので、
window のフレームワークだけに使って、
基本的なロジックは boost とかで済ますのが正解。
540デフォルトの名無しさん
垢版 |
2013/03/16(土) 15:59:13.75
wxwidgetsのListCtrlのカラムに直接描画したいんだけどどうしたらいい?
具体的には、ダウンローダなどによくあるようなダウンロード状況を表す
横棒のグラフに%が表示されてるような奴なんだけど
2013/03/16(土) 16:03:03.35
馬鹿には無理
2013/03/31(日) 11:08:01.89
ググったら>>64がヒットした。
x64のgcc4.7以降でソースからコンパイルすると途中でcc1plusが止まった
x64のvc9じゃ止まらない。更新途絶えてるから修正期待するのは無理か
2013/03/31(日) 13:02:54.41
>>64
>>542

共有ライブラリもしくはモノリシックライブラリをビルドする場合、公式のMinGWだとメモリを使い果たしてしまう
TDM-GCCに切り替えた上で CXXFLAGS='-fno-keep-inline-dllexport' を付けて configure実行するよろし

これはwxWidegts側のバグと言うよりもMinGWのバグだ
2013/04/01(月) 01:17:29.35
>>543
あらゆるオプションくっつけてもダメだった
FLTKはvcでもgccでも問題なかったんだけどな、これgccじゃなくてmingw側の問題なのか
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況