【GUI】wxWidgets(旧wxWindows) その5【サイザー】 (960レス)
1-

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

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

これはwxWidegts側のバグと言うよりもMinGWのバグだ
544: 2013/04/01(月)01:17 AAS
>>543
あらゆるオプションくっつけてもダメだった
FLTKはvcでもgccでも問題なかったんだけどな、これgccじゃなくてmingw側の問題なのか
545
(1): 2013/04/01(月)01:21 AAS
wxWidgetsってVisualStudio2012で動く?
546: 2013/04/01(月)05:07 AAS
>>545
普通にVS2012でビルドして使ってるよ
547: 2013/04/01(月)07:42 AAS
昨晩発見、mingw-w64-dgnってトコのパッチ当てたらx64MinGWでもビルド出来た。
gccはTDM4.7.1、時間が無いのでconfigureのオプションくっつけて無いけど一発で通った

具体的には、textentry.cppの#include <shlguid.h>を削除するだけ
548: 2013/04/04(木)14:07 AAS
ハードディスクのMBR領域をバックアップしたいんだけど
どうやってプログラム書いたらいいかな

Linuxのときは/dev/sdaを開いて読むだけだったけど
Windowsとコード一緒にできない
549: 2013/04/04(木)14:19 AAS
共通の方法は無いかって話?
550: 2013/04/04(木)15:10 AAS
dd.exe のソース見ると良い
551: 2013/04/04(木)15:49 AAS
そうするわ
でもパスカルわかんねーんだよな・・・
552: 2013/04/04(木)16:02 AAS
wxWidgets 関係の話?
553: 2013/04/09(火)09:13 AAS
wxPythonなんですがベジエ曲線を書くにはどうすれば良いですか?
554: 2013/04/09(火)18:52 AAS
描画系クラスならwxDC使えばいいんじゃないかなあ
http://docs.wxwidgets.org/2.8/wx_wxdc.html
555: 2013/04/10(水)11:56 AAS
出来ました
ありがとうございました
http://docs.wxwidgets.org/2.8/wx_wxgraphicspath.html#wxgraphicspathaddcurvetopoint
556: 2013/06/24(月)15:12 AAS
Latest Development Release: 2.9.4
Current Stable Release: 2.8.12
Previous Stable Release: 2.6.4
http://www.codeproject.com/Articles/11515/Introduction-to-wxWidgets
557: 2013/06/26(水)18:58 AAS
Mac OSX LionだとwxWidgets 2.8 がビルドできない・・・
wxWidgets 2.9ビルドするとダイナミックリンクライブラリが一部作成されない・・・
Mac PortのwxWidgets-devをダウンロード するのが一番良さげ

あとMac OSXでpthreadをバイナリにリンクさせたらいきなり実行ファイルが落ちやがる
罠多すぎだろあのOS
558: 2013/06/26(水)19:01 AAS
http://www.HackInt0sH.org/
559: 2013/07/17(水) NY:AN:NY.AN AAS
wxWidgets-2.9.5では>>429で言ってたバグが直ってるぞ、やったぜ
560: 2013/08/24(土) NY:AN:NY.AN AAS
wxってlispで使えますか?
561: 2013/08/24(土) NY:AN:NY.AN AAS
馬鹿Lisperには無理
562: 2013/08/24(土) NY:AN:NY.AN AAS
lispなんて使ってかっこつけやがって
563: 2013/08/30(金) NY:AN:NY.AN AAS
みなさんお世話になりました
明日で2ch終了らしいので
今のうちに最後のご挨拶をしておきます
564: 2013/08/31(土) NY:AN:NY.AN AAS
wxWidgetsのコミッタのVadim ZeitlinがC++11でwxWidgets書いてるぞ

wxWidgets and C++ 11
http://wxwidgets.blogspot.com/2013/08/wxwidgets-and-c-11.html
565: 2013/08/31(土) NY:AN:NY.AN AAS
時既におすし
566
(1): 2013/09/06(金)17:26 AAS
http://chrome.blogspot.jp/2013/09/a-new-breed-of-chrome-apps.html
http://itpro.nikkeibp.co.jp/article/NEWS/20130906/502868/
http://news.mynavi.jp/news/2013/09/06/057/
http://internet.watch.impress.co.jp/docs/news/20130906_614308.html
567: 2013/09/06(金)23:08 AAS
>>566
昔から何度も提唱されてるブラウザによる全てのGUIの描画ですか
Googleは達成できるか
568: 2013/09/11(水)00:44 AAS
Firefoxって知ってる?
569: 2013/09/20(金)22:19 AAS
mozillaに出来なくともgoogleになら出来る
570: 2013/10/10(木)10:11 AAS
wcSVG
571: 2013/10/16(水)23:19 AAS
3.0.0-RC1
572
(1): 2013/10/17(木)08:33 AAS
wxD
573: 2013/10/17(木)12:18 AAS
>>572
どうしてるんだろうな
そのプロジェクト...
574: 2013/10/20(日)16:58 AAS
wxTcl
575: 2013/11/05(火)22:48 AAS
3もRC2まで行ってるし、次は今月中に正式版出るかな
576: 2013/11/05(火)23:10 AAS
出たとしたらLinuxのパッケージにwx-3.0が出て使えるようになる
楽しみ
577: 2013/11/13(水)21:36 AAS
3.0.0キテタ━━ヾ(゚∀゚)ノ━━!!
578: 2013/11/14(木)22:26 AAS
おいおい3.0だぞ?出たんだぞ?なんでこんなに盛り上がんないんだよ…
579: 2013/11/14(木)23:36 AAS
メインの機能追加がUnicode対応だからなぁ
今までも別に日本語使えなかったわけではないし
580: 2013/11/14(木)23:52 AAS
何言ってだこいつ
unicodeは前から使えてるっての

所感
・Mac向けビルドの安定化
・wxwebviewが全ポートで使える
→ ネットワーク接続して、html, Javascriptの解釈可能に
・aui系のバグ修正と見た目の品質向上
・c++11, clang対応
・その他即死系のバグ修正

間違ってたらすまん
とりあえず2.9で出てたバグは直ってるはず
581: 2013/11/15(金)00:03 AAS
あと>>364で出てたUTF-8以外の文字列からの変換とかどうなったんだろ
うまく変換できてるなら嬉しいけど

その他にもクラスは2.8の時より増加してるよね
582: 2013/11/15(金)00:55 AAS
MinGW gcc + wxWidgets 2.8.12で作っていたプログラムを3.0.0で作り直したら、
ウィンドウリサイズ時のwxStaticText、wxCheckBox、wxListBoxのフリッカーが見るに耐えんレベルになった。
かと言ってSetDoubleBufferを使うとリサイズがモタつく上に、何故かwxRadioBoxの枠線が消えるんだよなー。
仕方ない、一つ一つwxEVT_ERASE_BACKGROUNDを潰す作業を初めるか…。
583: 2013/11/15(金)03:59 AAS
gcc4.8で動くなら使う
x86_64-w64-mingw32じゃ、2.9はとうとうビルドさえ無理だった
584
(1): 2013/11/15(金)04:14 AAS
4.8だとやっぱりcc1plusが停止した、しかも2.9と同じファイル
公式から落としてきたライブラリ使ってもリンクに失敗
4.7ならライブラリのビルドもリンクも問題なし
585
(1): 2013/11/15(金)05:11 AAS
あ、やっぱ出来た
パラレル無しでビルドするか>>543
CXXFLAGS='-fno-keep-inline-dllexport'
をつけると大丈夫みたい、後者だと1度止まるけど再ビルドすれば通るしサンプルもビルド出来た
586: 2013/11/15(金)06:44 AAS
連投失礼、>>584-585は見なかった事にしてね
当方の環境、win7 64bit msys上からビルド、gccは4.9、静的リンクでビルド

configureにCXXFLAGS="-fno-keep-inline-dllexport"をつけてもevent.cppで止まる
その時あらためてmake CXXFLAGS="-fno-keep-inline-dllexport"としてビルドすると通る

gcc4.8だと2.9はビルドでこけるしリンクも失敗するってのは国内外でよく見かけたし、実際俺も
あきらめてたけど…ひょっとして2.9もこの方法で通ったのかなあ。

でも、なぜかサンプルのimage.exeだけ強制終了した(ビルドは可能)
587: 2013/11/15(金)07:29 AAS
VCでやったほうが実行速度速くなるんじゃないの
588: 2013/11/15(金)07:40 AAS
VC++?知らない子ですね…
589: 2013/11/15(金)07:53 AAS
損してると思うよ
590
(1): 2013/11/16(土)00:14 AAS
constexprも使えないコンパイラは要らないんですよ
591
(3): 2013/11/16(土)00:58 AAS
メタプログラミングって奴でしょ?
何が何だかサッパリ分からないよー。
つまり俺にはまだ早い代物だという事は承知してるが、
どういう用途で使うものなのか教えてほしい。
592: 2013/11/16(土)03:33 AAS
wxと同時に浸かって委員会
593: 2013/11/16(土)03:39 AAS
GCC3xの頃はvc++の方が速かった気がするけど、4.6から急激に速度が向上した気がする
あくまで自作プログラムでの話だけどね
ただ、gccでビルドされる様々なテストプロブラム見てるとvc++でビルドって安全性って意味
でヤバいんじゃないかって思っちゃうの
594: 2013/11/16(土)04:27 AAS
>>591
実行時の計算オーダーを減らす機能。事前計算機能だね。
コンパイルタイムにできるだけ計算して結果を出しておくことで実行時の計算量を減らす。
ネットの変人がそれでレイトレーシングやったりしてる。
C++14のやつはそれなりに簡単だよ。
595: 590 2013/11/16(土)09:47 AAS
>>590はちょっと冗談気味だが
正直VC++はC++とは言えない
C++の機能を最大限活かす/楽しむにはgccやclangを使うべきだと思います
会社でプログラム書けと依頼されたらもしかしてVC++使うかもしれないけど
596
(3): 2013/12/28(土)16:23 AAS
chrome のブックマークバー、 IE のお気に入りバーのようなコントロールクラスを探しています。
全てのアイテムが編集可能でアイコンとテキストが表示されて
そのアイテムの値のテキストを編集できるメニューを作りたいのですが
最適なコントロールクラスはどれか教えてください。

wx.Menu を使おうと思ったのですが、
右クリックやコンテキストメニューのイベントが Bind しても呼び出されず苦戦しています。

wx.ListCtrl を使った場合は右クリックのイベントは受けられるのですが、
左クリックのイベントが wx.EVT_COMMAND_LEFT_CLICK のみで
これは MS Windows のみと書いてあるのでできたら使いたくありません。
これらのイベントについても誤りがあれば教えて欲しいです。

環境は wxPython 2.8-msw-unicode です。
よろしくお願いします。
597
(1): 2013/12/28(土)17:54 AAS
>>596
理想の実装になるかわからない&C++しかわからないが
wxMenuをそのまま使うのが良いと思います

実装の骨子
・メニューの項目一つ一つにwxWindowID ( enum )を振る
・wxWindowIDはwxCommandEventで起動するようにしておく
・上記のwxCommandEventを処理する関数はenumをswitch文で処理する
・wxCommandEventはEVT_MENU_RANGEで定義しておく(enum値が 1000~1200の場合反応する関数を作るなど)

アイテムを編集可能にするために
・EVT_UPDATE_UIをwxMenuに設定しておき、ユーザーがメニューの項目を触ったら更新を実施

右クリック
・wxのConnectとかBindでwxMouseEventをくっつければいいと思う

-------------------------------------------------------

上記をやろうとすると、ユーザーが設定した項目でループを回して常に更新かける
感じになるんじゃないでしょうか。

wxMenu *menu = new wxMenu;
wxMenu *foo  = new wxMenu;

for ( ユーザーが設定した数だけループ ) {

foo->Append(wxID_HOGEHOGE_RANGE + i , wxT("ユーザー設定項目1"));
foo->Connect(); // 右クリックイベントを定義しておく
}
598
(1): 596 2013/12/29(日)12:00 AAS
>>597 レスありがとうございます。

wxMenu に対して Connect/Bind を試してみたのですが、
クリックイベントは wxEVT_MENU または wxEVT_MENU_RANGE だけが呼び出されました。

LEFT_UP, RIGHT_UP, COMMAND_LEFT_UP, COMMAND_RIGHT_UP, CONTEXT_MENU のイベントを試しましたが、
こちらは EVT_MENU の有無にかかわらず呼び出されませんでした。

試したソースコード : http://codepad.org/S9vtw4yX

wxEVT_MENU の際に右クリックか左クリックかわかれば処理を分岐できるのですが、
wxCommandEvent でクリックしたボタンの情報の取得方法がわかりません。

wxWindow::PopupMenu では wxMenu を参考にして GUI を作り出すようですが、
そこですでにイベントが途絶えているように思えてしまいます。
ウィンドウハンドルも得られないようだし、
ポップアップメニューにイベントを追加することはサポートされていないように感じます。

wx.ListCtrl でも思ったことなのですが、
wx.CommandEvent 系のイベントを使うコントロールクラスでは
wx.MouseEvent 系のイベントは関連付けられないのでしょうか?
599
(1): 2013/12/29(日)12:26 AAS
>>598
う〜ん、メニュー上での右クリックは悲しいことにできなさそうね

[wx-users] Trapping wxMouse events over wxMenus
https://groups.google.com/d/msg/wx-users/xAGPwk-f9Ao/0BGV9JD55L4J

この会話の中で、Vadimさん(wxWidgetsのコミッタ)が無理やでとか言ってる
メニューの項目の中で右クリックするとイベントはメニューのほうに行ってしまう
から、そのイベントをつかむのは無理だと。
で、それはWindowsとGTKのネイティブ実装がそうなっているから。

> Ideally, I would like to be able to left-click and
> right-click WITHOUT the menu disappearing.
This is impossible under the two main platforms: MSW and GTK. Menus grab
the mouse when popped up (down?) and so all mouse events go to them.
600
(1): 2013/12/29(日)12:34 AAS
いや、ちょっと違うか
メニューの右クリックイベントは掴めるけど
その時呼び元のメニューの項目が消えるといってるのか

その解決策としてはwxMenuを使わずに
menuのウィジェットを自分でエミュレートするしかないとのこと
601
(1): 2013/12/29(日)13:16 AAS
>>599-600
ありがとうございました。
wxMenu を流用できないのは残念ですが、
これで踏ん切りがつけたので、 wxListCtrl を使ったものを試そうと思います。

引き続き、wxListCtrl のような wxControl 派生に対して
wxMouseEvent 系のイベントをつける方法を求めていますので
何か参考になることがありましたらよろしくお願いします。
602: 2014/01/27(月)14:20 AAS
了解
603: 2014/01/27(月)14:35 AAS
>>601 です。 >>596 について進展したので参考になればと思い報告します。

メニューアイテムの上で右クリックしてポップアップメニューを表示することが可能なクラスが wxPython にありました。
wx.lib.agw.flatmenu がまさにぴったりのクラスでした。
RIGHT_UP のイベントはありませんが、 FlatMenuItem::SetContextMenu(FlatMenu) で >>596 でしたいことが簡単にできます。
自作のために PopupWindow あたりを調べているときに見つけました。

また何かありましたらよろしくお願いします。
604: 2014/02/26(水)17:32 AAS
サンプルが多すぎて逆にわからないのですが、
ランタイム時にGUIパーツを生成消滅させることって可能ですよね?
例えばユーザが読み込んだファイルによってボタンの数を変化させるなど
605: 2014/02/26(水)17:48 AAS
マジレスすると
出来ますよ
606: 2014/02/26(水)18:02 AAS
ありがとうございます
関連するサンプルなどありましたら教えていただけると幸いです
607: 2014/02/26(水)18:06 AAS
きっと君のHDD(SSD)に既に入ってるよω
608: 2014/02/26(水)18:19 AAS
そうなんですよね〜でもsample多くてどっから見ればよいか、という感じです
まあできるということがわかればとりあえず見て回ります
609: 2014/02/26(水)18:34 AAS
チュートリアルで最初の方から見ればすぐ出ると思う。
610: 2014/02/26(水)18:38 AAS
デモ実行してみて自分の欲しい機能と似たものを見つけたら「ソースを見る」をクリック。
611: 2014/02/26(水)18:44 AAS
すいません、見てるものが違うかもしれないので確認させてください
チュートリアルとは何を指してますか?
デモはdemosフォルダの中にあるプロジェクトですよね?「ソースを見る」とはなんでしょうか?
612: 2014/02/26(水)18:48 AAS
ごめん。
見てるものが違った。
wxPython の方見てた。
613: 2014/02/26(水)18:53 AAS
wxPythonのDemo見て目星を付けて
wxPythonのソースを参考にwxWidgetsでCソース書くのもあり
614
(1): 2014/02/26(水)19:08 AAS
なるほど
wxPythonでコードを書いたものがC++に直接変換できたりしたら便利ですね
wxGladeみたいに
615
(1): 2014/02/26(水)20:20 AAS
なんか久しぶりにwxスレが伸びてるぞ、新規ユーザー大歓迎
ボタンとかテキストエリアの動的な生成は、wxPanelとかwxSizerを使った簡単なサンプルを作ったら理解できると思う
言葉で説明するよりコード書いたほうがよいけど一応書いとく

例えばボタンを生成・削除しようとする場合
親Panelをparent, 子panelをchildとすると

1. ウィジェットの生成:parentをnewして、必要な分だけchildをnew
child = new wxPanel(parent, …);
...

2. ウィジェットの削除:parent.DestoryChildren();
この関数で子ウィジェットを全部きれいに削除できる

説明の意味がわからなければ、まずは適当なチュートリアルサイトに行くべし
おすすめ
http://zetcode.com/gui/wxwidgets/
616
(1): 2014/02/26(水)20:22 AAS
>>614
慣れたら直接C++で書けるから多分コンバータは需要無いよ
617: 2014/02/26(水)20:29 AAS
>>615
詳しくありがとうございます
拝見致します

>>616
wxGladeも要りませんかね?
フローはwxGladeで枠を作って機能をC++で書く感じになるのかと
618: 2014/02/26(水)20:30 AAS
そのくらい wx は良く出来てるね。
619: 2014/02/28(金)21:18 AAS
Qt以下の品質。gtkならcで書けた。
620: 2014/03/01(土)00:37 AAS
そらQtのほうがメジャーやろ、死ね
621: 2014/03/01(土)01:40 AAS
どっちも1992年頃にできた。OSSといえども商業的な成功がコミュニティ形成の鍵。
それ以外はGood Oldを懐かしむロートルか宗教的価値観に支えられているだけ。
622: 2014/03/01(土)01:51 AAS
GUI比較スレってなんだよね・・・
比較的な話ってここで展開してもよいものやら
というかwxWidgetとQtどっちも使ってる人っているのか
623: 2014/03/01(土)02:28 AAS
世の中のアプリケーションはQtかAwt/Swingが採用される流れ。
直交性ならgtk。サクッと安定したものを書くならtk。
トイプログラムならSDL+OpenGL。生きるとは残酷なことである。
624: 2014/03/01(土)12:13 AAS
バイナリサイズでかいですな
VC2010でサイズ最適化オプションかけてもHelloWorldで5MB...
これはもうどうしようもない感じ?
625: 2014/03/01(土)12:23 AAS
どうしようもないっす
ベース部分(wxStringとかwxWindowとか)の定義が容量食ってるから?ではないかという疑惑
626: 2014/03/01(土)12:27 AAS
うーんなるほど
ランタイムで色々判断出来るような設計なんですかねえ
627: 2014/03/01(土)12:32 AAS
そうですねwxWidgetsはRTTIの仕組みが活かされてるみたいなドキュメントはどっかで見た
たぶんwxWidgetsの中核であるwxWindowクラスはそんなんばっかしなんだろう
628: 2014/03/05(水)12:40 AAS
ファイル操作系が異様にやりにくい
wxString dir_name("some directly name");
dir_name.Traverse(some_traverser,wxString(""),flags);
でディレクトリたどりながらファイル抽出できるかなとおもったが
flags = wxDIR_FILES
だとそのディレクトリの中身”のみ”探す
flags = wxDIR_DIRS
だとその下の”全ての”階層のディレクトリを抽出する
wxDIR_DEFAULT
だとその下の”すべての”ファイルを探す
なんでこんな仕様なんだ
629: 2014/03/05(水)12:45 AAS
ああわかった
ディレクトリが見つかった場合のみその下も探す、ということなんだな
するとファイルのみだと当然下なんぞ無いからそれ以下を探すことはなく
ディレクトリのみ、とすると下にもいけるから最下層まで探そうとするわけか
うーん
630: 2014/03/05(水)12:55 AAS
連投失礼
Traverserクラスを継承してそのOnDir関数の返り値で制御すればいいということでした
631: 2014/03/11(火)15:51 AAS
浮動小数点を扱えるsliderってデフォルトではなさそうですか?
632: 2014/03/11(火)17:23 AAS
たとえば 0 - 100 を 10 で割ると
0.0 - 10.0 のレンジになります
633: 2014/03/11(火)17:30 AAS
やっぱそんな感じなんすね
最大値最小値現在値ラベル表示が便利だなーとおもったんですが、小数点付きでやろうと思ったら
自分でラベル付けるしかなさそうですね
634
(1): 2014/03/15(土)21:45 ID:w4oGcJBI(1/2)調 AAS
右側のボタンを押したら左側のパネルを再描写させたい、など
あるイベントから(親でない)ほかのイベントを誘発させたい時ってあると思うのですが
その辺に関する記事てどっかにあります?
635
(1): 2014/03/15(土)23:13 ID:eHN/5w2/(1)調 AAS
>>634
そのへんはイベント処理の領域になりますね
wxWiki見るしかない感じ

イメージとしては
Sample::LeftPanelRedraw(wxCommandEvent& event);
というイベント関数のIDがID_LeftPanelRedrawであった場合

そのイベントは
wxCommandEvent e(wxCommandEvent(wxEVT_COMMAND_BUTTON_CLICKED, ID_LeftPanelRedraw));
LeftPanelRedraw(e);
で呼べる
1-
あと 325 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.038s