1 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 15:12:36 .net] クロスプラットフォーム 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【サイザー】 pc12.2ch.net/test/read.cgi/tech/1214657360/
263 名前:デフォルトの名無しさん mailto:sage [2011/09/27(火) 09:53:24.70 .net] POSIXって良く聞くけどなんですか?
264 名前:デフォルトの名無しさん mailto:sage [2011/09/27(火) 20:16:50.72 .net] 258です。訳文とかちょっと修正しました。ページ内部のリンクも増やした。 >>263 実は私もよく知らない。
265 名前:デフォルトの名無しさん mailto:sage [2011/09/27(火) 23:02:57.78 .net] 雲丹の標準規格じゃないの?
266 名前:デフォルトの名無しさん mailto:sage [2011/09/27(火) 23:05:37.07 .net] ja.wikipedia.org/wiki/POSIX POSIX(ポジックス パーズィックス、Portable Operating System Interface)とは、 異なる実装のUNIX OSを始めとする各種OSに共通のAPIを定め、移植性の高い アプリケーションソフトウェアの開発を容易にすることを目的としてIEEEが策定した アプリケーションインタフェイス規格である。
267 名前:デフォルトの名無しさん mailto:sage [2011/09/28(水) 21:35:43.22 .net] motifもIEEEが規格決めてたから、こっち使いましょうよ
268 名前:デフォルトの名無しさん mailto:sage [2011/09/29(木) 14:42:15.49 .net] >>263 ザックリとでよければ「UNIX互換」くらいに考えておけば良い。
269 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 17:30:42.91 .net] CodeBlocks10.05とwxWigets2.8を使用しています。 勉強中です。 wiki.codeblocks.org/index.php?title=WxSmith_tutorials の1-7までは実行してみました。 そんなレベルなのですが、ディレクトリ内のファイル名を一覧でcsvにだせるところまでを目標に しています。 void filenameFrame::OnButton1Click(wxCommandEvent& event) { wxString CurrentDocPath; wxString Filename; wxArrayString Filenames; wxString GetDirectory; wxFileDialog* OpenDialog = new wxFileDialog( this,wxEmptyString,wxEmptyString,wxEmptyString,wxEmptyString,wxFD_MULTIPLE,wxDefaultPosition); if (OpenDialog->ShowModal() == wxID_OK) { CurrentDocPath = OpenDialog->GetPath(); Filename << OpenDialog->GetFilename(); GetDirectory << OpenDialog->GetDirectory(); Filenames << OpenDialog->GetFilenames[0]; TextCtrl1->SetLabel(CurrentDocPath); TextCtrl2->SetLabel(Filename); TextCtrl3->SetLabel(GetDirectory); TextCtrl4->SetLabel(Filenames); } OpenDialog->Destroy();}
270 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 17:42:09.03 .net] C:\C\FILENAME\filenameMain.cpp|133|error: invalid use of member (did you forget the '&' ?)| C:\C\FILENAME\filenameMain.cpp|140|error: conversion from 'wxArrayString*' to 'const wxString' is ambiguous| C:\wxWidgets2.8\include\wx\string.h|692|note: candidates are: wxString::wxString(wxChar, size_t) <near match>| コンパイルすると、このようなメッセージが表示されます。 以下の行を削除すると、正常にコンパイルが通ります。 wxArrayString Filenames; Filenames << OpenDialog->GetFilenames[0]; wxArrayString Filenames; wxFiledialogで複数ファイルを選択した場合には、配列?を使用しないといけないような気がするので、多分wxArrayStringを使わないとだめかと 思いいれてみました。 配列?なのでGetFilenames[0]といれれば複数ファイルを選択した場合に一番最初のファイル名が入る認識でしたが間違っているようです・・・ 複数ファイルの選択と、複数のファイル名の取得方法を検索したのですが、サンプルなどを見つけることができませんでした。 どこが間違っているか教えてください。
271 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 18:28:13.72 .net] >>269 最後の行 OpenDialog->Destroy();} 中括弧が全角になってるなあ てかこれ全コードじゃないよね
272 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 20:52:59.24 .net] サンプルにある"dialogs"が参考になるんじゃないかな、 "File operations->Open files"というのがある。
273 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 21:01:42.80 .net] >>271 レスありです。全コードではありません。 改行などを削除しています。 wxSmithで作成していますので、どのようなソースが必要になりますか? プロジェクトフォルダを見ると、bin/obj/wx_pch.h.gch/wxsmithフォルダと filename.cbp/filename.depend/filename.layout/filenameApp.cpp/filenameApp.h/filenameMain.cpp/filenameMain.h/resource.rc/wx_pch.hファイルがあります。 filenameMain.cppの内容は以下のとおりです。 /*************************************************************** * Name: filenameMain.cpp * Purpose: Code for Application Frame * Author: () * Created: 2011-11-08 * Copyright: () * License: **************************************************************/ #include "wx_pch.h" #include "filenameMain.h" #include <wx/msgdlg.h> //(*InternalHeaders(filenameFrame) #include <wx/intl.h> #include <wx/string.h> //*) //helper functions enum wxbuildinfoformat { short_f, long_f }; wxString wxbuildinfo(wxbuildinfoformat format)
274 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 21:03:08.95 .net] { wxString wxbuild(wxVERSION_STRING); if (format == long_f ) { #if defined(__WXMSW__) wxbuild << _T("-Windows"); #elif defined(__UNIX__) wxbuild << _T("-Linux"); #endif #if wxUSE_UNICODE wxbuild << _T("-Unicode build"); #else wxbuild << _T("-ANSI build"); #endif // wxUSE_UNICODE } return wxbuild; } //(*IdInit(filenameFrame) const long filenameFrame::ID_BUTTON1 = wxNewId(); const long filenameFrame::ID_TEXTCTRL1 = wxNewId(); const long filenameFrame::ID_BUTTON2 = wxNewId(); const long filenameFrame::ID_TEXTCTRL2 = wxNewId(); const long filenameFrame::ID_BUTTON3 = wxNewId(); const long filenameFrame::ID_TEXTCTRL3 = wxNewId(); const long filenameFrame::ID_BUTTON4 = wxNewId(); const long filenameFrame::ID_TEXTCTRL4 = wxNewId(); const long filenameFrame::ID_PANEL1 = wxNewId(); //*)
275 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 21:04:37.12 .net] BEGIN_EVENT_TABLE(filenameFrame,wxFrame) //(*EventTable(filenameFrame) //*) END_EVENT_TABLE() filenameFrame::filenameFrame(wxWindow* parent,wxWindowID id) { //(*Initialize(filenameFrame) wxFlexGridSizer* FlexGridSizer1; Create(parent, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE, _T("wxID_ANY")); FlexGridSizer1 = new wxFlexGridSizer(0, 3, 0, 0); Panel1 = new wxPanel(this, ID_PANEL1, wxDefaultPosition, wxSize(560,106), wxTAB_TRAVERSAL, _T("ID_PANEL1")); Button1 = new wxButton(Panel1, ID_BUTTON1, _("Label"), wxPoint(8,24), wxSize(72,24), 0, wxDefaultValidator, _T("ID_BUTTON1")); TextCtrl1 = new wxTextCtrl(Panel1, ID_TEXTCTRL1, _("Text"), wxPoint(104,24), wxSize(456,22), 0, wxDefaultValidator, _T("ID_TEXTCTRL1")); Button2 = new wxButton(Panel1, ID_BUTTON2, _("Label"), wxPoint(8,48), wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON2")); TextCtrl2 = new wxTextCtrl(Panel1, ID_TEXTCTRL2, _("Text"), wxPoint(104,48), wxSize(456,22), 0, wxDefaultValidator, _T("ID_TEXTCTRL2")); Button3 = new wxButton(Panel1, ID_BUTTON3, _("Label"), wxPoint(8,72), wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON3")); TextCtrl3 = new wxTextCtrl(Panel1, ID_TEXTCTRL3, _("Text"), wxPoint(104,72), wxSize(456,22), 0, wxDefaultValidator, _T("ID_TEXTCTRL3")); Button4 = new wxButton(Panel1, ID_BUTTON4, _("Label"), wxPoint(8,96), wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON4"));
276 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 21:05:18.62 .net] TextCtrl4 = new wxTextCtrl(Panel1, ID_TEXTCTRL4, _("Text"), wxPoint(104,96), wxSize(456,22), 0, wxDefaultValidator, _T("ID_TEXTCTRL4")); FlexGridSizer1->Add(Panel1, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0); SetSizer(FlexGridSizer1); FlexGridSizer1->Fit(this); FlexGridSizer1->SetSizeHints(this); Connect(ID_BUTTON1,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&filenameFrame::OnButton1Click); //*) } filenameFrame::~filenameFrame() { //(*Destroy(filenameFrame) //*) } void filenameFrame::OnQuit(wxCommandEvent& event) { Close(); }
277 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 21:06:07.61 .net] void filenameFrame::OnAbout(wxCommandEvent& event) { wxString msg = wxbuildinfo(long_f); wxMessageBox(msg, _("Welcome to...")); } void filenameFrame::OnButton1Click(wxCommandEvent& event) { wxString CurrentDocPath; wxString Filename; wxArrayString Filenames; wxString GetDirectory; wxFileDialog* OpenDialog = new wxFileDialog( this,wxEmptyString,wxEmptyString,wxEmptyString,wxEmptyString,wxFD_MULTIPLE,wxDefaultPosition); if (OpenDialog->ShowModal() == wxID_OK) { CurrentDocPath = OpenDialog->GetPath(); Filename << OpenDialog->GetFilename(); GetDirectory << OpenDialog->GetDirectory(); //Filenames << OpenDialog->GetFilenames[0]; TextCtrl1->SetLabel(CurrentDocPath); TextCtrl2->SetLabel(Filename); TextCtrl3->SetLabel(GetDirectory); //TextCtrl4->SetLabel(Filenames); } OpenDialog->Destroy(); }
278 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 21:58:12.30 .net] 連続投稿規制 5回でなるんですねが・・・ こんな感じです。 配列・ポインタなど、マニュアルを目を通したのですが、完全に理解していません。 とりあえず色々さわりながら理解していこうかと考えています。 >>272 ありがとうです。 sampleフォルダの中のですね。 当初この中を探したのですが、wxSmithでのプロジェクトがなかったのであきらめていました。 dialogs.cppの790行目からそれらしい記載があったので参考にしてみます。 ありがとうでした。
279 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 22:45:02.83 .net] 迷惑な香具師だな
280 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 07:33:07.56 .net] >>278 長いときはcodepadとかideone使おうぜ・・
281 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 08:19:10.74 .net] 会社から帰ったら考えてみるわ>>278
282 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 14:01:41.90 .net] >>280 そのような場所があるとは知りませんでした。 次からそうします。 スレ汚しすみませんでした。 あと、/sample/dialogs/dialogs.cppの該当部分を、コピペしただけで複数ファイルの選択と、表示ができました。 意味を調べながら理解していきます。 ありがとうでした。
283 名前:デフォルトの名無しさん [2011/11/09(水) 17:58:05.53 .net] 中学生か まあがんがれや
284 名前:デフォルトの名無しさん [2011/11/22(火) 02:03:10.37 .net] ubuntuでwxWidgetsの勉強中なのですが、samplesフォルダ内のサンプルソース(c++)をいくつか実行してみようと思い、付属のmakefile.cpp及びmakefile.unxをmakeコマンドで実行しようとするとコンパイルに失敗します。 端末より g++ -c foo.cpp `wx-config --cppflags` という形でコンパイルしてみてもエラーが出ます。 コンパイルに失敗したサンプルソースはlistbox.cppとlisttest.cppです。 なにかコンパイル時に指定しなければいけないファイルなどがあるのでしょうか? どなたか教えてください
285 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 07:25:11.04 .net] wxをビルドしてインストした?
286 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 12:20:24.62 .net] >>284 エラーメッセージ貼ってよね!
287 名前:284 [2011/11/22(火) 16:11:40.78 .net] >>285 早速の返信ありがとうございます。 僕が変な勘違いをしてない限りwxはインストール済みだと思います。 >>1 のリンクにある wxWindowsで始めるC++ GUIプログラミング ttp://www.h3.dion.ne.jp/~k5_n/wxwin/ wxWidgets でクロスプラットフォーム GUIアプリを作ろう ttp://0xcc.net/pub/uu-2004-08/ に書かれている簡単なソースや、自分で作った幾つかのソースは動きますので。 >>286 返信ありがとうございます。 今すぐにエラーを貼るのは難しいので、数時間後にまた貼らせて頂きます。
288 名前:284 [2011/11/22(火) 21:45:18.75 .net] listtestでは、makefile.unxと手打ちのコンパイルでは同じエラーが出ました。 makefile.gccはmakeコマンド自体が失敗していたようなので、環境の違いが原因だと思います。 以下、listtestのmakefile.unxに対するエラーの一部(エラーが167行もあるため省略します。)です。 In file included from listtest.cpp:48:0: listtest.h:29:34: エラー: ISO C++ では型の無い ‘wxDECLARE_NO_COPY_CLASS’ の宣言を禁止しています [-fpermissive] listtest.h:96:39: エラー: ISO C++ では型の無い ‘wxDECLARE_NO_COPY_CLASS’ の宣言を禁止しています [-fpermissive] listtest.h:189:36: エラー: ISO C++ では型の無い ‘wxDECLARE_NO_COPY_CLASS’ の宣言を禁止しています [-fpermissive] listtest.cpp:73:19: エラー: ‘wxIntPtr’ was not declared in this scope listtest.cpp:73:35: エラー: ‘wxIntPtr’ was not declared in this scope listtest.cpp:73:51: エラー: ‘wxIntPtr’ was not declared in this scope listtest.cpp:73:78: エラー: expression list treated as compound expression in initializer [-fpermissive] listtest.cpp:74:1: エラー: expected ‘,’ or ‘;’ before ‘{’ token listtest.cpp: コンストラクタ ‘MyFrame::MyFrame(const wxChar*)’ 内: listtest.cpp:194:50: エラー: オーバーロードされた ‘wxIcon(const char* const [37])’ の呼び出しは曖昧です listtest.cpp:194:50: 備考: 候補: /usr/include/wx-2.8/wx/generic/icon.h:35:5: 備考: wxIcon::wxIcon(const wxString&, wxBitmapType, int, int) <near match> /usr/include/wx-2.8/wx/generic/icon.h:35:5: 備考: 第 1 引数を ‘const char* const [37]’ から ‘const wxString&’ へ変換する方法が不明です /usr/include/wx-2.8/wx/generic/icon.h:31:5: 備考: wxIcon::wxIcon(char**, int, int) <near match> /usr/include/wx-2.8/wx/generic/icon.h:31:5: 備考: 第 1 引数を ‘const char* const [37]’ から ‘char**’ へ変換する方法が不明です /usr/include/wx-2.8/wx/generic/icon.h:30:5: 備考: wxIcon::wxIcon(const char**, int, int) <near match>
289 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 22:33:02.64 .net] サンプルはどこから持ってきたやつなの? インストールしてるwxWidgetsとサンプルのバージョンは同じ? そもそもインストールはどうやってしたの? パッケージから入れたの? それともソースからビルドしたの? とまあ、気になる点はいろいろですが、 とりあえずパッケージからwxWidgetsの開発環境をインストールして、 同じバージョンのサンプルをコンパイルするのは、 最初に書かれてる方法で普通にできます。 ソースからビルドすれば付属してるサンプルも一緒にコンパイルしてくれるはずです。
290 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 00:13:32.17 .net] >>288 そのエラーメッセージは最初の方は含まれてる? wxのincludeが読み込めてないように思える。includeのエラーが最初にないかい?
291 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 03:07:47.66 .net] >>288 makefile.gccはMinGW用のMakefileじゃなかったっけ? make -f <対象のMakefile> でだいたい行けるはず
292 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 03:19:45.38 .net] そもそもLinuxでwxWidgetsやろうと思ったら @wxWidgetsのソースダウンロード A./configure <- 自分が欲しいオプション -> Bmake && make install Csamplesフォルダにあるソースコードを「make」コマンドでコンパイル で終わるはずなんだがなあ
293 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 07:52:23.63 .net] MinGWでwxWidgetsやろうとしたら面倒すぎて死んだ
294 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 15:36:30.36 .net] >>293 大丈夫、慣れたらできる(マゾ)
295 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 15:48:53.79 .net] >>284 しかもよく見たらコマンド間違えてるな × g++ -c foo.cpp `wx-config --cppflags` ○ g++ -c foo.cpp `wx-config --libs` `wx-config --cxxflags` -o foo ライブラリにリンクしてないから実行ファイルができてない可能性が
296 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 21:59:05.34 .net] >>293 wxDev-C++ wxdsgn.sourceforge.net/ みたいなのもあるから暇なときに試してみたら? VC++でやるよりは楽かも…、しれません。
297 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 00:18:52.26 .net] devC++は好きで昔から結構使ってるけど やっぱvc版インストしてvcの統合環境でやったほうがデバッグは楽だよ 使うまではdevCのパッケ導入が楽かも知れんけどw (最近はc#が色々楽すぎるんでwx自体全然使って無いけど・・・)
298 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 06:38:20.30 .net] VC++2008EnterpriseEditionでやったらめちゃくちゃ簡単だった
299 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 14:16:50.31 .net] hosyu
300 名前:284 [2011/11/28(月) 13:24:44.41 .net] レスの間が開いてすみません。みなさん色々とアドバイスありがとうございます。 >>289 よくわからないうちからいろいろなサイトをまわって色々試してたせいで若干記憶が曖昧で申し訳ないのですが、インストールは確かパッケージから入れたと思います。 サンプルのバージョンが2.9.2なのですが、コンパイルエラーを見る限り、2.8のライブラリを読んでいるみたいなので、安定版と最新版を両方入れてたみたいです。 改めて2.8.12を公式から落としてきて、そのサンプルでコンパイルしてみたらうまくいきましたので、ご指摘の通りサンプルとwxWidgetsのバージョンが違ったみたいです。ありがとうございました。 >>290 エラーメッセージは先頭の部分でした。ありがとうございました。 >>291 そうみたいですね。makefile.unxでうまくいきました。ありがとうございました。 >>295 今まで下記サイトを参考に 0xcc.net/pub/uu-2004-08/ % g++ -c hello.cpp `wx-config --cppflags` % g++ -o hello hello.o `wx-config --libs` というようにコンパイルしてたんですけど良くなかったでしょうか。
301 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 19:19:16.59 .net] >>300 > 今まで下記サイトを参考に > 0xcc.net/pub/uu-2004-08/ > > % g++ -c hello.cpp `wx-config --cppflags` > % g++ -o hello hello.o `wx-config --libs` > > というようにコンパイルしてたんですけど良くなかったでしょうか。 それならOK、コマンド1行でやるか2行でやるかの違い ただ wx-config --cppflagsとwx-config --libsが何を表しているのか includeとかlibってどういうものなのかググって意味を考えたほうがいいよ
302 名前:デフォルトの名無しさん [2011/12/05(月) 19:16:58.26 .net] LinuxでパッケージからwxWidgetsを入れた場合、setup.hはどこにあるのでしょうか? wxUSE_ACCESSIBILITYを有効にしようと思ってファイル検索したら大量にかかったので幾つか内容を変更してみても有効にならなかったので。
303 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 19:26:14.75 .net] パッケージはバイナリしか入ってない、つまりオプションを切り替えるのは不可能では? ソースからビルドした方がいいと思われ
304 名前:デフォルトの名無しさん [2011/12/05(月) 19:31:56.85 .net] >>303 ありがとう。ソースから入れなおしてみる。
305 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 19:45:40.51 .net] >>302 Linuxでは通常はソースのパッケージが別に用意されてるよ。 ディストリによるけど後ろに-develみたいなのがついたパッケージ を入れるとソースが入る。
306 名前:デフォルトの名無しさん [2011/12/05(月) 21:19:08.30 .net] >>305 そのレスを見る前に入れなおしてしまった…教えてもらったのに申し訳ないです。 オプションの切り替えは結局setup.hをいじれば良いのでしょうか?
307 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 21:34:18.68 .net] >>306 ./configure -h で付けられるオプションが見れるからやってみ、その中にwxUSE_ACCESSIBILITYも入ってるだろう
308 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 21:38:07.80 .net] $ ./configure -h | grep accessibility --enable-accessibility enable accessibility support あったあった。何に使うのかわからんけどどうぞ。
309 名前:デフォルトの名無しさん [2011/12/06(火) 11:00:02.97 .net] >>307 ,308 何から何まですみません。
310 名前:255 mailto:sage [2011/12/06(火) 11:57:28.16 .net] wxAccessibleってマニュアルに For details on the semantics of functions and types, please refer to the Microsoft Active Accessibility 1.2 documentation. とか、 Availability: only available for the wxMSW port. とかあるけどlinuxで意味あるのか?
311 名前:デフォルトの名無しさん [2011/12/06(火) 14:11:37.79 .net] >>310 下のサイト www14.ocn.ne.jp/~bkclass/doc_wxsamples.html を見て、サンプルのソース実行して勉強してたんですけど、accessっていうサンプルをコンパイルして実行をしようとすると、 "This sample has to be compiled with wxUSE_ACCESSIBILITY" というメッセージが出たので、 Windowsのみ本体のwxUSE_ACCESSIBILITYを1にする、とは書いてあったんですが、動いてないということはLinuxでも必要なのかと勝手に思い込んでこちらで聞いてみたんですが、やっぱりLinuxでは意味が無いんでしょうか…
312 名前:311 [2011/12/06(火) 14:27:45.09 .net] 度々すみません。 こちらでもマニュアルを確認したら、accessはWindowsのみと書いてありました。 今度からはマニュアルを良く読んで、わからなかったらこちらで聞きたいと思います。 自分自身でもあんまりにゆとりすぎて反省してます…。 みなさん大変ご手数をおかけしました。
313 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 15:35:36.35 .net] ほとんどのゆとりにくらべたらまだましなほうだわ
314 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 19:17:24.24 .net] ゆとりはHSPとかC#に行くだろうからこっちには来ないだろうな あとC++のGUIライブラリで有名で日本語ドキュメントがあるのはQtとかgtkだろうからさらにやる人は減る 最後にwxWidgetsは英語の知識とC++のオブジェクト指向がわかってないとできないから挫折する人も多いだろう とゆとりが言ってみる
315 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 20:24:22.32 .net] wxWidgets > Qt >>> こえられないかべ >>> GTK
316 名前:デフォルトの名無しさん [2011/12/11(日) 22:40:24.44 .net] wxWidgets > Qt なの?
317 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 13:37:15.62 .net] いわゆるビジュアルプログラミング言語は 生産性を改善するという触れ込みでありながら、事実上普及していない 何でかは知らんけど、同じ大きさのモニタに表示できる情報量で テキストに負けちゃうからっていう説を聞いたことがあるような
318 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 01:32:59.64 .net] |....,,__ |_::;; ~"'ヽ | //^''ヽ,,) | i⌒" | ∀`) < 誰もいない きのこるならいまのうち |⊂ | ノ _,,,......,,__ /_~ ,,...:::_::;; ~"'ヽ (,, '"ヾヽ i|i //^''ヽ,,) ^ :'⌒i i⌒" |( ´∀`) < きのこ のこーのこ げんきのこ ♪ |(ノ |つ | | ⊂ _ ノ ""U _,,,......,,__ /_~ ,,...:::_::;; ~"'ヽ (,, '"ヾヽ i|i //^''ヽ,,) ^ :'⌒i i⌒" (´∀` )| < エリンギ まいたけ ブナシメジ ♪ ⊂| (ノ | | | ヽ _ ⊃ .U"" | | ミ | ミ サッ! | ミ |
319 名前:デフォルトの名無しさん [2011/12/16(金) 06:38:53.32 .net] 下記のページ docs.wxwidgets.org/2.8/wx_wxcommandevent.html でwxCommandEventを勉強していたのですが、 GetIntとGetSelectionの違いがよく分かりません。 GetIntは wxCommandEvent::GetInt int GetInt() Returns the integer identifier corresponding to a listbox, choice or radiobox selection (only if the event was a selection, not a deselection), or a boolean value representing the value of a checkbox. と書いてあり、GetSelectionは Returns item index for a listbox or choice selection event (not valid for a deselection). と書いてあるのですが、GetIntの選択されたリストボックスに対応付けられたInt型と言うのはGetSelectionで返される値と何か違うものなのでしょうか?
320 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 13:32:13.51 .net] ver 2.8.12 include/wx/event.h 538: int GetSelection() const { return m_commandInt; } 554: int GetInt() const { return m_commandInt; }
321 名前:デフォルトの名無しさん [2011/12/22(木) 01:35:21.75 .net] リストボックスの中に、入れ子でリストボックスを作りたいと思いマニュアルを見て、wxListBoxのメンバ関数であるCreate関数を利用すれば2段階リストが構成できるということまではわかったのですが、Create関数の使い方がいまいちわかりません。 お手数ですが、どなたか使い方を教えていただきませんでしょうか。
322 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 06:52:48.65 .net] 了解
323 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 18:41:37.88 .net] wxRegExを使うため、wxregexライブラリをビルドし、成功しました。 しかし、いざプログラムで「wxRegEx」クラスを使おうとすると、「error C2065: 'wxRegEx' : 定義されていない識別子です」というエラーが出て、全く使えません。 思いつく方が居たらお願いします。 OS: Windows 7 wxWidgets: 2.9.1 コンパイラ: Visual C++ 2010 Express
324 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 18:52:26.42 .net] >>323 すいません、プリコンパイル済みヘッダを再作成してみたらうまくいきました。 スレ汚しすいません……
325 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 19:21:01.94 .net] MinGW勢はいないのか どいつもこいつもマイクロソフトの犬だな
326 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 01:55:47.35 .net] mingwの時点でOSはWindowsなのに >どいつもこいつもマイクロソフトの犬だな とか書くのかよw
327 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 02:50:47.72 .net] 確かにそうだな、ちょっとWindows捨ててくる
328 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 16:08:42.36 .net] wxWidgetsはWindows以外はおまけだろ。 Win32のラッパーとしての価値しかないと思っている。
329 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 16:11:37.68 .net] >>326 ナイス
330 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 16:12:34.17 .net] >>328 元々 wxWindows だからなぁ
331 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 17:54:24.54 .net] migw もなぁ…64bit対応がなぁ… wxruby とか使いたくても使えないよ しかしひとはビルドしろという なんどでもビルドしろという びるどしろー
332 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 00:36:14.77 .net] rubyるど
333 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 08:31:41.01 .net] MSWでwxListCtrlを使ってみたらDESELECTEDイベントが通知されないバグがあったので クリックやキボード操作が行われる度に選択状態を自分でチェックしてDESELECTEDイベントを送るようにしたら アイテムが1個の時に何故かマウスイベントが消し去られるバグまで出てきて もう八方塞がりです なにこれ馬鹿
334 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 12:00:56.99 .net] wxLC_VIRTUALの呪い
335 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 13:04:57.85 .net] そういうのってバグ報告できないのかな?
336 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 21:34:01.11 .net] 馬鹿が使うと馬鹿っぽく振舞います
337 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 11:01:32.77 .net] 明らかに開発陣はWindowsでテストしてないな 昔よりバグが悪化してるwww
338 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 12:10:40.98 .net] 最近wxTreeCtrl使ってるけどイベント通知できんわ 仕様がわかってないだけかも知れんが、バグだったら報告しなきゃだな
339 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 16:48:41.14 .net] できるよ
340 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 19:07:54.63 .net] 最新バージョンってバグ多いの? これから使うか悩んでるので教えてださい。
341 名前:338 mailto:sage [2011/12/27(火) 23:00:49.89 .net] 今日ちょっとwxTreeCtrlの全イベント試してみたが、特に問題なかった。環境はMSW(MinGW) >>340 英語が多くてドキュメントがAPIリファレンスしかないのがある意味バグw この前wxXMLをHTMLに使ったら一気にバグってワロタ(当たり前だけど) それさえ超えればいいものだと思います
342 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 23:36:17.73 .net] 自分の無能を環境のせいにすんなやぼけ
343 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 08:03:39.44 .net] バグとか明らかに仕様とは違う動きをしたりすることは多々あるけど もともとネイティブAPIをラップしただけだから誤魔化せるかもしれない 結局のところネイティブレベルの知識とwxWidgetsの中身まで調べないといけないので時間はかかる それでもネイティブコンパイル出来ないC#も嫌だし、MFCよりは遥かにましだけどw ネイティブレベルのことをしたくてGUIも楽に作りたいって要求に答えてくれるものがないもんな
344 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 15:34:13.86 .net] >>341 英語なのはキツイけどほかに良いライブラリも見当たらないし我慢するw >>343 バグがあるってのはちょっと残念だなぁ ネイティブレベルの知識もそんなに無いし不安だ・・・ けど、大きなバグじゃないのなら少し使ってみようと思います。
345 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 15:13:49.10 .net] 649 デフォルトの名無しさん [sage] 2011/12/29(木) 14:50:37.28 ID: Be: 学生プログラマ日本一決定戦(予選は社会人も参加可) ttp://codevs.jp/howto.html 現在予選開催中 応募締切 2012.1.6 12:00 おもしろいことやっているじゃん。誰か今から参加しろよ。
346 名前:本田 [2011/12/31(土) 22:24:08.47 .net] >>340 www.wxwidgets.org/ wxWidgets 2.9.3 Released 2011-12-14 While this is still officially a development release because some API details are still not frozen, we believe that 2.9.3 can be used in production environment, especially for the new projects for which (small) changes in behaviour since 2.8 are not a problem. Give it a try and let us know what do you think!
347 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 00:03:23.71 .net] 2.8もバグ多い
348 名前:デフォルトの名無しさん [2012/01/01(日) 11:14:18.13 .net] サイザーage
349 名前: 【大吉】 【683円】 mailto:sage [2012/01/01(日) 12:26:18.78 .net] 今年のおみくじは大吉を良く目にする
350 名前: 【大吉】 mailto:sage [2012/01/01(日) 13:38:44.46 .net] 今年はwx使うことあるかなー
351 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 16:51:15.64 .net] wxWebViewって縦書きに対応してる?
352 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 01:29:02.25 .net] wxTextCtrlの内容を一行ずつ読み込みたいです。 行数を調べるのに以下のやり方でいいのかと考えたのですがエラーがでます。 size_t abc = wxTextCtrl::TextCtrl1.GetNumberOfLines(); コンパイルすると以下のエラーがでます。 C:\Users\x\Desktop\practice\practiceMain.cpp||In member function 'void practiceFrame::OnButton2Click(wxCommandEvent&)':| C:\Users\x\Desktop\practice\practiceMain.cpp|225|error: 'TextCtrl1' is not a member of 'wxTextCtrl'| docs.wxwidgets.org/2.9.3/classwx_text_file.html ここを見るとメンバー関数と書いているようなのですが、何か考え違いをしていると思うのですが・・ 教えてください。
353 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 01:32:45.50 .net] >>352 wxTextCtrlではなくwxTextFileとあるけように思える。 IDE使ったほうがいいんじゃない?
354 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 02:10:29.44 .net] >>353 レスありがとうございます。 リンクを間違っていました。 以下を参考にしました。 wxwindowsjp.sourceforge.jp/docs/html/wx/wx381.htm#wxtextctrlgetnumberoflines IDEは、CODE::BLOCKS SVN:7550を使用しています。 試しに以下のことをやってみたのですがエラーがでました。 int abc = TextCtrl1.GetNumberOfLines(TextCtrl1); C:\Users\x\Desktop\practice\practiceMain.cpp|225|error: request for member 'GetNumberOfLines' in '((practiceFrame*)this)->practiceFrame::TextCtrl1', which is of non-class type 'wxTextCtrl*'| int abc = TextCtrl1.GetNumberOfLines(); C:\Users\x\Desktop\practice\practiceMain.cpp|225|error: request for member 'GetNumberOfLines' in '((practiceFrame*)this)->practiceFrame::TextCtrl1', which is of non-class type 'wxTextCtrl*'| wxTextCtrl1は、CODE::BLOCKSのGUIの部品を貼り付けています。
355 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 02:31:38.99 .net] >>354 全体のコード見てないからなんとも言えないが、TextCtrlはprivateとかで宣言しないと外から触れんぞ 例 Frame.h private : wxTextCtrl* m_text; Frame.cpp // メソッド内にテキストコントロール配置 m_text = new (.....); m_text->Hogehoge();
356 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 12:59:53.67 .net] >>355 レスありがとう。 int abc = TextCtrl1 -> GetNumberOfLines(); と書けば、エラーなくコンパイルできました。 本当にありがとうでした。
357 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 17:12:08.35 .net] >>356 それじゃあコンパイルできても内部処理書く段階で死にそうなのでアドバイス 第十三回-03 ドット演算子とアロー演算子 brain.cc.kogakuin.ac.jp/~kanamaru/lecture/prog1/13-03.html あとこことかも役に立つ ●C++編(言語解説) トップページ www.geocities.jp/ky_webid/cpp/language/index.html
358 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 21:49:09.86 .net] >>357 ありがとうございます。 ゆっくり読みます。
359 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 15:41:25.76 .net] テキストファイルを読み込む時に、utf-8のファイルの場合はreadして読み込むことができます。 テキストファイルがsjisの場合、次のようなエラーメッセージが表示されます。 [Faild to convert file "z:\test.txt" to unicode docs.wxwidgets.org/2.9.3/classwx_text_file.html docs.wxwidgets.org/2.9.3/classwx_conv_auto.html 上記を読むと、wxConvAuto機能を使用すると自動的にコンバートしてくれるように記載されているように見えます。 それで、openするときに、wxConvAuto()を付け加えてみたのですがエラーがでます。 wxConvAutoは付けても、付けなくても同じ現象です。 tfile.Open(file,wxConvAuto()); TextCtrl1->SetValue(str); に、utf-8のファイルを読み込むと内容が反映されます。 sjisだとオープン時に(本当にオープンするときのエラーかどうかはわかりませんが・・・)上記エラーがでます。 またTextCtrl1にはテキストファイルの内容が反映されません。 どこが悪いか教えてください。
360 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 15:42:52.53 .net] すいません、ソースコードは短めなので、こちらに書きます。 wxString file,str,s,number; wxTextFile tfile; wxFileDialog fdlog(this,_T("テキスト読み込みファイルの選択"), wxEmptyString, wxEmptyString, wxEmptyString, wxFD_OPEN); if(fdlog.ShowModal() != wxID_OK) return; { file.Clear(); file = fdlog.GetPath(); tfile.Open(file,wxConvAuto()); wxLogMessage(_T("オープンできました。")); str = tfile.GetFirstLine(); s = str; str += '\n'; while(!tfile.Eof()) { s= tfile.GetNextLine(); str += s; str += '\n'; } TextCtrl1->SetValue(str); wxLogMessage(_T("読み込み完了しました")); tfile.Close(); こんな感じです。
361 名前:デフォルトの名無しさん [2012/01/06(金) 16:25:17.96 .net] wxTextCtrlの中身を印刷したいのですが、どのようにすればいいのかいまいち分かりません。 どこかにwxTextCtrlのアドレスか何かを渡せばよいのでしょうか?教えてください
362 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 18:45:10.90 .net] >>360 過去スレにもSJIS読み込みについての事例が沢山あるが、wxWidgetsのライブラリによるSJIS→UTF-8の変換は全く期待できない 結論としては「UnicodeビルドしてUTF-8で読み込め」でFAだとおもう おすすめはlibiconvでUTF-8に変換してからwxWidgets内に読み込む iconvはwikipediaにもサンプルコードがあるから、使うのは難しくないはず ja.wikipedia.org/wiki/Iconv >>361 wxWidgets2.9.3のクラスリファレンス見れ、いっぱい使えそうなのあるぞ wxPrintData wxPrintDialog wxPrintDialogData wxPrinter wxPrinterDC wxPrintout wxPrintPreview
363 名前:361 [2012/01/06(金) 19:18:13.20 .net] 印刷の件ですが、wxPrinterDCにwxTextCtrlの値を渡せばWindowsでは印刷することができました。 しかし、LINUX(ubuntu11.10)環境下では、印刷プレビューを見る限りではうまくいっている様に思えるのですが、実際に印刷してみると(test wordsと言う文字を1部だけ印刷しようとしました。)、 1枚目のプリントに下記のようなエラーが印刷され、その後プリンタが無限に白紙を出しつづけるという不具合が起こりました。 %!PS-Adobe-3.0 %%Creator: Gnome Print Version 2.18.8 %%CreationDate: D:201201061 この不具合は、wxWidgets2.8.12の印刷用のサンプルプログラムprintingの内容を印刷しようとしても起きてしまったので、 参考にしたサンプルその物がどこかおかしいか、こちらの印刷まわりの設定がおかしいかのどちらかだと思うので、とりあえず上記のエラーを調べてみます。 >>362 レスありがとうございます。 一応読んではいたのですが、いまいちよく分からなかったのでここに頼ってしまいました。住みません。