>>269
最後の行
OpenDialog->Destroy();}
中括弧が全角になってるなあ
てかこれ全コードじゃないよね
【GUI】wxWidgets(旧wxWindows) その5【サイザー】
レス数が950を超えています。1000を超えると書き込みができなくなります。
271デフォルトの名無しさん
2011/11/08(火) 18:28:13.72272デフォルトの名無しさん
2011/11/08(火) 20:52:59.24 サンプルにある"dialogs"が参考になるんじゃないかな、
"File operations->Open files"というのがある。
"File operations->Open files"というのがある。
273デフォルトの名無しさん
2011/11/08(火) 21:01:42.80 >>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)
レスありです。全コードではありません。
改行などを削除しています。
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デフォルトの名無しさん
2011/11/08(火) 21:03:08.95 {
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();
//*)
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デフォルトの名無しさん
2011/11/08(火) 21:04:37.12 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"));
//(*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デフォルトの名無しさん
2011/11/08(火) 21:05:18.62 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();
}
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デフォルトの名無しさん
2011/11/08(火) 21:06:07.61 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();
}
{
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デフォルトの名無しさん
2011/11/08(火) 21:58:12.30 連続投稿規制 5回でなるんですねが・・・
こんな感じです。
配列・ポインタなど、マニュアルを目を通したのですが、完全に理解していません。
とりあえず色々さわりながら理解していこうかと考えています。
>>272
ありがとうです。
sampleフォルダの中のですね。
当初この中を探したのですが、wxSmithでのプロジェクトがなかったのであきらめていました。
dialogs.cppの790行目からそれらしい記載があったので参考にしてみます。
ありがとうでした。
こんな感じです。
配列・ポインタなど、マニュアルを目を通したのですが、完全に理解していません。
とりあえず色々さわりながら理解していこうかと考えています。
>>272
ありがとうです。
sampleフォルダの中のですね。
当初この中を探したのですが、wxSmithでのプロジェクトがなかったのであきらめていました。
dialogs.cppの790行目からそれらしい記載があったので参考にしてみます。
ありがとうでした。
279デフォルトの名無しさん
2011/11/08(火) 22:45:02.83 迷惑な香具師だな
280デフォルトの名無しさん
2011/11/09(水) 07:33:07.56 >>278
長いときはcodepadとかideone使おうぜ・・
長いときはcodepadとかideone使おうぜ・・
281デフォルトの名無しさん
2011/11/09(水) 08:19:10.74 会社から帰ったら考えてみるわ>>278
282デフォルトの名無しさん
2011/11/09(水) 14:01:41.90 >>280
そのような場所があるとは知りませんでした。
次からそうします。
スレ汚しすみませんでした。
あと、/sample/dialogs/dialogs.cppの該当部分を、コピペしただけで複数ファイルの選択と、表示ができました。
意味を調べながら理解していきます。
ありがとうでした。
そのような場所があるとは知りませんでした。
次からそうします。
スレ汚しすみませんでした。
あと、/sample/dialogs/dialogs.cppの該当部分を、コピペしただけで複数ファイルの選択と、表示ができました。
意味を調べながら理解していきます。
ありがとうでした。
283デフォルトの名無しさん
2011/11/09(水) 17:58:05.53 中学生か
まあがんがれや
まあがんがれや
284デフォルトの名無しさん
2011/11/22(火) 02:03:10.37 ubuntuでwxWidgetsの勉強中なのですが、samplesフォルダ内のサンプルソース(c++)をいくつか実行してみようと思い、付属のmakefile.cpp及びmakefile.unxをmakeコマンドで実行しようとするとコンパイルに失敗します。
端末より
g++ -c foo.cpp `wx-config --cppflags`
という形でコンパイルしてみてもエラーが出ます。
コンパイルに失敗したサンプルソースはlistbox.cppとlisttest.cppです。
なにかコンパイル時に指定しなければいけないファイルなどがあるのでしょうか?
どなたか教えてください
端末より
g++ -c foo.cpp `wx-config --cppflags`
という形でコンパイルしてみてもエラーが出ます。
コンパイルに失敗したサンプルソースはlistbox.cppとlisttest.cppです。
なにかコンパイル時に指定しなければいけないファイルなどがあるのでしょうか?
どなたか教えてください
285デフォルトの名無しさん
2011/11/22(火) 07:25:11.04 wxをビルドしてインストした?
286デフォルトの名無しさん
2011/11/22(火) 12:20:24.62 >>284
エラーメッセージ貼ってよね!
エラーメッセージ貼ってよね!
287284
2011/11/22(火) 16:11:40.78288284
2011/11/22(火) 21:45:18.75 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>
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デフォルトの名無しさん
2011/11/22(火) 22:33:02.64 サンプルはどこから持ってきたやつなの?
インストールしてるwxWidgetsとサンプルのバージョンは同じ?
そもそもインストールはどうやってしたの?
パッケージから入れたの? それともソースからビルドしたの?
とまあ、気になる点はいろいろですが、
とりあえずパッケージからwxWidgetsの開発環境をインストールして、
同じバージョンのサンプルをコンパイルするのは、
最初に書かれてる方法で普通にできます。
ソースからビルドすれば付属してるサンプルも一緒にコンパイルしてくれるはずです。
インストールしてるwxWidgetsとサンプルのバージョンは同じ?
そもそもインストールはどうやってしたの?
パッケージから入れたの? それともソースからビルドしたの?
とまあ、気になる点はいろいろですが、
とりあえずパッケージからwxWidgetsの開発環境をインストールして、
同じバージョンのサンプルをコンパイルするのは、
最初に書かれてる方法で普通にできます。
ソースからビルドすれば付属してるサンプルも一緒にコンパイルしてくれるはずです。
290デフォルトの名無しさん
2011/11/23(水) 00:13:32.17291デフォルトの名無しさん
2011/11/23(水) 03:07:47.66292デフォルトの名無しさん
2011/11/23(水) 03:19:45.38 そもそもLinuxでwxWidgetsやろうと思ったら
@wxWidgetsのソースダウンロード
A./configure <- 自分が欲しいオプション ->
Bmake && make install
Csamplesフォルダにあるソースコードを「make」コマンドでコンパイル
で終わるはずなんだがなあ
@wxWidgetsのソースダウンロード
A./configure <- 自分が欲しいオプション ->
Bmake && make install
Csamplesフォルダにあるソースコードを「make」コマンドでコンパイル
で終わるはずなんだがなあ
293デフォルトの名無しさん
2011/11/23(水) 07:52:23.63 MinGWでwxWidgetsやろうとしたら面倒すぎて死んだ
294デフォルトの名無しさん
2011/11/23(水) 15:36:30.36 >>293
大丈夫、慣れたらできる(マゾ)
大丈夫、慣れたらできる(マゾ)
295デフォルトの名無しさん
2011/11/23(水) 15:48:53.79 >>284
しかもよく見たらコマンド間違えてるな
× g++ -c foo.cpp `wx-config --cppflags`
○ g++ -c foo.cpp `wx-config --libs` `wx-config --cxxflags` -o foo
ライブラリにリンクしてないから実行ファイルができてない可能性が
しかもよく見たらコマンド間違えてるな
× g++ -c foo.cpp `wx-config --cppflags`
○ g++ -c foo.cpp `wx-config --libs` `wx-config --cxxflags` -o foo
ライブラリにリンクしてないから実行ファイルができてない可能性が
296デフォルトの名無しさん
2011/11/23(水) 21:59:05.34297デフォルトの名無しさん
2011/11/24(木) 00:18:52.26 devC++は好きで昔から結構使ってるけど
やっぱvc版インストしてvcの統合環境でやったほうがデバッグは楽だよ
使うまではdevCのパッケ導入が楽かも知れんけどw
(最近はc#が色々楽すぎるんでwx自体全然使って無いけど・・・)
やっぱvc版インストしてvcの統合環境でやったほうがデバッグは楽だよ
使うまではdevCのパッケ導入が楽かも知れんけどw
(最近はc#が色々楽すぎるんでwx自体全然使って無いけど・・・)
298デフォルトの名無しさん
2011/11/24(木) 06:38:20.30 VC++2008EnterpriseEditionでやったらめちゃくちゃ簡単だった
299デフォルトの名無しさん
2011/11/24(木) 14:16:50.31 hosyu
300284
2011/11/28(月) 13:24:44.41 レスの間が開いてすみません。みなさん色々とアドバイスありがとうございます。
>>289
よくわからないうちからいろいろなサイトをまわって色々試してたせいで若干記憶が曖昧で申し訳ないのですが、インストールは確かパッケージから入れたと思います。
サンプルのバージョンが2.9.2なのですが、コンパイルエラーを見る限り、2.8のライブラリを読んでいるみたいなので、安定版と最新版を両方入れてたみたいです。
改めて2.8.12を公式から落としてきて、そのサンプルでコンパイルしてみたらうまくいきましたので、ご指摘の通りサンプルとwxWidgetsのバージョンが違ったみたいです。ありがとうございました。
>>290
エラーメッセージは先頭の部分でした。ありがとうございました。
>>291
そうみたいですね。makefile.unxでうまくいきました。ありがとうございました。
>>295
今まで下記サイトを参考に
http://0xcc.net/pub/uu-2004-08/
% g++ -c hello.cpp `wx-config --cppflags`
% g++ -o hello hello.o `wx-config --libs`
というようにコンパイルしてたんですけど良くなかったでしょうか。
>>289
よくわからないうちからいろいろなサイトをまわって色々試してたせいで若干記憶が曖昧で申し訳ないのですが、インストールは確かパッケージから入れたと思います。
サンプルのバージョンが2.9.2なのですが、コンパイルエラーを見る限り、2.8のライブラリを読んでいるみたいなので、安定版と最新版を両方入れてたみたいです。
改めて2.8.12を公式から落としてきて、そのサンプルでコンパイルしてみたらうまくいきましたので、ご指摘の通りサンプルとwxWidgetsのバージョンが違ったみたいです。ありがとうございました。
>>290
エラーメッセージは先頭の部分でした。ありがとうございました。
>>291
そうみたいですね。makefile.unxでうまくいきました。ありがとうございました。
>>295
今まで下記サイトを参考に
http://0xcc.net/pub/uu-2004-08/
% g++ -c hello.cpp `wx-config --cppflags`
% g++ -o hello hello.o `wx-config --libs`
というようにコンパイルしてたんですけど良くなかったでしょうか。
301デフォルトの名無しさん
2011/11/28(月) 19:19:16.59 >>300
> 今まで下記サイトを参考に
> http://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ってどういうものなのかググって意味を考えたほうがいいよ
> 今まで下記サイトを参考に
> http://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 LinuxでパッケージからwxWidgetsを入れた場合、setup.hはどこにあるのでしょうか?
wxUSE_ACCESSIBILITYを有効にしようと思ってファイル検索したら大量にかかったので幾つか内容を変更してみても有効にならなかったので。
wxUSE_ACCESSIBILITYを有効にしようと思ってファイル検索したら大量にかかったので幾つか内容を変更してみても有効にならなかったので。
303デフォルトの名無しさん
2011/12/05(月) 19:26:14.75 パッケージはバイナリしか入ってない、つまりオプションを切り替えるのは不可能では?
ソースからビルドした方がいいと思われ
ソースからビルドした方がいいと思われ
304デフォルトの名無しさん
2011/12/05(月) 19:31:56.85305デフォルトの名無しさん
2011/12/05(月) 19:45:40.51306デフォルトの名無しさん
2011/12/05(月) 21:19:08.30307デフォルトの名無しさん
2011/12/05(月) 21:34:18.68 >>306
./configure -h で付けられるオプションが見れるからやってみ、その中にwxUSE_ACCESSIBILITYも入ってるだろう
./configure -h で付けられるオプションが見れるからやってみ、その中にwxUSE_ACCESSIBILITYも入ってるだろう
308デフォルトの名無しさん
2011/12/05(月) 21:38:07.80 $ ./configure -h | grep accessibility
--enable-accessibility enable accessibility support
あったあった。何に使うのかわからんけどどうぞ。
--enable-accessibility enable accessibility support
あったあった。何に使うのかわからんけどどうぞ。
309デフォルトの名無しさん
2011/12/06(火) 11:00:02.97 >>307,308
何から何まですみません。
何から何まですみません。
310255
2011/12/06(火) 11:57:28.16 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で意味あるのか?
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 >>310
下のサイト
http://www14.ocn.ne.jp/~bkclass/doc_wxsamples.html
を見て、サンプルのソース実行して勉強してたんですけど、accessっていうサンプルをコンパイルして実行をしようとすると、
"This sample has to be compiled with wxUSE_ACCESSIBILITY"
というメッセージが出たので、
Windowsのみ本体のwxUSE_ACCESSIBILITYを1にする、とは書いてあったんですが、動いてないということはLinuxでも必要なのかと勝手に思い込んでこちらで聞いてみたんですが、やっぱりLinuxでは意味が無いんでしょうか…
下のサイト
http://www14.ocn.ne.jp/~bkclass/doc_wxsamples.html
を見て、サンプルのソース実行して勉強してたんですけど、accessっていうサンプルをコンパイルして実行をしようとすると、
"This sample has to be compiled with wxUSE_ACCESSIBILITY"
というメッセージが出たので、
Windowsのみ本体のwxUSE_ACCESSIBILITYを1にする、とは書いてあったんですが、動いてないということはLinuxでも必要なのかと勝手に思い込んでこちらで聞いてみたんですが、やっぱりLinuxでは意味が無いんでしょうか…
312311
2011/12/06(火) 14:27:45.09 度々すみません。
こちらでもマニュアルを確認したら、accessはWindowsのみと書いてありました。
今度からはマニュアルを良く読んで、わからなかったらこちらで聞きたいと思います。
自分自身でもあんまりにゆとりすぎて反省してます…。
みなさん大変ご手数をおかけしました。
こちらでもマニュアルを確認したら、accessはWindowsのみと書いてありました。
今度からはマニュアルを良く読んで、わからなかったらこちらで聞きたいと思います。
自分自身でもあんまりにゆとりすぎて反省してます…。
みなさん大変ご手数をおかけしました。
313デフォルトの名無しさん
2011/12/07(水) 15:35:36.35 ほとんどのゆとりにくらべたらまだましなほうだわ
314デフォルトの名無しさん
2011/12/07(水) 19:17:24.24 ゆとりはHSPとかC#に行くだろうからこっちには来ないだろうな
あとC++のGUIライブラリで有名で日本語ドキュメントがあるのはQtとかgtkだろうからさらにやる人は減る
最後にwxWidgetsは英語の知識とC++のオブジェクト指向がわかってないとできないから挫折する人も多いだろう
とゆとりが言ってみる
あとC++のGUIライブラリで有名で日本語ドキュメントがあるのはQtとかgtkだろうからさらにやる人は減る
最後にwxWidgetsは英語の知識とC++のオブジェクト指向がわかってないとできないから挫折する人も多いだろう
とゆとりが言ってみる
315デフォルトの名無しさん
2011/12/07(水) 20:24:22.32 wxWidgets > Qt >>> こえられないかべ >>> GTK
316デフォルトの名無しさん
2011/12/11(日) 22:40:24.44 wxWidgets > Qt なの?
317デフォルトの名無しさん
2011/12/15(木) 13:37:15.62 いわゆるビジュアルプログラミング言語は
生産性を改善するという触れ込みでありながら、事実上普及していない
何でかは知らんけど、同じ大きさのモニタに表示できる情報量で
テキストに負けちゃうからっていう説を聞いたことがあるような
生産性を改善するという触れ込みでありながら、事実上普及していない
何でかは知らんけど、同じ大きさのモニタに表示できる情報量で
テキストに負けちゃうからっていう説を聞いたことがあるような
318デフォルトの名無しさん
2011/12/16(金) 01:32:59.64 |....,,__
|_::;; ~"'ヽ
| //^''ヽ,,)
| i⌒"
| ∀`) < 誰もいない きのこるならいまのうち
|⊂
| ノ
_,,,......,,__
/_~ ,,...:::_::;; ~"'ヽ
(,, '"ヾヽ i|i //^''ヽ,,)
^ :'⌒i i⌒"
|( ´∀`) < きのこ のこーのこ げんきのこ ♪
|(ノ |つ
| |
⊂ _ ノ
""U
_,,,......,,__
/_~ ,,...:::_::;; ~"'ヽ
(,, '"ヾヽ i|i //^''ヽ,,)
^ :'⌒i i⌒"
(´∀` )| < エリンギ まいたけ ブナシメジ ♪
⊂| (ノ |
| |
ヽ _ ⊃
.U""
|
| ミ
| ミ サッ!
| ミ
|
|_::;; ~"'ヽ
| //^''ヽ,,)
| i⌒"
| ∀`) < 誰もいない きのこるならいまのうち
|⊂
| ノ
_,,,......,,__
/_~ ,,...:::_::;; ~"'ヽ
(,, '"ヾヽ i|i //^''ヽ,,)
^ :'⌒i i⌒"
|( ´∀`) < きのこ のこーのこ げんきのこ ♪
|(ノ |つ
| |
⊂ _ ノ
""U
_,,,......,,__
/_~ ,,...:::_::;; ~"'ヽ
(,, '"ヾヽ i|i //^''ヽ,,)
^ :'⌒i i⌒"
(´∀` )| < エリンギ まいたけ ブナシメジ ♪
⊂| (ノ |
| |
ヽ _ ⊃
.U""
|
| ミ
| ミ サッ!
| ミ
|
319デフォルトの名無しさん
2011/12/16(金) 06:38:53.32 下記のページ
http://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で返される値と何か違うものなのでしょうか?
http://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デフォルトの名無しさん
2011/12/16(金) 13:32:13.51 ver 2.8.12
include/wx/event.h
538: int GetSelection() const { return m_commandInt; }
554: int GetInt() const { return m_commandInt; }
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 リストボックスの中に、入れ子でリストボックスを作りたいと思いマニュアルを見て、wxListBoxのメンバ関数であるCreate関数を利用すれば2段階リストが構成できるということまではわかったのですが、Create関数の使い方がいまいちわかりません。
お手数ですが、どなたか使い方を教えていただきませんでしょうか。
お手数ですが、どなたか使い方を教えていただきませんでしょうか。
322デフォルトの名無しさん
2011/12/22(木) 06:52:48.65 了解
323デフォルトの名無しさん
2011/12/22(木) 18:41:37.88 wxRegExを使うため、wxregexライブラリをビルドし、成功しました。
しかし、いざプログラムで「wxRegEx」クラスを使おうとすると、「error C2065: 'wxRegEx' : 定義されていない識別子です」というエラーが出て、全く使えません。
思いつく方が居たらお願いします。
OS: Windows 7
wxWidgets: 2.9.1
コンパイラ: Visual C++ 2010 Express
しかし、いざプログラムで「wxRegEx」クラスを使おうとすると、「error C2065: 'wxRegEx' : 定義されていない識別子です」というエラーが出て、全く使えません。
思いつく方が居たらお願いします。
OS: Windows 7
wxWidgets: 2.9.1
コンパイラ: Visual C++ 2010 Express
324デフォルトの名無しさん
2011/12/22(木) 18:52:26.42325デフォルトの名無しさん
2011/12/22(木) 19:21:01.94 MinGW勢はいないのか
どいつもこいつもマイクロソフトの犬だな
どいつもこいつもマイクロソフトの犬だな
326デフォルトの名無しさん
2011/12/23(金) 01:55:47.35 mingwの時点でOSはWindowsなのに
>どいつもこいつもマイクロソフトの犬だな
とか書くのかよw
>どいつもこいつもマイクロソフトの犬だな
とか書くのかよw
327デフォルトの名無しさん
2011/12/23(金) 02:50:47.72 確かにそうだな、ちょっとWindows捨ててくる
328デフォルトの名無しさん
2011/12/23(金) 16:08:42.36 wxWidgetsはWindows以外はおまけだろ。
Win32のラッパーとしての価値しかないと思っている。
Win32のラッパーとしての価値しかないと思っている。
329デフォルトの名無しさん
2011/12/23(金) 16:11:37.68 >>326
ナイス
ナイス
330デフォルトの名無しさん
2011/12/23(金) 16:12:34.17 >>328
元々 wxWindows だからなぁ
元々 wxWindows だからなぁ
331デフォルトの名無しさん
2011/12/24(土) 17:54:24.54 migw もなぁ…64bit対応がなぁ…
wxruby とか使いたくても使えないよ
しかしひとはビルドしろという
なんどでもビルドしろという
びるどしろー
wxruby とか使いたくても使えないよ
しかしひとはビルドしろという
なんどでもビルドしろという
びるどしろー
332デフォルトの名無しさん
2011/12/25(日) 00:36:14.77 rubyるど
333デフォルトの名無しさん
2011/12/25(日) 08:31:41.01 MSWでwxListCtrlを使ってみたらDESELECTEDイベントが通知されないバグがあったので
クリックやキボード操作が行われる度に選択状態を自分でチェックしてDESELECTEDイベントを送るようにしたら
アイテムが1個の時に何故かマウスイベントが消し去られるバグまで出てきて
もう八方塞がりです
なにこれ馬鹿
クリックやキボード操作が行われる度に選択状態を自分でチェックしてDESELECTEDイベントを送るようにしたら
アイテムが1個の時に何故かマウスイベントが消し去られるバグまで出てきて
もう八方塞がりです
なにこれ馬鹿
334デフォルトの名無しさん
2011/12/25(日) 12:00:56.99 wxLC_VIRTUALの呪い
335デフォルトの名無しさん
2011/12/25(日) 13:04:57.85 そういうのってバグ報告できないのかな?
336デフォルトの名無しさん
2011/12/25(日) 21:34:01.11 馬鹿が使うと馬鹿っぽく振舞います
337デフォルトの名無しさん
2011/12/27(火) 11:01:32.77 明らかに開発陣はWindowsでテストしてないな
昔よりバグが悪化してるwww
昔よりバグが悪化してるwww
338デフォルトの名無しさん
2011/12/27(火) 12:10:40.98 最近wxTreeCtrl使ってるけどイベント通知できんわ
仕様がわかってないだけかも知れんが、バグだったら報告しなきゃだな
仕様がわかってないだけかも知れんが、バグだったら報告しなきゃだな
339デフォルトの名無しさん
2011/12/27(火) 16:48:41.14 できるよ
340デフォルトの名無しさん
2011/12/27(火) 19:07:54.63 最新バージョンってバグ多いの?
これから使うか悩んでるので教えてださい。
これから使うか悩んでるので教えてださい。
341338
2011/12/27(火) 23:00:49.89 今日ちょっとwxTreeCtrlの全イベント試してみたが、特に問題なかった。環境はMSW(MinGW)
>>340
英語が多くてドキュメントがAPIリファレンスしかないのがある意味バグw
この前wxXMLをHTMLに使ったら一気にバグってワロタ(当たり前だけど)
それさえ超えればいいものだと思います
>>340
英語が多くてドキュメントがAPIリファレンスしかないのがある意味バグw
この前wxXMLをHTMLに使ったら一気にバグってワロタ(当たり前だけど)
それさえ超えればいいものだと思います
342デフォルトの名無しさん
2011/12/27(火) 23:36:17.73 自分の無能を環境のせいにすんなやぼけ
343デフォルトの名無しさん
2011/12/28(水) 08:03:39.44 バグとか明らかに仕様とは違う動きをしたりすることは多々あるけど
もともとネイティブAPIをラップしただけだから誤魔化せるかもしれない
結局のところネイティブレベルの知識とwxWidgetsの中身まで調べないといけないので時間はかかる
それでもネイティブコンパイル出来ないC#も嫌だし、MFCよりは遥かにましだけどw
ネイティブレベルのことをしたくてGUIも楽に作りたいって要求に答えてくれるものがないもんな
もともとネイティブAPIをラップしただけだから誤魔化せるかもしれない
結局のところネイティブレベルの知識とwxWidgetsの中身まで調べないといけないので時間はかかる
それでもネイティブコンパイル出来ないC#も嫌だし、MFCよりは遥かにましだけどw
ネイティブレベルのことをしたくてGUIも楽に作りたいって要求に答えてくれるものがないもんな
344デフォルトの名無しさん
2011/12/28(水) 15:34:13.86345デフォルトの名無しさん
2011/12/29(木) 15:13:49.10 649 デフォルトの名無しさん [sage] 2011/12/29(木) 14:50:37.28 ID: Be:
学生プログラマ日本一決定戦(予選は社会人も参加可)
ttp://codevs.jp/howto.html
現在予選開催中
応募締切 2012.1.6 12:00
おもしろいことやっているじゃん。誰か今から参加しろよ。
学生プログラマ日本一決定戦(予選は社会人も参加可)
ttp://codevs.jp/howto.html
現在予選開催中
応募締切 2012.1.6 12:00
おもしろいことやっているじゃん。誰か今から参加しろよ。
346本田
2011/12/31(土) 22:24:08.47 >>340
http://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!
http://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デフォルトの名無しさん
2012/01/01(日) 00:03:23.71 2.8もバグ多い
348デフォルトの名無しさん
2012/01/01(日) 11:14:18.13 サイザーage
351デフォルトの名無しさん
2012/01/04(水) 16:51:15.64 wxWebViewって縦書きに対応してる?
352デフォルトの名無しさん
2012/01/05(木) 01:29:02.25 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'|
http://docs.wxwidgets.org/2.9.3/classwx_text_file.html
ここを見るとメンバー関数と書いているようなのですが、何か考え違いをしていると思うのですが・・
教えてください。
行数を調べるのに以下のやり方でいいのかと考えたのですがエラーがでます。
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'|
http://docs.wxwidgets.org/2.9.3/classwx_text_file.html
ここを見るとメンバー関数と書いているようなのですが、何か考え違いをしていると思うのですが・・
教えてください。
353デフォルトの名無しさん
2012/01/05(木) 01:32:45.50354デフォルトの名無しさん
2012/01/05(木) 02:10:29.44 >>353
レスありがとうございます。
リンクを間違っていました。 以下を参考にしました。
http://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の部品を貼り付けています。
レスありがとうございます。
リンクを間違っていました。 以下を参考にしました。
http://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デフォルトの名無しさん
2012/01/05(木) 02:31:38.99 >>354
全体のコード見てないからなんとも言えないが、TextCtrlはprivateとかで宣言しないと外から触れんぞ
例
Frame.h
private :
wxTextCtrl* m_text;
Frame.cpp
// メソッド内にテキストコントロール配置
m_text = new (.....);
m_text->Hogehoge();
全体のコード見てないからなんとも言えないが、TextCtrlはprivateとかで宣言しないと外から触れんぞ
例
Frame.h
private :
wxTextCtrl* m_text;
Frame.cpp
// メソッド内にテキストコントロール配置
m_text = new (.....);
m_text->Hogehoge();
356デフォルトの名無しさん
2012/01/05(木) 12:59:53.67357デフォルトの名無しさん
2012/01/05(木) 17:12:08.35 >>356
それじゃあコンパイルできても内部処理書く段階で死にそうなのでアドバイス
第十三回-03 ドット演算子とアロー演算子
http://brain.cc.kogakuin.ac.jp/~kanamaru/lecture/prog1/13-03.html
あとこことかも役に立つ
●C++編(言語解説) トップページ
http://www.geocities.jp/ky_webid/cpp/language/index.html
それじゃあコンパイルできても内部処理書く段階で死にそうなのでアドバイス
第十三回-03 ドット演算子とアロー演算子
http://brain.cc.kogakuin.ac.jp/~kanamaru/lecture/prog1/13-03.html
あとこことかも役に立つ
●C++編(言語解説) トップページ
http://www.geocities.jp/ky_webid/cpp/language/index.html
358デフォルトの名無しさん
2012/01/05(木) 21:49:09.86359デフォルトの名無しさん
2012/01/06(金) 15:41:25.76 テキストファイルを読み込む時に、utf-8のファイルの場合はreadして読み込むことができます。
テキストファイルがsjisの場合、次のようなエラーメッセージが表示されます。
[Faild to convert file "z:\test.txt" to unicode
http://docs.wxwidgets.org/2.9.3/classwx_text_file.html
http://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にはテキストファイルの内容が反映されません。
どこが悪いか教えてください。
テキストファイルがsjisの場合、次のようなエラーメッセージが表示されます。
[Faild to convert file "z:\test.txt" to unicode
http://docs.wxwidgets.org/2.9.3/classwx_text_file.html
http://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デフォルトの名無しさん
2012/01/06(金) 15:42:52.53 すいません、ソースコードは短めなので、こちらに書きます。
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();
こんな感じです。
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 wxTextCtrlの中身を印刷したいのですが、どのようにすればいいのかいまいち分かりません。
どこかにwxTextCtrlのアドレスか何かを渡せばよいのでしょうか?教えてください
どこかにwxTextCtrlのアドレスか何かを渡せばよいのでしょうか?教えてください
362デフォルトの名無しさん
2012/01/06(金) 18:45:10.90 >>360
過去スレにもSJIS読み込みについての事例が沢山あるが、wxWidgetsのライブラリによるSJIS→UTF-8の変換は全く期待できない
結論としては「UnicodeビルドしてUTF-8で読み込め」でFAだとおもう
おすすめはlibiconvでUTF-8に変換してからwxWidgets内に読み込む
iconvはwikipediaにもサンプルコードがあるから、使うのは難しくないはず http://ja.wikipedia.org/wiki/Iconv
>>361
wxWidgets2.9.3のクラスリファレンス見れ、いっぱい使えそうなのあるぞ
wxPrintData
wxPrintDialog
wxPrintDialogData
wxPrinter
wxPrinterDC
wxPrintout
wxPrintPreview
過去スレにもSJIS読み込みについての事例が沢山あるが、wxWidgetsのライブラリによるSJIS→UTF-8の変換は全く期待できない
結論としては「UnicodeビルドしてUTF-8で読み込め」でFAだとおもう
おすすめはlibiconvでUTF-8に変換してからwxWidgets内に読み込む
iconvはwikipediaにもサンプルコードがあるから、使うのは難しくないはず http://ja.wikipedia.org/wiki/Iconv
>>361
wxWidgets2.9.3のクラスリファレンス見れ、いっぱい使えそうなのあるぞ
wxPrintData
wxPrintDialog
wxPrintDialogData
wxPrinter
wxPrinterDC
wxPrintout
wxPrintPreview
363361
2012/01/06(金) 19:18:13.20 印刷の件ですが、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
レスありがとうございます。
一応読んではいたのですが、いまいちよく分からなかったのでここに頼ってしまいました。住みません。
しかし、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
レスありがとうございます。
一応読んではいたのですが、いまいちよく分からなかったのでここに頼ってしまいました。住みません。
364デフォルトの名無しさん
2012/01/06(金) 19:42:20.71 さっきShift_JISで読み込むのは無理だと言ったがそれは嘘だ(コマンドー風に)
下みたいなテストプログラムで普通にShift_JIS読み込めてワロタ
2.9.3パない
// テキストファイルの読み込み
wxTextFile file(wxT("./Shift_JIS.txt"));
file.Open(wxConvAuto(wxFONTENCODING_CP932));
wxString test = file.GetFirstLine();
frame->SetStatusText(test);
frame->Show(true);
下みたいなテストプログラムで普通にShift_JIS読み込めてワロタ
2.9.3パない
// テキストファイルの読み込み
wxTextFile file(wxT("./Shift_JIS.txt"));
file.Open(wxConvAuto(wxFONTENCODING_CP932));
wxString test = file.GetFirstLine();
frame->SetStatusText(test);
frame->Show(true);
365デフォルトの名無しさん
2012/01/07(土) 21:53:08.88 >>362>>364
レスありがとうございます。
試しに以下のように入力してコンパイルしてみました。
wxTextFile file(wxT("c:\\Shift_JIS.txt"));
file.Open(wxConvAuto(wxFONTENCODING_CP932));
wxString test = file.GetFirstLine();
コンパイルすると、下記エラーがでます。
C:\Users\x\Desktop\practice\practiceMain.cpp|154|エラー: no matching function for call to 'wxConvAuto::wxConvAuto(wxFontEncoding)'|
wxwigetsは,2.8.12を使用しています。
コンパイルが通らない原因が、わからにので2.9.3のソースをダウンロードしてコンパイルを試しています。
cドライブ直下に、MinGWとmsysというのを導入後、msys.batで端末?を起動しました。
そこで、./configure --disable-shared --enable-monolithic --enable-unicodeと行い、make make installまでは行いました。
make installした成果物?をwindowsの実行環境にどうもっていくか調べているところです。
何が悪いか手探りなので的外れなことしてるような気もするんですが、これしかできないのでとりあえず2.9.3の環境を作ってみます。
レスありがとうございます。
試しに以下のように入力してコンパイルしてみました。
wxTextFile file(wxT("c:\\Shift_JIS.txt"));
file.Open(wxConvAuto(wxFONTENCODING_CP932));
wxString test = file.GetFirstLine();
コンパイルすると、下記エラーがでます。
C:\Users\x\Desktop\practice\practiceMain.cpp|154|エラー: no matching function for call to 'wxConvAuto::wxConvAuto(wxFontEncoding)'|
wxwigetsは,2.8.12を使用しています。
コンパイルが通らない原因が、わからにので2.9.3のソースをダウンロードしてコンパイルを試しています。
cドライブ直下に、MinGWとmsysというのを導入後、msys.batで端末?を起動しました。
そこで、./configure --disable-shared --enable-monolithic --enable-unicodeと行い、make make installまでは行いました。
make installした成果物?をwindowsの実行環境にどうもっていくか調べているところです。
何が悪いか手探りなので的外れなことしてるような気もするんですが、これしかできないのでとりあえず2.9.3の環境を作ってみます。
366デフォルトの名無しさん
2012/01/07(土) 22:42:42.75 >>365
やりかたは間違ってないとおもうので頑張って
今ちょっとクラスリファレンス見てたけど
wxTextFileの部分で::Openで取れる引数が2.8から2.9で変わってるみたい
wxWidgets 2.8
bool Open(wxMBConv& conv = wxConvUTF8) const
bool Open(const wxString& strFile, wxMBConv& conv = wxConvUTF8) const
wxWidgets 2.9
bool Open (const wxMBConv &conv=wxConvAuto()) const
bool Open (const wxString &strFile, const wxMBConv &conv=wxConvAuto()) const
OpenメソッドにwxConvAuto()をとれるのが新機能みたい。2.8にはないんだな、これが。
やりかたは間違ってないとおもうので頑張って
今ちょっとクラスリファレンス見てたけど
wxTextFileの部分で::Openで取れる引数が2.8から2.9で変わってるみたい
wxWidgets 2.8
bool Open(wxMBConv& conv = wxConvUTF8) const
bool Open(const wxString& strFile, wxMBConv& conv = wxConvUTF8) const
wxWidgets 2.9
bool Open (const wxMBConv &conv=wxConvAuto()) const
bool Open (const wxString &strFile, const wxMBConv &conv=wxConvAuto()) const
OpenメソッドにwxConvAuto()をとれるのが新機能みたい。2.8にはないんだな、これが。
367デフォルトの名無しさん
2012/01/08(日) 00:03:23.41 >>366
わざわざ調べてくれてありがとうございます。
2.8にはない新機能だったんですね。
2.9.3にする励みになりました。
code::blocksで、コンパイル済みのものを入れるだけで1週間くらいかかった記憶があります。
コンパイルなど慣れないことをするので、今回も同じくらい時間かかるかもしれません。
でも2.9.3にする気にになりました。
ありがとうございました。
わざわざ調べてくれてありがとうございます。
2.8にはない新機能だったんですね。
2.9.3にする励みになりました。
code::blocksで、コンパイル済みのものを入れるだけで1週間くらいかかった記憶があります。
コンパイルなど慣れないことをするので、今回も同じくらい時間かかるかもしれません。
でも2.9.3にする気にになりました。
ありがとうございました。
368デフォルトの名無しさん
2012/01/09(月) 00:02:24.31 Mingwをcドライブ直下にインストール
PATHに、C:\MinGW\bin;C:\MinGW\mingw32\binを追加
c:\wxWigets-2.9.3を解凍
下記を参考にしました。
http://wiki.codeblocks.org/index.php?title=Compiling_wxWidgets_2.8.6_to_develop_Code::Blocks_%28MSW%29
オプションはcode::blocksで使用する場合のofficial supportと書いていたので下記とおりにしています。
コマンドプロンプトで下記実行
C:\Users\x>SET PATH=c:\mingw\bin;c:\mingw\mingw32\bin
c:\wxWidgets-2.9.3\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release clean
c:\wxWidgets-2.9.3\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release
c:\wxWidgets-2.9.3\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=debug clean
c:\wxWidgets-2.9.3\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=debug
c:\wxWidgets-2.9.3\lib\gcc_dll>copy *.dll %windir%
code::blocksの設定
settings>Enviroment>Enviromet variables
WSWIN=C:\wxWidgets-2.9.3
settings>Grobal Variable Editor
current varibale:wx
base: ${WXWIN}
include: ${WXWIN}\include
lib: ${WXWIN}\lib
開発環境のコンパイルが初めてで、これでいいのか不安ですが、code::blocks上のプロジェクトのコンパイルが通りました。
PATHに、C:\MinGW\bin;C:\MinGW\mingw32\binを追加
c:\wxWigets-2.9.3を解凍
下記を参考にしました。
http://wiki.codeblocks.org/index.php?title=Compiling_wxWidgets_2.8.6_to_develop_Code::Blocks_%28MSW%29
オプションはcode::blocksで使用する場合のofficial supportと書いていたので下記とおりにしています。
コマンドプロンプトで下記実行
C:\Users\x>SET PATH=c:\mingw\bin;c:\mingw\mingw32\bin
c:\wxWidgets-2.9.3\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release clean
c:\wxWidgets-2.9.3\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release
c:\wxWidgets-2.9.3\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=debug clean
c:\wxWidgets-2.9.3\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=debug
c:\wxWidgets-2.9.3\lib\gcc_dll>copy *.dll %windir%
code::blocksの設定
settings>Enviroment>Enviromet variables
WSWIN=C:\wxWidgets-2.9.3
settings>Grobal Variable Editor
current varibale:wx
base: ${WXWIN}
include: ${WXWIN}\include
lib: ${WXWIN}\lib
開発環境のコンパイルが初めてで、これでいいのか不安ですが、code::blocks上のプロジェクトのコンパイルが通りました。
369デフォルトの名無しさん
2012/01/09(月) 00:08:31.38 >>366
wxTextFile gfile(wxT("c:\\Shift_JIS.txt"));
gfile.Open(wxConvAuto(wxFONTENCODING_CP932));
wxString test = gfile.GetFirstLine();
tfile.Open(file,wxConvAuto(wxFONTENCODING_CP932));
二通りのやりかたでコンパイルが正常にできました。
また、sjisのファイルを読みこむこともできました。
ありがとうございました。
助かりました!!!
wxTextFile gfile(wxT("c:\\Shift_JIS.txt"));
gfile.Open(wxConvAuto(wxFONTENCODING_CP932));
wxString test = gfile.GetFirstLine();
tfile.Open(file,wxConvAuto(wxFONTENCODING_CP932));
二通りのやりかたでコンパイルが正常にできました。
また、sjisのファイルを読みこむこともできました。
ありがとうございました。
助かりました!!!
370361
2012/01/09(月) 23:07:32.49 ubuntuでの印刷の件ですが、使っているプリンタのドライバがよくなかった様で、ドライバを変更したらうまく行きました。
現状、wxTextCtrl内の行が長すぎると用紙からはみ出てしまうので、適切なところで改ページするようにしたいと思っていますので、またもう少し考えてみます。
現状、wxTextCtrl内の行が長すぎると用紙からはみ出てしまうので、適切なところで改ページするようにしたいと思っていますので、またもう少し考えてみます。
371デフォルトの名無しさん
2012/01/11(水) 14:12:14.80 Linuxで開発したツールを知り合いの古い環境で動くかどうかテストしたら、libc.so.6が見当たらないっていうエラーが出てくるのですが、標準Cライブラリって動的リンクするしか方法はないのでしょうか?
その場合、作った実行ファイルは古い環境では動かないのかな…
一応./configure のオプションは
--with-gtk --enable-std_iostreams --enable-std_string
--enable-controls --disable-shared --enable-unicode --with-libjpeg=builtin
--with-libpng=builtin --with-regex=builtin --with-libtiff=builtin --with-zlib=builtin --with-expat=builtin
にして、プログラムのコンパイルは
g++ -o hoge.cpp `wx-config --cxxflags` `wx-config --libs`
g++ -o hoge.cpp `wx-config --cxxflags` `wx-config --libs` -static-libgcc -static-libstdc++
g++ -o hoge.cpp `wx-config --cxxflags` `wx-config --static --libs`
の3通りで実行ファイルを作ってそれぞれ試してもらったのですが、どれもlibc.so.6が利用できないというような意味のエラーが出てきます。
また
g++ -static -o hoge.cpp `wx-config --cxxflags` `wx-config --libs`
についても試しましたが、コンパイルエラーが大量に(主にライブラリが見当たらないといったようなエラー)が出てきます。
解決方法があるようでしたらご教授お願いします
その場合、作った実行ファイルは古い環境では動かないのかな…
一応./configure のオプションは
--with-gtk --enable-std_iostreams --enable-std_string
--enable-controls --disable-shared --enable-unicode --with-libjpeg=builtin
--with-libpng=builtin --with-regex=builtin --with-libtiff=builtin --with-zlib=builtin --with-expat=builtin
にして、プログラムのコンパイルは
g++ -o hoge.cpp `wx-config --cxxflags` `wx-config --libs`
g++ -o hoge.cpp `wx-config --cxxflags` `wx-config --libs` -static-libgcc -static-libstdc++
g++ -o hoge.cpp `wx-config --cxxflags` `wx-config --static --libs`
の3通りで実行ファイルを作ってそれぞれ試してもらったのですが、どれもlibc.so.6が利用できないというような意味のエラーが出てきます。
また
g++ -static -o hoge.cpp `wx-config --cxxflags` `wx-config --libs`
についても試しましたが、コンパイルエラーが大量に(主にライブラリが見当たらないといったようなエラー)が出てきます。
解決方法があるようでしたらご教授お願いします
372デフォルトの名無しさん
2012/01/11(水) 18:34:11.40 >>371
エスパーしてみるわ
一応忠告しとくけどwxWidgetsは「同じソースコードからWin, Linux, Macで使えるバイナリがコンパイルできる」のであって
「LInuxでコンパイルしたバイナリがWindowsで使える」というわけではない。
それができるのはJavaだけ
上の問題ではないとしたら
Linuxでコンパイル→Linuxで使う、はライブラリが揃ってる限りいけるはず。
よって、既に生成している実行ファイルを友人の環境で「ldd <- 対象の実行ファイル ->」して
友人の環境で足りないライブラリを追加する
もしくは友人の環境でwxWidgetsのソースをコンパイルして「wx-config」が正しく使えるようにする。
エスパーしてみるわ
一応忠告しとくけどwxWidgetsは「同じソースコードからWin, Linux, Macで使えるバイナリがコンパイルできる」のであって
「LInuxでコンパイルしたバイナリがWindowsで使える」というわけではない。
それができるのはJavaだけ
上の問題ではないとしたら
Linuxでコンパイル→Linuxで使う、はライブラリが揃ってる限りいけるはず。
よって、既に生成している実行ファイルを友人の環境で「ldd <- 対象の実行ファイル ->」して
友人の環境で足りないライブラリを追加する
もしくは友人の環境でwxWidgetsのソースをコンパイルして「wx-config」が正しく使えるようにする。
373372
2012/01/11(水) 18:39:33.34 というかlibc.so.6が足りないだけなら
実行ファイルと同じディレクトリにlibc.so.6を置いて実行すればいける気もする
実行ファイルと同じディレクトリにlibc.so.6を置いて実行すればいける気もする
374デフォルトの名無しさん
2012/01/11(水) 20:17:58.74 >>372
レスありがとうございます。
LinuxでコンパイルしたファイルはLinuxでは使えない、というのはわかっています。私も知り合いも環境はLinuxです。
極力ユーザが煩わしくないように、実行ファイル以外のファイルをユーザが別途インストールする必要が無いようにしたいのですが、不可能なのでしょうか?下記サイト
http://up-cat.net/wxWidgets%A4%CE%A5%B9%A5%B9%A5%E1.html
によると、Javaとは違いランタイムがいらないと書いてありますが限度があるのでしょうか
一応Windows版は同じソースで私の周りの環境では問題なく動いたのですが…
libc.so.6を実行ファイルと同じフォルダにおけ、ということですが、共有ライブラリはlddコマンドで見れるような指定されているアドレスに置かなくても利用可能なのでしょうか?
その方法で動作するかもしれないのでまた試してみます。
レスありがとうございます。
LinuxでコンパイルしたファイルはLinuxでは使えない、というのはわかっています。私も知り合いも環境はLinuxです。
極力ユーザが煩わしくないように、実行ファイル以外のファイルをユーザが別途インストールする必要が無いようにしたいのですが、不可能なのでしょうか?下記サイト
http://up-cat.net/wxWidgets%A4%CE%A5%B9%A5%B9%A5%E1.html
によると、Javaとは違いランタイムがいらないと書いてありますが限度があるのでしょうか
一応Windows版は同じソースで私の周りの環境では問題なく動いたのですが…
libc.so.6を実行ファイルと同じフォルダにおけ、ということですが、共有ライブラリはlddコマンドで見れるような指定されているアドレスに置かなくても利用可能なのでしょうか?
その方法で動作するかもしれないのでまた試してみます。
375デフォルトの名無しさん
2012/01/11(水) 21:04:03.63376デフォルトの名無しさん
2012/01/11(水) 21:12:12.37377デフォルトの名無しさん
2012/01/12(木) 00:36:38.89 >>376
自分の環境でコンパイルするときに正しく-staticオプションつけとけば、依存なしにバイナリを走らせることはできるはず
依存関係が出てるってことはstaticリンクビルドされてないのは間違いないので、そのアプリをちゃんとコンパイルしなおすべきかと
自分の環境でコンパイルするときに正しく-staticオプションつけとけば、依存なしにバイナリを走らせることはできるはず
依存関係が出てるってことはstaticリンクビルドされてないのは間違いないので、そのアプリをちゃんとコンパイルしなおすべきかと
378デフォルトの名無しさん
2012/01/12(木) 10:46:49.97 >>377
レスありがとうございます。
-static-libcというコマンドは存在しないみたいで、どのようにオプションをつければlibcを静的リンクすればいいのか、自分なりに調べてみたのですがよく分からないのでできれば教えていただきたいです。
レスありがとうございます。
-static-libcというコマンドは存在しないみたいで、どのようにオプションをつければlibcを静的リンクすればいいのか、自分なりに調べてみたのですがよく分からないのでできれば教えていただきたいです。
379デフォルトの名無しさん
2012/01/12(木) 12:10:12.07380デフォルトの名無しさん
2012/01/12(木) 15:19:19.22 >>379
g++ -static -o hoge.cpp `wx-config --cxxflags` `wx-config --libs`
でコンパイルしていたのですが、下記のようなエラー(長いので前半部分だけです。ごめんなさい。)が出るのですが、./configureのオプションか何かが足りないのでしょうか…
/usr/bin/ld: cannot find -lgdk_pixbuf-2.0
/usr/local/lib/libwx_baseu-2.8.a(baselib_dlunix.o): In function `wxDynamicLibrary::GetProgramHandle()':
dlunix.cpp:(.text+0x13): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/i686-linux-gnu/4.6.1/../../../i386-linux-gnu/libgio-2.0.a(libgio_2_0_la-glocalfileinfo.o): In function `lookup_gid_name':
(.text+0x1a5c): warning: Using 'getgrgid_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/local/lib/libwx_baseu-2.8.a(baselib_utilsunx.o): In function `wxGetUserHome(wxString const&)':
utilsunx.cpp:(.text+0x14f5): warning: Using 'getpwnam' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
utilsunx.cpp:(.text+0x157a): warning: Using 'getpwuid' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/i686-linux-gnu/4.6.1/../../../i386-linux-gnu/libglib-2.0.a(gutils.o): In function `g_get_any_init_do':
(.text+0xe2a): warning: Using 'setpwent' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/i686-linux-gnu/4.6.1/../../../i386-linux-gnu/libglib-2.0.a(gutils.o): In function `g_get_any_init_do':
(.text+0xe40): warning: Using 'endpwent' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
g++ -static -o hoge.cpp `wx-config --cxxflags` `wx-config --libs`
でコンパイルしていたのですが、下記のようなエラー(長いので前半部分だけです。ごめんなさい。)が出るのですが、./configureのオプションか何かが足りないのでしょうか…
/usr/bin/ld: cannot find -lgdk_pixbuf-2.0
/usr/local/lib/libwx_baseu-2.8.a(baselib_dlunix.o): In function `wxDynamicLibrary::GetProgramHandle()':
dlunix.cpp:(.text+0x13): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/i686-linux-gnu/4.6.1/../../../i386-linux-gnu/libgio-2.0.a(libgio_2_0_la-glocalfileinfo.o): In function `lookup_gid_name':
(.text+0x1a5c): warning: Using 'getgrgid_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/local/lib/libwx_baseu-2.8.a(baselib_utilsunx.o): In function `wxGetUserHome(wxString const&)':
utilsunx.cpp:(.text+0x14f5): warning: Using 'getpwnam' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
utilsunx.cpp:(.text+0x157a): warning: Using 'getpwuid' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/i686-linux-gnu/4.6.1/../../../i386-linux-gnu/libglib-2.0.a(gutils.o): In function `g_get_any_init_do':
(.text+0xe2a): warning: Using 'setpwent' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/i686-linux-gnu/4.6.1/../../../i386-linux-gnu/libglib-2.0.a(gutils.o): In function `g_get_any_init_do':
(.text+0xe40): warning: Using 'endpwent' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
381デフォルトの名無しさん
2012/01/12(木) 18:33:37.54 >>380
どこまで甘えてんだよ
少しは自分で調べてください・・・少しはソースを見やがれ
まず1行目
-lgdk_pixbuf-2.0
こいつの意味は「libgdk_pixbuf-2.0.a」という名前のライブラリをリンクするという意味
調べたらGNOMEプロジェクトの1つみたいだな
http://ftp.gnome.org/pub/GNOME/sources/gdk-pixbuf/
まあこいつはyumでもapt-getでもなんでもいいからインストールすればいいだろ
インストール後に /usr/lib 直下に上で書いたライブラリがあればコンパイルは通るはず
2行目より後は警告だから無視してもいいのかもしれないが、意味としては
「warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking」
「警告:コンパイルに使っとるglibcがシェアードライブラリじゃねーか、スタティックライブラリでリンクしろよクソ野郎」
という感じですか、間違ってたらすまん。頑張ってgdk-pixbufとwxとglibのライブラリを手に入れてください(もちろんスタティックライブラリで)
どこまで甘えてんだよ
少しは自分で調べてください・・・少しはソースを見やがれ
まず1行目
-lgdk_pixbuf-2.0
こいつの意味は「libgdk_pixbuf-2.0.a」という名前のライブラリをリンクするという意味
調べたらGNOMEプロジェクトの1つみたいだな
http://ftp.gnome.org/pub/GNOME/sources/gdk-pixbuf/
まあこいつはyumでもapt-getでもなんでもいいからインストールすればいいだろ
インストール後に /usr/lib 直下に上で書いたライブラリがあればコンパイルは通るはず
2行目より後は警告だから無視してもいいのかもしれないが、意味としては
「warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking」
「警告:コンパイルに使っとるglibcがシェアードライブラリじゃねーか、スタティックライブラリでリンクしろよクソ野郎」
という感じですか、間違ってたらすまん。頑張ってgdk-pixbufとwxとglibのライブラリを手に入れてください(もちろんスタティックライブラリで)
382デフォルトの名無しさん
2012/01/12(木) 18:42:52.46 あ、でも
「warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking」系のエラーは
スタティックライブラリを使っても出ることがあるみたいだな。
つーことは一番の目標はgdk-pixbufをインストールすることか。簡単じゃん。
「warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking」系のエラーは
スタティックライブラリを使っても出ることがあるみたいだな。
つーことは一番の目標はgdk-pixbufをインストールすることか。簡単じゃん。
383デフォルトの名無しさん
2012/01/12(木) 19:03:01.17 ここまでおまえの自演
384デフォルトの名無しさん
2012/01/12(木) 20:59:28.67 >>381
後から見返してみると私の状況説明がたりないため、自業自得ですが、
どこまで甘えてんだよと言われましても>>379までの-staticオプションをつけてコンパイルする、というのは>>371ですでにためしたと説明したつもりだったのですが、すみません。
一応こちらでもできる限りのことを調べて、ソースも読んでから書き込んだつもりですが、調べたことをかけてなかったら確かに意味がありませんね。
一応libgdk-pixbuf-2.0.0、libgdk-pixbuf-2.0.dvg はインストール済みで、wxWidgetsはもちろん入れています。glibやlibcもapt-cache searchを使って目についた関連がありそうなものをインストールしまくって、コンパイルした結果上記のエラーが出ています。
また、libc.aと言うファイルを5時間ほど探しつづけましたが見当たらず、また、下記のリンクの一番下の回答者の
Check your Output mode settings, I believe you have linking set to "static". So the linker is looking for libgdk-pixbuf-2.0.a, which is probably not present. If you switch it to "shared" it should begin to work..
http://www.ultimatepp.org/forum/index.php?t=rview&goto=34857&th=6160
をみると、私の英語力ではlibgdk-pixbuf-2.0.0はstaticで出力できないと読めるため、八方塞がりとなり、ここで聞いた次第です。
気分を悪くしてしまってすみません。
>>383
自演ではないです。
後から見返してみると私の状況説明がたりないため、自業自得ですが、
どこまで甘えてんだよと言われましても>>379までの-staticオプションをつけてコンパイルする、というのは>>371ですでにためしたと説明したつもりだったのですが、すみません。
一応こちらでもできる限りのことを調べて、ソースも読んでから書き込んだつもりですが、調べたことをかけてなかったら確かに意味がありませんね。
一応libgdk-pixbuf-2.0.0、libgdk-pixbuf-2.0.dvg はインストール済みで、wxWidgetsはもちろん入れています。glibやlibcもapt-cache searchを使って目についた関連がありそうなものをインストールしまくって、コンパイルした結果上記のエラーが出ています。
また、libc.aと言うファイルを5時間ほど探しつづけましたが見当たらず、また、下記のリンクの一番下の回答者の
Check your Output mode settings, I believe you have linking set to "static". So the linker is looking for libgdk-pixbuf-2.0.a, which is probably not present. If you switch it to "shared" it should begin to work..
http://www.ultimatepp.org/forum/index.php?t=rview&goto=34857&th=6160
をみると、私の英語力ではlibgdk-pixbuf-2.0.0はstaticで出力できないと読めるため、八方塞がりとなり、ここで聞いた次第です。
気分を悪くしてしまってすみません。
>>383
自演ではないです。
385デフォルトの名無しさん
2012/01/12(木) 21:16:37.55386381
2012/01/12(木) 21:32:18.61 >>384
なんか思ったより込み入った問題みたいだな、キツイこと言ったかもしれないけど冗談だと思って聞き流してくだされ
ちょっとググッたけどlibgdk-pixbuf-2.0.0のスタティックライブラリが生成できないのはバグみたいだぞ
そして2番目のリンクではパッチとかも出てる
http://askubuntu.com/questions/7990/what-can-i-do-about-missing-libgdk-pixbuf-2-0-la
https://bugs.launchpad.net/ubuntu/+source/gtkglextmm/+bug/662572
で、対策としては gdk-pixbufのソースをとってきて
./configure --enable-static でいけるんではないかと思う(./configure -h したら一応あったけどこれは試した?)
なんか思ったより込み入った問題みたいだな、キツイこと言ったかもしれないけど冗談だと思って聞き流してくだされ
ちょっとググッたけどlibgdk-pixbuf-2.0.0のスタティックライブラリが生成できないのはバグみたいだぞ
そして2番目のリンクではパッチとかも出てる
http://askubuntu.com/questions/7990/what-can-i-do-about-missing-libgdk-pixbuf-2-0-la
https://bugs.launchpad.net/ubuntu/+source/gtkglextmm/+bug/662572
で、対策としては gdk-pixbufのソースをとってきて
./configure --enable-static でいけるんではないかと思う(./configure -h したら一応あったけどこれは試した?)
387381
2012/01/12(木) 23:04:21.77 gdk-pixbuf-2.21.3にて
./configure --enable-static
make
make install
できた。めんどくせえ。
./configure --enable-static
make
make install
できた。めんどくせえ。
388デフォルトの名無しさん
2012/01/12(木) 23:23:27.63 wx関係ない問題なのに面倒見いいな……
389デフォルトの名無しさん
2012/01/12(木) 23:24:18.71 自演ですから
390デフォルトの名無しさん
2012/01/13(金) 00:05:23.76 >>385
レスありがとうございます
すみません。また書き方が悪かったですね。
知り合いの環境で動かしたのは、Linuxの環境で作成したバイナリファイルを、Linuxの他の環境で動くかどうかを確かめるためでしたので、知り合いの環境だけで動いても目的を果たせないんです。
linux環境すべてで動かせるとは思ってはいないのですが、せめて、多少のバージョン違いは克服したい、と思いまして。
>>386
レスありがとうございます
いえ、こちらが勝手に謝ってるだけだと思ってください。
そもそも自力で解決できないのが悪いんですし。
そしてまさかそこまで調べていただけるとは思いませんでした。
本当にありがとうございます。
パッチを試してみて、また報告します。
こちらのwxWidgetsのバージョンは2.8.12と2.9.3があるのですが、--enable-staticというオプションが確認できないので、調べてみます。
そしてちゃんと調べればきちんとパッチなども出てきたのですね…
これからはもっとよく調べてから書き込むことにします。
レスありがとうございます
すみません。また書き方が悪かったですね。
知り合いの環境で動かしたのは、Linuxの環境で作成したバイナリファイルを、Linuxの他の環境で動くかどうかを確かめるためでしたので、知り合いの環境だけで動いても目的を果たせないんです。
linux環境すべてで動かせるとは思ってはいないのですが、せめて、多少のバージョン違いは克服したい、と思いまして。
>>386
レスありがとうございます
いえ、こちらが勝手に謝ってるだけだと思ってください。
そもそも自力で解決できないのが悪いんですし。
そしてまさかそこまで調べていただけるとは思いませんでした。
本当にありがとうございます。
パッチを試してみて、また報告します。
こちらのwxWidgetsのバージョンは2.8.12と2.9.3があるのですが、--enable-staticというオプションが確認できないので、調べてみます。
そしてちゃんと調べればきちんとパッチなども出てきたのですね…
これからはもっとよく調べてから書き込むことにします。
392371
2012/01/13(金) 02:21:19.65393デフォルトの名無しさん
2012/01/17(火) 01:29:32.09 過疎ってんのかと思ったら割と繁盛してた
XRCでローカライゼーション機能(wxLocale)に対応してるみたいですが、普通にXRC中に文字列書いておけば
コンバートしてくれるのでしょうか?
自分で試せって?そうですね、すいません
久々に何か書いてみたかっただけです(^0^)
XRCでローカライゼーション機能(wxLocale)に対応してるみたいですが、普通にXRC中に文字列書いておけば
コンバートしてくれるのでしょうか?
自分で試せって?そうですね、すいません
久々に何か書いてみたかっただけです(^0^)
394デフォルトの名無しさん
2012/01/18(水) 14:29:53.54 2.8.12をソースからコンパイルしました。
>>368が間違っているかどうかわからないのですが、今のコンパイル環境を書きます。
CODE::BLOCKSを使用する前提なので、CODE::BLOCKSスレかと思ったのですが、
ここで質問させてもらっていたのでここに書きます。
windows 7 64bit/32bit共にmingwだと、2.8.12はコンパイルが行えなかったです。
mingwだとコンパイルできなかったので、tdm-gcc tdm-gcc-4.6.1をインストールしました。
tdm-gcc-4.6.1は、setupの時に32bitを選択しています。
ttp://forums.codeblocks.org/index.php/topic,15283.msg102557.html#msg102557
PATHにC:\MinGW32\bin;C:\MinGW32\mingw32\binを追加。
DOSプロンプトで以下を実行。(2.9.3)
C:\Users\x>SET PATH=c:\mingw\bin;c:\mingw\mingw32\bin
c:\wxWidgets-2.9.3\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release clean
c:\wxWidgets-2.9.3\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release CXXFLAGS="-fno-keep-inline-dllexport"
c:\wxWidgets-2.9.3\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=debug clean
c:\wxWidgets-2.9.3\build\msw>mingw32-make -j -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=debug CXXFLAGS="-fno-keep-inline-dllexport"
c:\wxWidgets-2.9.3\lib\gcc_dll>copy *.dll %windir%
(2.8.12)
C:\Users\x>SET PATH=c:\mingw\bin;c:\mingw\mingw32\bin
c:\wxWidgets-2.8.12\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release clean
c:\wxWidgets-2.8.12\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release CXXFLAGS="-fno-keep-inline-dllexport"
c:\wxWidgets-2.8.12\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=debug clean
c:\wxWidgets-2.8.12\build\msw>mingw32-make -j -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=debug CXXFLAGS="-fno-keep-inline-dllexport"
c:\wxWidgets-2.8.12\lib\gcc_dll>copy *.dll %windir%
>>368が間違っているかどうかわからないのですが、今のコンパイル環境を書きます。
CODE::BLOCKSを使用する前提なので、CODE::BLOCKSスレかと思ったのですが、
ここで質問させてもらっていたのでここに書きます。
windows 7 64bit/32bit共にmingwだと、2.8.12はコンパイルが行えなかったです。
mingwだとコンパイルできなかったので、tdm-gcc tdm-gcc-4.6.1をインストールしました。
tdm-gcc-4.6.1は、setupの時に32bitを選択しています。
ttp://forums.codeblocks.org/index.php/topic,15283.msg102557.html#msg102557
PATHにC:\MinGW32\bin;C:\MinGW32\mingw32\binを追加。
DOSプロンプトで以下を実行。(2.9.3)
C:\Users\x>SET PATH=c:\mingw\bin;c:\mingw\mingw32\bin
c:\wxWidgets-2.9.3\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release clean
c:\wxWidgets-2.9.3\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release CXXFLAGS="-fno-keep-inline-dllexport"
c:\wxWidgets-2.9.3\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=debug clean
c:\wxWidgets-2.9.3\build\msw>mingw32-make -j -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=debug CXXFLAGS="-fno-keep-inline-dllexport"
c:\wxWidgets-2.9.3\lib\gcc_dll>copy *.dll %windir%
(2.8.12)
C:\Users\x>SET PATH=c:\mingw\bin;c:\mingw\mingw32\bin
c:\wxWidgets-2.8.12\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release clean
c:\wxWidgets-2.8.12\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release CXXFLAGS="-fno-keep-inline-dllexport"
c:\wxWidgets-2.8.12\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=debug clean
c:\wxWidgets-2.8.12\build\msw>mingw32-make -j -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=debug CXXFLAGS="-fno-keep-inline-dllexport"
c:\wxWidgets-2.8.12\lib\gcc_dll>copy *.dll %windir%
395デフォルトの名無しさん
2012/01/18(水) 14:41:08.38 何が間違っているのか教えてください。
wxWigets2.9.3を使用しています。
http://docs.wxwidgets.org/trunk/group__group__funcmacro__file.html#ga599c484cd4deea8fed7275a9a7e0a11c
ここを参考にしました。
wxRenameFile(_T("z:\\test.txt"),_T("z:\\test2.txt"));
コンパイル後、実行すると Failed to copy the file 'z:\test.txt' to 'z:\test2.txt' (error 2: 指定されたファイルが見つかりません。と表示されます。
zドライブ上には、test.txtファイルはあります。
試しに、下記を試すと実行できました。
wxMkdir(_T("Z:\\T"));
wxMkdir(_T("Z:\\T"));
と実行すると、ディレクトリの作成と削除はできました。
2.9.3が開発版だからなにか問題があるかと思い、2.8.12を入れてみたのですが同じ現象です。
多分書き方が悪いんだと思うのですが、どこがわるいのかわかりません。
教えてください。
wxWigets2.9.3を使用しています。
http://docs.wxwidgets.org/trunk/group__group__funcmacro__file.html#ga599c484cd4deea8fed7275a9a7e0a11c
ここを参考にしました。
wxRenameFile(_T("z:\\test.txt"),_T("z:\\test2.txt"));
コンパイル後、実行すると Failed to copy the file 'z:\test.txt' to 'z:\test2.txt' (error 2: 指定されたファイルが見つかりません。と表示されます。
zドライブ上には、test.txtファイルはあります。
試しに、下記を試すと実行できました。
wxMkdir(_T("Z:\\T"));
wxMkdir(_T("Z:\\T"));
と実行すると、ディレクトリの作成と削除はできました。
2.9.3が開発版だからなにか問題があるかと思い、2.8.12を入れてみたのですが同じ現象です。
多分書き方が悪いんだと思うのですが、どこがわるいのかわかりません。
教えてください。
396デフォルトの名無しさん
2012/01/18(水) 14:50:42.64 馬鹿には無理
397デフォルトの名無しさん
2012/01/18(水) 15:44:45.10 >>395
テキストファイルが読み取り専用になってたりしない?
テキストファイルが読み取り専用になってたりしない?
398デフォルトの名無しさん
2012/01/18(水) 16:01:13.12 >>397
レスありがとうございます。
読み込み専用ではなかったのですが、windowsの拡張子を表示する設定にしていませんでした。
拡張子を表示する設定にしたところ、test.txt.txtになっていました。
すみません、初歩的な事を数日見逃していました。
レスありがとうございました。
レスありがとうございます。
読み込み専用ではなかったのですが、windowsの拡張子を表示する設定にしていませんでした。
拡張子を表示する設定にしたところ、test.txt.txtになっていました。
すみません、初歩的な事を数日見逃していました。
レスありがとうございました。
399デフォルトの名無しさん
2012/01/18(水) 16:41:41.95 わろす
400デフォルトの名無しさん
2012/01/18(水) 18:21:10.87401デフォルトの名無しさん
2012/01/18(水) 18:24:47.81 >>394
エラーログを貼らないとどんなハッカーでも原因はわからんですよ^^;
そもそもCode::Blocksはビルドする必要ないような?初心者はバイナリバージョンをダウンロードすればいいと思うよ。
もしCode::Blocksの翻訳とかやってる方だったら全力支援しますが
エラーログを貼らないとどんなハッカーでも原因はわからんですよ^^;
そもそもCode::Blocksはビルドする必要ないような?初心者はバイナリバージョンをダウンロードすればいいと思うよ。
もしCode::Blocksの翻訳とかやってる方だったら全力支援しますが
403デフォルトの名無しさん
2012/01/19(木) 00:46:20.39 わろす
404デフォルトの名無しさん
2012/01/22(日) 22:48:49.88 wxWidgets2.9.3を使用しています。
下記リンクを参考にしました。
http://docs.wxwidgets.org/trunk/classwx_string.html#a55b90a900c24e9555760265170dc051c
文字列の中に特定の文字が複数回出た場合の検索を行いたいです。
.find()この中に、aとか、txtとか入れると、最初の桁数だけ検索できます。
たとえば、[t]と入力すると、文字列の中に4回でてきますが、一個目のものしか検索されません。
また、[猫]や[犬]などを入力すると、ループの処理に入らずすぐに終了します。
[あ] を入力すると、1回ループ処理に入っているますが、検索結果に0が帰ってきます。
コードは以下のようになっています。
//wxString gpath C:\Users\x\Desktop\practice\猫犬象aAbB猫猫猫犬犬あいう.txt
wxString bb,cc,dd;
size_t pos=0;
if((pos=::gpath.find(("猫"),pos))!= wxString::npos)
{
wxMessageBox(_T("ループ 処理開始"));
pos = ::gpath.find("猫",pos);
cc.Printf(_T("%d"),pos);
dd += cc;
dd += "\n";
pos + 1;
wxMessageBox(_T("ループ 判定処理に戻る"));
}
readpos -> SetValue(dd);
wxMessageBox(_T("終了"));
文法?など、何が間違っているか教えてください。
下記リンクを参考にしました。
http://docs.wxwidgets.org/trunk/classwx_string.html#a55b90a900c24e9555760265170dc051c
文字列の中に特定の文字が複数回出た場合の検索を行いたいです。
.find()この中に、aとか、txtとか入れると、最初の桁数だけ検索できます。
たとえば、[t]と入力すると、文字列の中に4回でてきますが、一個目のものしか検索されません。
また、[猫]や[犬]などを入力すると、ループの処理に入らずすぐに終了します。
[あ] を入力すると、1回ループ処理に入っているますが、検索結果に0が帰ってきます。
コードは以下のようになっています。
//wxString gpath C:\Users\x\Desktop\practice\猫犬象aAbB猫猫猫犬犬あいう.txt
wxString bb,cc,dd;
size_t pos=0;
if((pos=::gpath.find(("猫"),pos))!= wxString::npos)
{
wxMessageBox(_T("ループ 処理開始"));
pos = ::gpath.find("猫",pos);
cc.Printf(_T("%d"),pos);
dd += cc;
dd += "\n";
pos + 1;
wxMessageBox(_T("ループ 判定処理に戻る"));
}
readpos -> SetValue(dd);
wxMessageBox(_T("終了"));
文法?など、何が間違っているか教えてください。
405デフォルトの名無しさん
2012/01/22(日) 23:59:25.48 >>404
wxString gpath = L"C:\\Users\\x\\Desktop\\practice\\猫犬象aAbB猫猫猫犬犬あいう.txt";
wxString word = L"猫";
wxString result;
size_t pos = 0;
wxMessageBox(_T("ループ 処理開始"));
while ((pos = gpath.find(word, pos)) != wxString::npos) {
result += wxString::Format(L"%d\n", pos);
pos += word.size();
wxMessageBox(_T("ループ 判定処理に戻る"));
}
OutputDebugStringW(result.c_str());
pos + 1はpos += 1のタイポだと好意的に解釈するにせよ、それでも
「何故1なのか」が理解できてないのはちょっとまずい。
ifとwhileの区別が付いてないのもかなり厳しい。
charとwchar_tの違いについてとか、
1. (pos = gpath.find(word, pos)) != wxString::npos
2. pos = gpath.find(word, pos) != wxString::npos
は全く意味が違う、とか。
wxWidgets以前に、まず基本的な文法を押さえることから始めた方がいいと思う。
wxString gpath = L"C:\\Users\\x\\Desktop\\practice\\猫犬象aAbB猫猫猫犬犬あいう.txt";
wxString word = L"猫";
wxString result;
size_t pos = 0;
wxMessageBox(_T("ループ 処理開始"));
while ((pos = gpath.find(word, pos)) != wxString::npos) {
result += wxString::Format(L"%d\n", pos);
pos += word.size();
wxMessageBox(_T("ループ 判定処理に戻る"));
}
OutputDebugStringW(result.c_str());
pos + 1はpos += 1のタイポだと好意的に解釈するにせよ、それでも
「何故1なのか」が理解できてないのはちょっとまずい。
ifとwhileの区別が付いてないのもかなり厳しい。
charとwchar_tの違いについてとか、
1. (pos = gpath.find(word, pos)) != wxString::npos
2. pos = gpath.find(word, pos) != wxString::npos
は全く意味が違う、とか。
wxWidgets以前に、まず基本的な文法を押さえることから始めた方がいいと思う。
406デフォルトの名無しさん
2012/01/23(月) 01:28:04.42 >>404
レスありがとうございます。
>>ifとwhileの区別が付いてないのもかなり厳しい。
理由がわからないので、whileとifを書き直してテストしてました。
これは、コピペを修正するのを忘れていました。
ただ、最初はforで試したのですが、まったくだめでwhileやifなどを試してみました。
ただ理解してないのは間違いないです。
>>pos + 1はpos += 1のタイポだと好意的に解釈するにせよ
検索後、ひとつ右の文字から再度検索したかったので +1 にしたのでタイプミスではありませんでした。
+=でないとだめとのことなので、考え方が間違っているのですね。
見直します。
>>charとwchar_tの違いについてとか、
charがabとか半角文字で、wcar_tが2バイト文字が許されると漠然と認識しています。
ユニコードビルドなので、wxStringを使用した場合すべて2バイト文字が許されると認識していましたが、
なんか違うようですね。
wxString word = L"猫”;
wxString::Format
など、知らないものがでてきたので、これも調べます。
ありがとうございました。
レスありがとうございます。
>>ifとwhileの区別が付いてないのもかなり厳しい。
理由がわからないので、whileとifを書き直してテストしてました。
これは、コピペを修正するのを忘れていました。
ただ、最初はforで試したのですが、まったくだめでwhileやifなどを試してみました。
ただ理解してないのは間違いないです。
>>pos + 1はpos += 1のタイポだと好意的に解釈するにせよ
検索後、ひとつ右の文字から再度検索したかったので +1 にしたのでタイプミスではありませんでした。
+=でないとだめとのことなので、考え方が間違っているのですね。
見直します。
>>charとwchar_tの違いについてとか、
charがabとか半角文字で、wcar_tが2バイト文字が許されると漠然と認識しています。
ユニコードビルドなので、wxStringを使用した場合すべて2バイト文字が許されると認識していましたが、
なんか違うようですね。
wxString word = L"猫”;
wxString::Format
など、知らないものがでてきたので、これも調べます。
ありがとうございました。
407デフォルトの名無しさん
2012/01/23(月) 03:10:53.18 VCでもmingwでも pos + 1; に対してはWarning出すから、
ちゃんとWarningは読んで意味を理解しよう。
VC使ってるならステップ実行も使おう。
>charがabとか半角文字で、wcar_tが2バイト文字が許される
L""を知らなかった、ということはたぶん間違った理解をしてる。
まずはstring, wstringを使って両者についての理解を深めた方が良いかも。
ちなみにVCとmingwでwchar_tの定義は異なるので、それに気付かず両者を混同して
テストすると理解が深まるどころか発狂しそうになるので要注意。
知らないことが出てきたらまず自分で調べる、というのは正しい姿勢だし、
これからも是非継続してもらいたいけれども、この辺はもう完全にスレチなので、
c++初心者スレとかで聞いた方がいいと思う。
まあ頑張ってくれ。
ちゃんとWarningは読んで意味を理解しよう。
VC使ってるならステップ実行も使おう。
>charがabとか半角文字で、wcar_tが2バイト文字が許される
L""を知らなかった、ということはたぶん間違った理解をしてる。
まずはstring, wstringを使って両者についての理解を深めた方が良いかも。
ちなみにVCとmingwでwchar_tの定義は異なるので、それに気付かず両者を混同して
テストすると理解が深まるどころか発狂しそうになるので要注意。
知らないことが出てきたらまず自分で調べる、というのは正しい姿勢だし、
これからも是非継続してもらいたいけれども、この辺はもう完全にスレチなので、
c++初心者スレとかで聞いた方がいいと思う。
まあ頑張ってくれ。
408デフォルトの名無しさん
2012/02/02(木) 23:41:58.22 TDM-GCC 32bit wxWidgets2.9.3を使用しています。
http://docs.wxwidgets.org/2.9.3/classwx_reg_ex.htmlを参考にしました。
http://2ch.ac.la/read.php/tech/1268979408/955 を参考にしました。
wxRegExの機能を使用したいです。
[ももも]猫[]け[2.5]犬象()aA b B(2012年01月24日)猫猫__@(H23)_猫(わんわん)犬犬あいう.txt
という文字列から正規表現で文字を検索の仕方を調べています。
試しに\[...\]と正規表現をいれて実行したところ[ももも]というのは検索できました。
もうひとつ[2.5]というのも検索されているはずかなと思うのですが、とうやればいいかがよくわかりません。
以下のコードで、\[...\]で[ももも]は検索できました。
wxString search (L"\[...\]")
wxString text; (L"[ももも]猫[]け[2.5]犬象()aA b B(2012年01月24日)猫猫__@(H23)_猫(わんわん)犬犬あいう.txt"
wxRegEx cktext(search);
wxString result;
if(cktext.Compile(search,wxRE_EXTENDED) == TRUE)
if( cktext.Matches(text,wxRE_NOTBOL))
result += cktext.GetMatch(text,count);
で、2件以上ヒットする場合はループにする必要があるかと次のようにしてみました。
http://docs.wxwidgets.org/2.9.3/classwx_reg_ex.htmlを参考にしました。
http://2ch.ac.la/read.php/tech/1268979408/955 を参考にしました。
wxRegExの機能を使用したいです。
[ももも]猫[]け[2.5]犬象()aA b B(2012年01月24日)猫猫__@(H23)_猫(わんわん)犬犬あいう.txt
という文字列から正規表現で文字を検索の仕方を調べています。
試しに\[...\]と正規表現をいれて実行したところ[ももも]というのは検索できました。
もうひとつ[2.5]というのも検索されているはずかなと思うのですが、とうやればいいかがよくわかりません。
以下のコードで、\[...\]で[ももも]は検索できました。
wxString search (L"\[...\]")
wxString text; (L"[ももも]猫[]け[2.5]犬象()aA b B(2012年01月24日)猫猫__@(H23)_猫(わんわん)犬犬あいう.txt"
wxRegEx cktext(search);
wxString result;
if(cktext.Compile(search,wxRE_EXTENDED) == TRUE)
if( cktext.Matches(text,wxRE_NOTBOL))
result += cktext.GetMatch(text,count);
で、2件以上ヒットする場合はループにする必要があるかと次のようにしてみました。
409デフォルトの名無しさん
2012/02/02(木) 23:49:55.81 if(cktext.Compile(search,wxRE_EXTENDED) == TRUE)
{
wxMessageBox(L"正規表現です。");
if( cktext.Matches(text,wxRE_NOTBOL))
{
wxMessageBox(L"マッチ処理に入りました");
count = cktext.GetMatchCount();
wxMessageBox(wxString::Format("%d",count));
for (size_t i=0 ; i < count ; count--)
{
wxMessageBox(L"マッチループ処理に入りました");
result += cktext.GetMatch(text,count);
wxMessageBox(L"いったんすとっぷ1");
results -> SetValue(result);
wxMessageBox(L"いったんすとっぷ2");
}
results -> SetValue(result);
} else {
wxMessageBox(L"マッチ処理にヒットしませんでした。");
}
} else {
wxMessageBox(L"正規表現ではありません。");
}
実行しますと、「マッチループ処理に入りました」メッセージの後に、
faild in GetMatch() invalid match indexと表示されます。
wxMessageBox(wxString::Format("%d",count));
ここで1が帰ってくるのですくなくとも1件はヒットしていると思うのですが・・・・
考え方や、ソースのどこが間違っているのか教えてください。
{
wxMessageBox(L"正規表現です。");
if( cktext.Matches(text,wxRE_NOTBOL))
{
wxMessageBox(L"マッチ処理に入りました");
count = cktext.GetMatchCount();
wxMessageBox(wxString::Format("%d",count));
for (size_t i=0 ; i < count ; count--)
{
wxMessageBox(L"マッチループ処理に入りました");
result += cktext.GetMatch(text,count);
wxMessageBox(L"いったんすとっぷ1");
results -> SetValue(result);
wxMessageBox(L"いったんすとっぷ2");
}
results -> SetValue(result);
} else {
wxMessageBox(L"マッチ処理にヒットしませんでした。");
}
} else {
wxMessageBox(L"正規表現ではありません。");
}
実行しますと、「マッチループ処理に入りました」メッセージの後に、
faild in GetMatch() invalid match indexと表示されます。
wxMessageBox(wxString::Format("%d",count));
ここで1が帰ってくるのですくなくとも1件はヒットしていると思うのですが・・・・
考え方や、ソースのどこが間違っているのか教えてください。
410デフォルトの名無しさん
2012/02/03(金) 00:46:43.23 >>409
詰まったら詰まった現象を再現できる可能な限り短いコードを晒してくれ。
バグってる長いコードなんて誰も読みたくはない。
一応ヒントになりそうなコードは書いたが、
今回も残念ながらwxWidgets以前の問題だ。
正規表現に関してちゃんと勉強してくれ。
wxString regexText(L"\\[...\\](.)");
wxString text(L"[ももも]猫[]け[2.5]");
wxRegEx rx;
rx.Compile(regexText, wxRE_EXTENDED);
if (rx.Matches(text, wxRE_NOTBOL)) {
int n = rx.GetMatchCount();
for (int i = 0; i < n; ++i) {
wxMessageBox(rx.GetMatch(text, i));
}
}
詰まったら詰まった現象を再現できる可能な限り短いコードを晒してくれ。
バグってる長いコードなんて誰も読みたくはない。
一応ヒントになりそうなコードは書いたが、
今回も残念ながらwxWidgets以前の問題だ。
正規表現に関してちゃんと勉強してくれ。
wxString regexText(L"\\[...\\](.)");
wxString text(L"[ももも]猫[]け[2.5]");
wxRegEx rx;
rx.Compile(regexText, wxRE_EXTENDED);
if (rx.Matches(text, wxRE_NOTBOL)) {
int n = rx.GetMatchCount();
for (int i = 0; i < n; ++i) {
wxMessageBox(rx.GetMatch(text, i));
}
}
411デフォルトの名無しさん
2012/02/03(金) 02:34:29.06 >>410
レスありがとうございます。
>詰まったら詰まった現象を再現できる可能な限り短いコードを晒してくれ。
>バグってる長いコードなんて誰も読みたくはない。
次からそのように心がけます。
>今回も残念ながらwxWidgets以前の問題だ。
>正規表現に関してちゃんと勉強してくれ。
もう一度、正規表現のコンテンツを読みます。
コードを書いてくれてありがとうございます。
参考にします。
しばらく時間がかかりそうですが、うまくいきましたら報告にきます。
ありがとうございました。
レスありがとうございます。
>詰まったら詰まった現象を再現できる可能な限り短いコードを晒してくれ。
>バグってる長いコードなんて誰も読みたくはない。
次からそのように心がけます。
>今回も残念ながらwxWidgets以前の問題だ。
>正規表現に関してちゃんと勉強してくれ。
もう一度、正規表現のコンテンツを読みます。
コードを書いてくれてありがとうございます。
参考にします。
しばらく時間がかかりそうですが、うまくいきましたら報告にきます。
ありがとうございました。
412デフォルトの名無しさん
2012/02/03(金) 12:24:05.07413デフォルトの名無しさん
2012/02/04(土) 00:41:55.82 >>412
--ってあまりよくないようなので、i++に変更しました。
wxString regexText(L".?");
wxString text(L"abc123");
wxRegEx rx;
rx.Compile(regexText,wxRE_ADVANCED);
if (rx.IsValid()==TRUE)
{
if (rx.Matches(text)) {
int n = rx.GetMatchCount();
for (int i = 0; i < n; ++i) {
wxMessageBox(rx.GetMatch(text, i));
}}}
上記コードでコンパイルしたところ、faild in GetMatch() invalid match indexというのはでなくなりました。
((count--)と実行していた行で、エラーが発生していました。)
最短一致 .?を期待しています。 このソースだとaだけが表示されて、forを抜けてしまいます。
.?なので、全ての文字の1文字か0文字で、一文字が検索されると認識しています。
私の認識では、6回メッセージが表示されると思っているのですが、この考えは間違っているのでしょうか?
a,b,c,1,2,3と 一文字ずつメッセージが表示されると思っているのですが・・・
それとも正規表現の場合、一つの文字列から検索する場合には一回のみしか検索しないのでしょうか?
ただ、GetMatchCountでヒットした回数と内容を覚えているような気もします・・・
正規表現もこれであっているかの自信もないのですが、どこに間違えがありますか?
教えてください。
--ってあまりよくないようなので、i++に変更しました。
wxString regexText(L".?");
wxString text(L"abc123");
wxRegEx rx;
rx.Compile(regexText,wxRE_ADVANCED);
if (rx.IsValid()==TRUE)
{
if (rx.Matches(text)) {
int n = rx.GetMatchCount();
for (int i = 0; i < n; ++i) {
wxMessageBox(rx.GetMatch(text, i));
}}}
上記コードでコンパイルしたところ、faild in GetMatch() invalid match indexというのはでなくなりました。
((count--)と実行していた行で、エラーが発生していました。)
最短一致 .?を期待しています。 このソースだとaだけが表示されて、forを抜けてしまいます。
.?なので、全ての文字の1文字か0文字で、一文字が検索されると認識しています。
私の認識では、6回メッセージが表示されると思っているのですが、この考えは間違っているのでしょうか?
a,b,c,1,2,3と 一文字ずつメッセージが表示されると思っているのですが・・・
それとも正規表現の場合、一つの文字列から検索する場合には一回のみしか検索しないのでしょうか?
ただ、GetMatchCountでヒットした回数と内容を覚えているような気もします・・・
正規表現もこれであっているかの自信もないのですが、どこに間違えがありますか?
教えてください。
414デフォルトの名無しさん
2012/02/04(土) 02:27:28.32 >正規表現の場合、一つの文字列から検索する場合には一回のみしか検索しないのでしょうか?
その通り。
むしろ前回の状態を記憶するとどうして思ったのかがよくわからない。
>GetMatchCountでヒットした回数と内容を覚えているような気もします
覚えてない。
1が返ってきたなら「この正規表現にマッチした集合は1つ」という意味しかない。
>正規表現もこれであっているか
あってる。
その通り。
むしろ前回の状態を記憶するとどうして思ったのかがよくわからない。
>GetMatchCountでヒットした回数と内容を覚えているような気もします
覚えてない。
1が返ってきたなら「この正規表現にマッチした集合は1つ」という意味しかない。
>正規表現もこれであっているか
あってる。
415デフォルトの名無しさん
2012/02/04(土) 12:58:33.95 >>414
レスありがとうございます。
>むしろ前回の状態を記憶するとどうして思ったのかがよくわからない。
http://www.adras.com/RegEx.t11993-147-1.html
このようなページを時々見かけまして、一回の検索で、reEmail.GetMatch(email, 1);のように複数
書いているので、見つかったものは全部読めると思っていました。
>覚えてない。
>1が返ってきたなら「この正規表現にマッチした集合は1つ」という意味しかない。
なるほど、一つしか見つかっていないのですね。
>あってる。
了解です。
疑問なのですが、"(raw)(H24.2.4)北海道で撮影しました。"
という文字列を正規表現で検索した場合に、"北海道で撮影しました。"という文字列に
変換したい場合には、wxRegExを使用する場合には、以下の流れになるのでしょうか?
1・ \(.*?\)で、上記文章を最短一致で検索
2・ (raw)が検索にかかるので、これを削除。
3・ 削除後の文字列"(H24.2.4)北海道で撮影しました。"を新規で、wxStringに格納。
4・ \(.*?\)で再度最短一で検索。
5・ (H24.2.4)が検索にかかるので、これを削除。
6・ 削除後の文字列"北海道で撮影しました。"を新規で、wxStringに格納。
wxRegExで最短一致で検索した場合に複数一致する場合があった場合。
マッチした部分の削除・置き換えを行いたい場合はこのような流れにするしかないのでしょうか?
教えてください。
レスありがとうございます。
>むしろ前回の状態を記憶するとどうして思ったのかがよくわからない。
http://www.adras.com/RegEx.t11993-147-1.html
このようなページを時々見かけまして、一回の検索で、reEmail.GetMatch(email, 1);のように複数
書いているので、見つかったものは全部読めると思っていました。
>覚えてない。
>1が返ってきたなら「この正規表現にマッチした集合は1つ」という意味しかない。
なるほど、一つしか見つかっていないのですね。
>あってる。
了解です。
疑問なのですが、"(raw)(H24.2.4)北海道で撮影しました。"
という文字列を正規表現で検索した場合に、"北海道で撮影しました。"という文字列に
変換したい場合には、wxRegExを使用する場合には、以下の流れになるのでしょうか?
1・ \(.*?\)で、上記文章を最短一致で検索
2・ (raw)が検索にかかるので、これを削除。
3・ 削除後の文字列"(H24.2.4)北海道で撮影しました。"を新規で、wxStringに格納。
4・ \(.*?\)で再度最短一で検索。
5・ (H24.2.4)が検索にかかるので、これを削除。
6・ 削除後の文字列"北海道で撮影しました。"を新規で、wxStringに格納。
wxRegExで最短一致で検索した場合に複数一致する場合があった場合。
マッチした部分の削除・置き換えを行いたい場合はこのような流れにするしかないのでしょうか?
教えてください。
416デフォルトの名無しさん
2012/02/04(土) 13:59:31.73 スレ違い
417デフォルトの名無しさん
2012/02/04(土) 16:35:13.66 >正規表現
スレチだから詳しく書く気はない。
"北.+で.+た"
文字コードの問題はあるが、この正規表現は
"北海道で撮影しました"にも"北陸で撮影しました"にもマッチする。で、
"(北.+)で.+た"
とすると、全体がマッチした上で、北で始まり「で」で終わる文字列が
部分集合としてキャプチャされる。
>wxRegExのお話
GetMatchでindexを指定すると、0番目にマッチした全体が入り、
1番目以降はこの部分集合が順に入る。
例だとGetMatch(text, 1)で「北陸」か「北海道」が返ってくる。
たぶんその辺を理解してないんだろうなぁと思ったので
410で "\\[...\\](.)" ってわざわざキャプチャ入れたサンプルにしたのに・・・
>()で囲まれた部分を消去したい
wxString text(L"(raw)(H24.2.4)北海道で撮影しました。");
wxRegEx rx(L"\\(.*?\\)", wxRE_ADVANCED);
rx.ReplaceAll(&text, L"");
wxMessageBox(text);
スレチだから詳しく書く気はない。
"北.+で.+た"
文字コードの問題はあるが、この正規表現は
"北海道で撮影しました"にも"北陸で撮影しました"にもマッチする。で、
"(北.+)で.+た"
とすると、全体がマッチした上で、北で始まり「で」で終わる文字列が
部分集合としてキャプチャされる。
>wxRegExのお話
GetMatchでindexを指定すると、0番目にマッチした全体が入り、
1番目以降はこの部分集合が順に入る。
例だとGetMatch(text, 1)で「北陸」か「北海道」が返ってくる。
たぶんその辺を理解してないんだろうなぁと思ったので
410で "\\[...\\](.)" ってわざわざキャプチャ入れたサンプルにしたのに・・・
>()で囲まれた部分を消去したい
wxString text(L"(raw)(H24.2.4)北海道で撮影しました。");
wxRegEx rx(L"\\(.*?\\)", wxRE_ADVANCED);
rx.ReplaceAll(&text, L"");
wxMessageBox(text);
418デフォルトの名無しさん
2012/02/05(日) 01:18:16.61 >>416 417
>スレチだから詳しく書く気はない。
すいません。
>とすると、全体がマッチした上で、北で始まり「で」で終わる文字列が
>部分集合としてキャプチャされる。
キャプチャという用語を知りませんでした。
正規表現に関して、コンテンツよんでいたつもりのようでした。
で、gogleで調べたところたくさん記載しているサイトがありました。
>たぶんその辺を理解してないんだろうなぁと思ったので
>410で "\\[...\\](.)" ってわざわざキャプチャ入れたサンプルにしたのに・・・
一度だけ、その正規表現で検索したときに、マッチカウント2回表示されました。
で、エラーもでなくなったので、コードが正常なのでそういう風になっているのかと
軽く考えていました。
本来は自分で考えることだと思いますが、消去したいコードを書いてくれてありがとうございます。
正規表現の書き方を完全に理解しないとやりたいことができませんので、一旦正規表現をしばらく調べます。
キャプチャ・・・かなりすっきりしました。
本当にありがとうございました。
>スレチだから詳しく書く気はない。
すいません。
>とすると、全体がマッチした上で、北で始まり「で」で終わる文字列が
>部分集合としてキャプチャされる。
キャプチャという用語を知りませんでした。
正規表現に関して、コンテンツよんでいたつもりのようでした。
で、gogleで調べたところたくさん記載しているサイトがありました。
>たぶんその辺を理解してないんだろうなぁと思ったので
>410で "\\[...\\](.)" ってわざわざキャプチャ入れたサンプルにしたのに・・・
一度だけ、その正規表現で検索したときに、マッチカウント2回表示されました。
で、エラーもでなくなったので、コードが正常なのでそういう風になっているのかと
軽く考えていました。
本来は自分で考えることだと思いますが、消去したいコードを書いてくれてありがとうございます。
正規表現の書き方を完全に理解しないとやりたいことができませんので、一旦正規表現をしばらく調べます。
キャプチャ・・・かなりすっきりしました。
本当にありがとうございました。
419デフォルトの名無しさん
2012/02/06(月) 17:29:11.83 最新の2.8を使ってるが勝手にメモリリークしていくな
しかもデバッグDLLがコンパイルすら出来ないからテスト出来ないし
中身を作り替えたとか言ってたがものすごい劣化してるな
しかもデバッグDLLがコンパイルすら出来ないからテスト出来ないし
中身を作り替えたとか言ってたがものすごい劣化してるな
420デフォルトの名無しさん
2012/02/23(木) 01:19:16.26 GlassFishの質問てここでいいのかな。
421デフォルトの名無しさん
2012/02/24(金) 03:27:42.33 no
422デフォルトの名無しさん
2012/03/17(土) 10:54:20.81 >>246
>なんでいつも質問した後は簡単に見つかるんだろう…
安心しろ
それはRubber Duckingと言って有名なテクニックだ
http://www.aoky.net/articles/john_graham_cumming/talking_to_porgy.htm
>なんでいつも質問した後は簡単に見つかるんだろう…
安心しろ
それはRubber Duckingと言って有名なテクニックだ
http://www.aoky.net/articles/john_graham_cumming/talking_to_porgy.htm
423デフォルトの名無しさん
2012/03/18(日) 06:42:47.35 wxPythonで使える俺俺モジュールの作り方を教えてくだされ
424デフォルトの名無しさん
2012/03/23(金) 11:08:49.75 サイザーage
425デフォルトの名無しさん
2012/03/23(金) 11:24:00.67 コ
426デフォルトの名無しさん
2012/04/30(月) 23:02:22.27 hoshu
427デフォルトの名無しさん
2012/05/07(月) 23:39:02.10 wxFormBuilderで出力したコードで日本語が文字化けすると思ったら
BOMなしUTF8とVSの問題だった
BOMなしUTF8とVSの問題だった
428デフォルトの名無しさん
2012/05/19(土) 11:47:34.43 Windows, Linux環境で使えるアプリを作っているのだが
Windowsの場合はバイナリを配布すればいい
Linuxの場合はソース互換だからソースを配布するべきなんだよな?
Windowsの場合はバイナリを配布すればいい
Linuxの場合はソース互換だからソースを配布するべきなんだよな?
429428
2012/05/19(土) 11:51:05.86 あとwx2.9をFedora15 x86_64でビルドしてインストールしたんだが
なぜか実行時にwxCSConvでコケる。同じ症状の方おまへんか〜?
この現象はwx2.8では起きてない。
(gdb) backtrace
#0 0x000000000079c785 in wxCSConv::DoCreate() const ()
#1 0x000000000079d7bd in wxCSConv::wxCSConv(wxFontEncoding) ()
#2 0x000000000079dacd in wxGet_wxConvLocalPtr() ()
#3 0x00007ffff3a79018 in _GLOBAL__sub_I_strconv.cpp () from /usr/local/lib/libwx_baseu-2.9.so.3
#4 0x0000003c4400e2b6 in call_init.part.0 () from /lib64/ld-linux-x86-64.so.2
#5 0x0000003c4400e393 in _dl_init_internal () from /lib64/ld-linux-x86-64.so.2
#6 0x0000003c440016ca in _dl_start_user () from /lib64/ld-linux-x86-64.so.2
#7 0x0000000000000001 in ?? ()
#8 0x00007fffffffe815 in ?? ()
#9 0x0000000000000000 in ?? ()
なぜか実行時にwxCSConvでコケる。同じ症状の方おまへんか〜?
この現象はwx2.8では起きてない。
(gdb) backtrace
#0 0x000000000079c785 in wxCSConv::DoCreate() const ()
#1 0x000000000079d7bd in wxCSConv::wxCSConv(wxFontEncoding) ()
#2 0x000000000079dacd in wxGet_wxConvLocalPtr() ()
#3 0x00007ffff3a79018 in _GLOBAL__sub_I_strconv.cpp () from /usr/local/lib/libwx_baseu-2.9.so.3
#4 0x0000003c4400e2b6 in call_init.part.0 () from /lib64/ld-linux-x86-64.so.2
#5 0x0000003c4400e393 in _dl_init_internal () from /lib64/ld-linux-x86-64.so.2
#6 0x0000003c440016ca in _dl_start_user () from /lib64/ld-linux-x86-64.so.2
#7 0x0000000000000001 in ?? ()
#8 0x00007fffffffe815 in ?? ()
#9 0x0000000000000000 in ?? ()
430デフォルトの名無しさん
2012/06/13(水) 22:49:56.47 EVT_CLOSE に対して Close(True) しても終了出来ません
431デフォルトの名無しさん
2012/06/25(月) 07:17:22.37432デフォルトの名無しさん
2012/07/04(水) 17:16:02.11 ほす
ttp://www.youtube.com/watch?v=8v52QIP4L9Y
ttp://www.youtube.com/watch?v=8v52QIP4L9Y
433デフォルトの名無しさん
2012/07/05(木) 16:29:10.99434デフォルトの名無しさん
2012/07/05(木) 16:30:39.73 wxWidgetsでShift_JISからUTF-8変換
ttp://nantonaku-shiawase.hatenablog.com/entry/2012/05/16/031005
wxNotebookとwxAuiNotebookの違い
ttp://nantonaku-shiawase.hatenablog.com/entry/20120211/1328967345
ttp://nantonaku-shiawase.hatenablog.com/entry/2012/05/16/031005
wxNotebookとwxAuiNotebookの違い
ttp://nantonaku-shiawase.hatenablog.com/entry/20120211/1328967345
435デフォルトの名無しさん
2012/07/08(日) 23:42:42.45436デフォルトの名無しさん
2012/07/09(月) 07:12:24.08 http://wxpython.org/docs/api/wx.CloseEvent-class.html
You should check whether the application is forcing the deletion of the window
using CanVeto(). If it returns False, you must destroy the window using wx.Window.Destroy.
If the return value is True, it is up to you whether you respond by destroying the window or not.
For example you may wish to display a message dialog prompting to save files or to cancel the close.
You should check whether the application is forcing the deletion of the window
using CanVeto(). If it returns False, you must destroy the window using wx.Window.Destroy.
If the return value is True, it is up to you whether you respond by destroying the window or not.
For example you may wish to display a message dialog prompting to save files or to cancel the close.
437デフォルトの名無しさん
2012/07/13(金) 19:00:38.12 ソースに
const char sjis[3] = {0x88, 0xa2, 0x00};
wxString s(sjis, wxCSConv(wxT("CP932")));
cout << s.mb_str(wxConvUTF8) << endl;
という部分があるとリンク時に下のようなエラーになります。
"hoge.sln" (Rebuild target) (1) ->
(hoge:Rebuild target) ->
hoge.obj : error LNK2001: 外部シンボル ""class wxMBConvUTF8 & wxConvUTF8" (
?wxConvUTF8@@3AAVwxMBConvUTF8@@A)" は未解決です。
hoge.obj : error LNK2001: 外部シンボル ""public: static unsigned int const
wxStringBase::npos" (?npos@wxStringBase@@2IB)" は未解決です。
..\hoge.exe : fatal error LNK1120: 外部参照 2 が未解決です。
何が足りないのでしょう?
const char sjis[3] = {0x88, 0xa2, 0x00};
wxString s(sjis, wxCSConv(wxT("CP932")));
cout << s.mb_str(wxConvUTF8) << endl;
という部分があるとリンク時に下のようなエラーになります。
"hoge.sln" (Rebuild target) (1) ->
(hoge:Rebuild target) ->
hoge.obj : error LNK2001: 外部シンボル ""class wxMBConvUTF8 & wxConvUTF8" (
?wxConvUTF8@@3AAVwxMBConvUTF8@@A)" は未解決です。
hoge.obj : error LNK2001: 外部シンボル ""public: static unsigned int const
wxStringBase::npos" (?npos@wxStringBase@@2IB)" は未解決です。
..\hoge.exe : fatal error LNK1120: 外部参照 2 が未解決です。
何が足りないのでしょう?
438デフォルトの名無しさん
2012/07/13(金) 20:37:03.69 ヘッダファイルの読み込みかライブラリのリンクを行ってない
VC++なんて捨ててMinGWでやろうぜ!
MinGW + EclipseCDTで環境用意すればいい
VC++なんて捨ててMinGWでやろうぜ!
MinGW + EclipseCDTで環境用意すればいい
439デフォルトの名無しさん
2012/07/13(金) 20:49:50.67 どのライブラリが足りないのか判らないんで
どのライブラリに含まれているかを教えろ
どのライブラリに含まれているかを教えろ
440デフォルトの名無しさん
2012/07/13(金) 21:49:44.49 >103-
ttp://diary.imou.to/~AoiMoe/2004.09/middle.html#2004.09.13
ttp://diary.imou.to/~AoiMoe/2004.09/middle.html#2004.09.13
441デフォルトの名無しさん
2012/07/14(土) 23:52:18.18 c++とwxWidgetsを勉強中です。
わからないことがあるので教えていただけませんか。
void functestFrame::OnButton2Click(wxCommandEvent& event)
{
wxString str1 = L"まっぎょ";
functestFrame::wxStringfunc(&str1);
}
void functestFrame::wxStringfunc(wxString* str)
{ wxMessageBox(*str);}
4-10はコンパイルと実行できました。
void functestFrame::OnButton3Click(wxCommandEvent& event)
{
wxArrayString temp1;
temp1.Add(wxT("ぽけもん"));
functestFrame::wxArrayStringfunc(&temp1);
}
void functestFrame::wxArrayStringfunc(wxArrayString *arraystring)
{
for (int i=0 ; i< *arraystring.GetCount() ; i++)
{*arraystring.Item(i);}
}
コンパイルエラーがでます。
C:\Users\x\Desktop\functest\functestMain.cpp||In member function 'void functestFrame::wxArrayStringfunc(wxArrayString*)':|
C:\Users\x\Desktop\functest\functestMain.cpp|169|error: request for member 'GetCount' in 'arraystring', which is of non-class type 'wxArrayString*'|
C:\Users\x\Desktop\functest\functestMain.cpp|170|error: request for member 'Item' in 'arraystring', which is of non-class type 'wxArrayString*'|
||=== Build finished: 2 errors, 0 warnings (0 minutes, 1 seconds) ===|
wxstringと同じ方法をしているつもりなのですが、どのようにすればコンパイルができるのでしょうか?
わからないことがあるので教えていただけませんか。
void functestFrame::OnButton2Click(wxCommandEvent& event)
{
wxString str1 = L"まっぎょ";
functestFrame::wxStringfunc(&str1);
}
void functestFrame::wxStringfunc(wxString* str)
{ wxMessageBox(*str);}
4-10はコンパイルと実行できました。
void functestFrame::OnButton3Click(wxCommandEvent& event)
{
wxArrayString temp1;
temp1.Add(wxT("ぽけもん"));
functestFrame::wxArrayStringfunc(&temp1);
}
void functestFrame::wxArrayStringfunc(wxArrayString *arraystring)
{
for (int i=0 ; i< *arraystring.GetCount() ; i++)
{*arraystring.Item(i);}
}
コンパイルエラーがでます。
C:\Users\x\Desktop\functest\functestMain.cpp||In member function 'void functestFrame::wxArrayStringfunc(wxArrayString*)':|
C:\Users\x\Desktop\functest\functestMain.cpp|169|error: request for member 'GetCount' in 'arraystring', which is of non-class type 'wxArrayString*'|
C:\Users\x\Desktop\functest\functestMain.cpp|170|error: request for member 'Item' in 'arraystring', which is of non-class type 'wxArrayString*'|
||=== Build finished: 2 errors, 0 warnings (0 minutes, 1 seconds) ===|
wxstringと同じ方法をしているつもりなのですが、どのようにすればコンパイルができるのでしょうか?
442デフォルトの名無しさん
2012/07/15(日) 11:07:19.04 >>441
ちょっとしたコードを書いてみた
http://pastebin.com/KCE8eyDe
コンパイルが通らない原因
wxArrayStringの通常変数とポインタ変数の違いがわかっていない
C++では実体に対しては「.」でアクセス、ポインタ変数に対しては「->」アロー演算子でアクセスする
参考:http://brain.cc.kogakuin.ac.jp/~kanamaru/lecture/prog1/13-03.html
× arraystring.GetCount();
○ arraystring->GetCount();
あと関数の入り口で「wxArrayString *arraystring」と宣言されているならば
その関数内部では「*arraystring」ではなく「arraystring」でアクセスする
「*」をつけてしまうと「arraystring」のポインタのポインタになってしまう
void functestFrame::wxArrayStringfunc(wxArrayString *arraystring)
{
for (int i=0 ; i< *arraystring.GetCount() ; i++)
{*arraystring.Item(i);} ← ここもいまいち何をしようとしてるかわからん
}
ちょっとしたコードを書いてみた
http://pastebin.com/KCE8eyDe
コンパイルが通らない原因
wxArrayStringの通常変数とポインタ変数の違いがわかっていない
C++では実体に対しては「.」でアクセス、ポインタ変数に対しては「->」アロー演算子でアクセスする
参考:http://brain.cc.kogakuin.ac.jp/~kanamaru/lecture/prog1/13-03.html
× arraystring.GetCount();
○ arraystring->GetCount();
あと関数の入り口で「wxArrayString *arraystring」と宣言されているならば
その関数内部では「*arraystring」ではなく「arraystring」でアクセスする
「*」をつけてしまうと「arraystring」のポインタのポインタになってしまう
void functestFrame::wxArrayStringfunc(wxArrayString *arraystring)
{
for (int i=0 ; i< *arraystring.GetCount() ; i++)
{*arraystring.Item(i);} ← ここもいまいち何をしようとしてるかわからん
}
443デフォルトの名無しさん
2012/07/15(日) 11:14:03.55 あと細かいことを言うと文字列の宣言を以下のようにしているようだが
wxString str1 = L"まっぎょ";
せっかく用意されているので「wxT」マクロを使った方がいい
wxString str1 = wxT("まっぎょ");
これでどのような環境でも日本語が変数に入れられるはず
wxString str1 = L"まっぎょ";
せっかく用意されているので「wxT」マクロを使った方がいい
wxString str1 = wxT("まっぎょ");
これでどのような環境でも日本語が変数に入れられるはず
444デフォルトの名無しさん
2012/07/15(日) 21:32:47.77 >>442
ありがとうございます。
サンプルをコンパイルして、実行できました。
通常変数と、ポインタ変数ですか。
リンク先を読んで理解します。
すみません、あと一点教えてください。
wxStringは、通常変数? wxArrayStringは、ポインタ変数?を利用しているというころでしょうか?
下記マニュアルをどのように調べればよいのでしょうか?
http://wxwindowsjp.sourceforge.jp/docs/html/wx/wx368.htm
http://wxwindowsjp.sourceforge.jp/docs/html/wx/wx32.htm
ありがとうございます。
サンプルをコンパイルして、実行できました。
通常変数と、ポインタ変数ですか。
リンク先を読んで理解します。
すみません、あと一点教えてください。
wxStringは、通常変数? wxArrayStringは、ポインタ変数?を利用しているというころでしょうか?
下記マニュアルをどのように調べればよいのでしょうか?
http://wxwindowsjp.sourceforge.jp/docs/html/wx/wx368.htm
http://wxwindowsjp.sourceforge.jp/docs/html/wx/wx32.htm
445デフォルトの名無しさん
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というメソッドをつかっている
自分が欲しい機能をクラスリファレンスで探し、クラスを宣言してどのように使えるかは
メソッド部分を見れば良いということ。
>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の方が配布サイズ小さくなるな
447デフォルトの名無しさん
2012/07/16(月) 10:56:52.47 逆でわ?
448デフォルトの名無しさん
2012/07/16(月) 11:06:12.02 DLLリンクで作るともちろんexeは小さくなるけど
DLLも一緒に配布するとなるとでかくなるって意味
DLLも一緒に配布するとなるとでかくなるって意味
449デフォルトの名無しさん
2012/07/16(月) 11:08:34.14 そりゃあんたのプログラムの規模が小さいだけでわ?
450デフォルトの名無しさん
2012/07/16(月) 11:12:44.68 いや先入観無しで聞いてくれ
最初はそう思ってたんだが
確かにDLLリンクで作るとexeはめっちゃ小さい
しかし実際そこそこの規模のプログラム書いて
staticで作ってみて出来たexeが
(前者のexeに必要なDLLを合わせたサイズに比べると)
意外と小さい
最初はそう思ってたんだが
確かにDLLリンクで作るとexeはめっちゃ小さい
しかし実際そこそこの規模のプログラム書いて
staticで作ってみて出来たexeが
(前者のexeに必要なDLLを合わせたサイズに比べると)
意外と小さい
451デフォルトの名無しさん
2012/07/16(月) 11:15:19.52 exe だけ配布汁!
452デフォルトの名無しさん
2012/07/16(月) 11:22:57.42 そりゃDLLはwxWidgets全部入りだしな
453デフォルトの名無しさん
2012/07/16(月) 12:51:54.82 規模によるとしか言いようがない
454デフォルトの名無しさん
2012/07/16(月) 12:57:22.32 MFC 最強ですねわかります
455デフォルトの名無しさん
2012/07/16(月) 13:25:13.34 DLLはwxWidgetsのシンボル全部入ってるけど、
staticリンクだと本体が使うシンボルだけ.aから
引っ張ってくるんだから、そうなるのは当たり前
staticリンクだと本体が使うシンボルだけ.aから
引っ張ってくるんだから、そうなるのは当たり前
456デフォルトの名無しさん
2012/07/16(月) 14:12:18.33 規模によるとしか言いようがない
457デフォルトの名無しさん
2012/07/16(月) 14:13:00.02 DLL ってなんのためにあるんだっけ?
458デフォルトの名無しさん
2012/07/16(月) 14:13:47.36 ワロタ
459デフォルトの名無しさん
2012/07/16(月) 14:34:56.55 wxWidgetsで作ったexeが一個(あるいは少数)しかないときはそうなるのは当たり前。
DLLのメリットが生きるのはOS等のようにexeが無数にあってさらに共通部分(API)が多い場合。
趣味でやってるならSTATICでいいんじゃね?
DLLのメリットが生きるのはOS等のようにexeが無数にあってさらに共通部分(API)が多い場合。
趣味でやってるならSTATICでいいんじゃね?
460デフォルトの名無しさん
2012/07/16(月) 14:56:37.82 めずらしくwxWidgetsスレが伸びている・・・
461デフォルトの名無しさん
2012/07/16(月) 15:55:58.62 規模によるとしか言いようがない
462デフォルトの名無しさん
2012/07/16(月) 15:56:38.27 2.9.4 出たからな
463デフォルトの名無しさん
2012/07/16(月) 16:19:03.02 2.9.4 はまだ Development だよね。
いつ Stable になるんだよ、まったく。
いつ Stable になるんだよ、まったく。
464デフォルトの名無しさん
2012/07/16(月) 16:28:29.73 馬鹿には無理
465デフォルトの名無しさん
2012/07/16(月) 17:57:49.06 馬鹿には無理さんは帰って、どうぞ
466437
2012/07/16(月) 19:32:54.08 事故解決しました。
リンカ設定ではディレクトリで vc_dll の方を指定していたのですが、
PreprocessorDefinitions に WXUSINGDLL が抜けていたため、
static link しようとしてシンボル未解決になっていたようです。
リンカ設定ではディレクトリで vc_dll の方を指定していたのですが、
PreprocessorDefinitions に WXUSINGDLL が抜けていたため、
static link しようとしてシンボル未解決になっていたようです。
467デフォルトの名無しさん
2012/07/16(月) 19:53:09.82 つ ttp://wiki.wxwidgets.org/Microsoft_Visual_C%2B%2B_Guide#Project_properties
468デフォルトの名無しさん
2012/07/16(月) 19:55:20.02 そうそう。
それです。
それです。
469デフォルトの名無しさん
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渡しの場合かつその機能を使う
場合は、->を使うんですね。
ありがとうございました。
レスありがとうございます。
>>その質問はそもそもちょっとポイントがずれている
ポインタ渡し、参照渡しを調べていたのですが、勘違いしていたようです。
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渡しの場合かつその機能を使う
場合は、->を使うんですね。
ありがとうございました。
470デフォルトの名無しさん
2012/07/18(水) 09:07:55.01 全然違うw
C++の初心者用入門本読んで勉強汁
C++の初心者用入門本読んで勉強汁
471デフォルトの名無しさん
2012/07/18(水) 13:24:00.41 wxWCharBuffer の使い方が良く判りません。
472デフォルトの名無しさん
2012/07/23(月) 08:38:27.68 過疎
473デフォルトの名無しさん
2012/07/23(月) 13:34:00.85 過疎かあヌ
474デフォルトの名無しさん
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 ) );を追加してビルドして
実行しても何も表示されません。
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 ) );を追加してビルドして
実行しても何も表示されません。
475デフォルトの名無しさん
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))
ここのコンストラクタの後の、: の演算子?であっているのかどうかも不明なのですが・・・
これは何をしているのでしょうか?
実際は、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のコンストラクタを呼び出している。
MyFrameは多分継承したクラスなので、基底クラスであるwxFrameのコンストラクタを呼び出している。
477デフォルトの名無しさん
2012/08/10(金) 14:59:37.21 あげちゃった・・・。Orz
478デフォルトの名無しさん
2012/08/10(金) 15:15:07.17479デフォルトの名無しさん
2012/08/10(金) 16:12:34.61 若き日のヴィドゲンシュタインがよみがえったように
480デフォルトの名無しさん
2012/08/10(金) 16:21:56.40 連結グラフ G=(V,E) と重み d:E->R+が与えられたとき 最小木を求めよ。
481デフォルトの名無しさん
2012/08/14(火) 17:06:28.44 演算子?ではありませぬ
482デフォルトの名無しさん
2012/08/28(火) 18:53:02.77 初期化リストじゃね?
483デフォルトの名無しさん
2012/08/31(金) 17:18:28.13 wxStaticBitmapに透過png画像を指定して描画しても、
透過になってくれてないようなのですが、
単にwx.BITMAP_TYPE_PNGで読んだものを貼るだけじゃ駄目なんでしょうか?
透過になってくれてないようなのですが、
単にwx.BITMAP_TYPE_PNGで読んだものを貼るだけじゃ駄目なんでしょうか?
484デフォルトの名無しさん
2012/08/31(金) 18:43:26.98 wxInitAllImageHandlers() の呼び忘れや
png を作成したソフトが原因で正常に透過処理されないとかかなあ
サンプルのimage参考にするといいと思うよ
png を作成したソフトが原因で正常に透過処理されないとかかなあ
サンプルのimage参考にするといいと思うよ
485デフォルトの名無しさん
2012/08/31(金) 22:09:21.20486デフォルトの名無しさん
2012/08/31(金) 23:26:46.41 スライド565ページって、出版じゃないのかー。
それでも俺は原書を選ぶぜ。
それでも俺は原書を選ぶぜ。
487デフォルトの名無しさん
2012/08/31(金) 23:48:10.30 webはスライドだけど
savefileボタン押したら
普通にPDFが落ちて来た
savefileボタン押したら
普通にPDFが落ちて来た
488デフォルトの名無しさん
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のロビンさんが「まだ直ってないの?」みたいなこと書いてた。誰か直して。)
なぜか反映されん、なんでだぜ
wx 2.9.4使ってみた
・GTK環境 wx2.8でSetSizer呼んだ後Fit呼ぶと異常終了するバグが2.9.4では直ってた
・同じくGTK環境 wxListctrlでwxLIST_AUTOSIZEしても、自動でカラムの幅が調整されない
(なんかメーリス見たらwxPythonのロビンさんが「まだ直ってないの?」みたいなこと書いてた。誰か直して。)
489デフォルトの名無しさん
2012/09/01(土) 04:53:40.84 GTKは糞
490デフォルトの名無しさん
2012/09/05(水) 19:33:35.92 GTK+ は多段タブも実現できんのだな
WindowsにできてGTKにできんことが結構見えてきた
ミゲルさんもこんなこと書いてるし、Linuxのデスクトップはダメだな
http://www.yamdas.org/column/technique/linuxdesktopj.html
WindowsにできてGTKにできんことが結構見えてきた
ミゲルさんもこんなこと書いてるし、Linuxのデスクトップはダメだな
http://www.yamdas.org/column/technique/linuxdesktopj.html
491デフォルトの名無しさん
2012/09/06(木) 09:29:27.19492デフォルトの名無しさん
2012/09/06(木) 09:57:24.07 何度でも言うよ
欠かさず言うよ
GTKは糞
欠かさず言うよ
GTKは糞
493デフォルトの名無しさん
2012/09/06(木) 17:47:43.41 >>492
おっさんなにやってん?
おっさんなにやってん?
494デフォルトの名無しさん
2012/10/15(月) 03:49:13.19 eNprdGhEhnH6XMi8RgcFfQj71L1t6+FS
Cvr6jXc0G/c3BgLhfriwvl5No4NejUJz
LpIZQVwwPY0OQOkaBSBnDlRujgKYC4ZQ
ZfoKYGVzkkEcDYX4xjnxmo0OzXUKU/L6
1jadbDo7bfP0uVwwA8FqG4MgjH01YAMa
A7kgNND1LQtgroC6Kb4xDiyr1BiAAjP1
9JpzFQBRXmeP
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
498デフォルトの名無しさん
2012/11/18(日) 17:34:28.86 wxWidgetsって、gtkを呼び出す抽象的なレイヤになるの?
499デフォルトの名無しさん
2012/11/18(日) 18:00:39.95 OSとかbuildしたときの設定による
Windows版なら今は直接Win32API呼んでるはず
Windows版なら今は直接Win32API呼んでるはず
500デフォルトの名無しさん
2012/11/19(月) 00:34:29.96501デフォルトの名無しさん
2012/11/19(月) 02:31:32.83 gtkを呼び出す抽象的なレイヤなんてないよ
502デフォルトの名無しさん
2012/11/20(火) 14:03:35.35 wxGtkって何なんだ?
503デフォルトの名無しさん
2012/11/20(火) 14:05:16.89 具象的
504デフォルトの名無しさん
2012/11/20(火) 16:40:02.72 gtkをwxWidgetのバインディングで呼出してんだから抽象的じゃないの?
具象的だと日本語おかしくね?
具象的だと日本語おかしくね?
505デフォルトの名無しさん
2012/11/20(火) 16:46:58.65 gu
taite
ki
taite
ki
506デフォルトの名無しさん
2012/11/22(木) 21:38:02.68 >>505
はいはいワロス
はいはいワロス
507デフォルトの名無しさん
2012/11/22(木) 23:26:03.48 >>506
ひでー
ひでー
508デフォルトの名無しさん
2013/01/10(木) 03:31:25.47509デフォルトの名無しさん
2013/01/10(木) 07:36:12.49 何度でも言うよ
欠かさず言うよ
GTKは糞
欠かさず言うよ
GTKは糞
510デフォルトの名無しさん
2013/01/10(木) 16:50:22.28 マイナーGUIスレを見たけど、以前はFOXが人気だったんだね
まだ息してるのかな
まだ息してるのかな
511デフォルトの名無しさん
2013/01/10(木) 16:53:16.15 今はもう、QtかWxWidgetsの二択にしか見えない。気のせい?
512デフォルトの名無しさん
2013/01/11(金) 08:37:58.62 FortranプログラムのGUIシェルをwxWidgetsで作ろうとsampleのexecを改造しているけれどよくわからない。
いい本ないでしょうか。
最近wxPythonの本が出ましたがパイプまでは書いていないので…
いい本ないでしょうか。
最近wxPythonの本が出ましたがパイプまでは書いていないので…
513デフォルトの名無しさん
2013/01/11(金) 09:01:20.21 eNprdGhEhnH6XMi8RgcFfQj71L1t6+FS
Cvr6jXc0G/c3BgLhfriwvl5No4NejUJz
LpIZQVwwPY0OQOkaBSBnDlRujgKYC4ZQ
ZfoKYGVzkkEcDYX4xjnxmo0OzXUKU/L6
1jadbDo7bfP0uVwwA8FqG4MgjH01YAMa
A7kgNND1LQtgroC6Kb4xDiyr1BiAAjP1
9JpzFQBRXmeP
Cvr6jXc0G/c3BgLhfriwvl5No4NejUJz
LpIZQVwwPY0OQOkaBSBnDlRujgKYC4ZQ
ZfoKYGVzkkEcDYX4xjnxmo0OzXUKU/L6
1jadbDo7bfP0uVwwA8FqG4MgjH01YAMa
A7kgNND1LQtgroC6Kb4xDiyr1BiAAjP1
9JpzFQBRXmeP
514デフォルトの名無しさん
2013/01/13(日) 12:10:17.65 64bit版MinGWでwxWidgetsコンパイルしてるけど
作ったバイナリが起動すらしないので死にそう
作ったバイナリが起動すらしないので死にそう
515デフォルトの名無しさん
2013/01/14(月) 01:59:27.93 コンパイルできた
64bitネイティブアプリや、どや
64bitネイティブアプリや、どや
516デフォルトの名無しさん
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個指定すると何も取得されません。
指定方法が悪いと思うのですが、どのようにすればいいのでしょうか?
教えてください。
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個指定すると何も取得されません。
指定方法が悪いと思うのですが、どのようにすればいいのでしょうか?
教えてください。
517デフォルトの名無しさん
2013/01/15(火) 06:14:19.90518デフォルトの名無しさん
2013/01/15(火) 06:31:29.95 分からないならレスしないでください
519デフォルトの名無しさん
2013/01/15(火) 17:15:14.30520デフォルトの名無しさん
2013/01/16(水) 15:50:20.31 なんで
ttp://wiki.wxwidgets.org/Beech:Using_common_dialogs
を参考にすると
wxDir::GetAllFiles(dir , &filename ,wxT("*.csv;*.txt"));
が出てくるんだろ
基地外か
ttp://wiki.wxwidgets.org/Beech:Using_common_dialogs
を参考にすると
wxDir::GetAllFiles(dir , &filename ,wxT("*.csv;*.txt"));
が出てくるんだろ
基地外か
521デフォルトの名無しさん
2013/01/16(水) 23:31:49.99 wxWidgetsを使おうとしてる時点でオカシイのだ(・∀・)
522デフォルトの名無しさん
2013/01/17(木) 18:18:55.83 童貞乙
523デフォルトの名無しさん
2013/01/19(土) 07:42:35.24 この道はいつか来た道♪ああ そうだよあかしやの花が咲いてる
524デフォルトの名無しさん
2013/01/20(日) 02:49:05.26 windowsで変な抽象レイヤなんて触るなら、c#使った方がマシ
525デフォルトの名無しさん
2013/01/21(月) 20:07:51.79 wxRubyでWindowsのイベントを捕まえたいのですがどのようにすれば出来ますか?
C++なんかだとMSWWindowProcをオーバーライドすることで出来るみたいですが
wxRubyには見あたらないような・・・
C++なんかだとMSWWindowProcをオーバーライドすることで出来るみたいですが
wxRubyには見あたらないような・・・
526デフォルトの名無しさん
2013/01/21(月) 23:44:55.73 Ruby を Windows で使う人って()
527デフォルトの名無しさん
2013/01/21(月) 23:59:56.58 【ActiveScript】RubyをWindowsで使うスレ【GUI】
http://toro.2ch.net/test/read.cgi/tech/1155031689/
http://toro.2ch.net/test/read.cgi/tech/1155031689/
528デフォルトの名無しさん
2013/01/23(水) 01:57:17.09 >>521
MFCを直に触りたくないとき、他に候補なんてある?
MFCを直に触りたくないとき、他に候補なんてある?
529デフォルトの名無しさん
2013/01/23(水) 04:51:35.91 Qt
530デフォルトの名無しさん
2013/01/23(水) 07:01:30.47 CLX, GTK+, Qt, Tk, FLTK, FOX
C言語/C++ベースおよびマルチ言語ベース
ウィジェット・ツールキット - Wikipedia
C言語/C++ベースおよびマルチ言語ベース
ウィジェット・ツールキット - Wikipedia
531デフォルトの名無しさん
2013/01/23(水) 07:03:10.89 Agar
CEGUI
GLUI
Juce
Ultimate++
Visual Component Framework (VCF)
YAAF
CEGUI
GLUI
Juce
Ultimate++
Visual Component Framework (VCF)
YAAF
532デフォルトの名無しさん
2013/01/30(水) 12:24:11.63 MFCならWindowsのみで動けばいいんだろ
WTL
OWLNext
WTL
OWLNext
533デフォルトの名無しさん
2013/01/31(木) 05:40:10.73 このひとまた変な本出してるな
ttp://www.amazon.co.jp/dp/4877832890/
このひとの他の本酷かったから買うつもり無いけど
ttp://www.amazon.co.jp/dp/4877832890/
このひとの他の本酷かったから買うつもり無いけど
534デフォルトの名無しさん
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さん。。。
http://docs.wxwidgets.org/stable/wx_wxinputstream.html#wxinputstreamlastread
wxInputStream::LastRead
size_t LastRead() const
LastReadをlinuxで使うと常に0で返ってくる。
6年前に修正されてるはずだけどbranchに入ってないからバグったまんまですかVZさん。。。
535デフォルトの名無しさん
2013/02/28(木) 14:13:49.27536デフォルトの名無しさん
2013/02/28(木) 14:15:06.81 そうか、 2.8のブランチには入ってるけど2.9には反映されてないのか、どちらにせよだめぽ
537デフォルトの名無しさん
2013/03/01(金) 00:54:34.59 wxInputStreamなんて使わんから
538デフォルトの名無しさん
2013/03/01(金) 01:16:17.90 馬鹿には無理
539デフォルトの名無しさん
2013/03/01(金) 08:18:29.29 wxWidgets は正規表現とか、
文字コードの変換がいまいち信用出来ないので、
window のフレームワークだけに使って、
基本的なロジックは boost とかで済ますのが正解。
文字コードの変換がいまいち信用出来ないので、
window のフレームワークだけに使って、
基本的なロジックは boost とかで済ますのが正解。
540デフォルトの名無しさん
2013/03/16(土) 15:59:13.75 wxwidgetsのListCtrlのカラムに直接描画したいんだけどどうしたらいい?
具体的には、ダウンローダなどによくあるようなダウンロード状況を表す
横棒のグラフに%が表示されてるような奴なんだけど
具体的には、ダウンローダなどによくあるようなダウンロード状況を表す
横棒のグラフに%が表示されてるような奴なんだけど
541デフォルトの名無しさん
2013/03/16(土) 16:03:03.35 馬鹿には無理
542デフォルトの名無しさん
2013/03/31(日) 11:08:01.89543デフォルトの名無しさん
2013/03/31(日) 13:02:54.41544デフォルトの名無しさん
2013/04/01(月) 01:17:29.35545デフォルトの名無しさん
2013/04/01(月) 01:21:48.05 wxWidgetsってVisualStudio2012で動く?
546デフォルトの名無しさん
2013/04/01(月) 05:07:51.79 >>545
普通にVS2012でビルドして使ってるよ
普通にVS2012でビルドして使ってるよ
547デフォルトの名無しさん
2013/04/01(月) 07:42:14.94 昨晩発見、mingw-w64-dgnってトコのパッチ当てたらx64MinGWでもビルド出来た。
gccはTDM4.7.1、時間が無いのでconfigureのオプションくっつけて無いけど一発で通った
具体的には、textentry.cppの#include <shlguid.h>を削除するだけ
gccはTDM4.7.1、時間が無いのでconfigureのオプションくっつけて無いけど一発で通った
具体的には、textentry.cppの#include <shlguid.h>を削除するだけ
548デフォルトの名無しさん
2013/04/04(木) 14:07:26.83 ハードディスクのMBR領域をバックアップしたいんだけど
どうやってプログラム書いたらいいかな
Linuxのときは/dev/sdaを開いて読むだけだったけど
Windowsとコード一緒にできない
どうやってプログラム書いたらいいかな
Linuxのときは/dev/sdaを開いて読むだけだったけど
Windowsとコード一緒にできない
549デフォルトの名無しさん
2013/04/04(木) 14:19:00.69 共通の方法は無いかって話?
550デフォルトの名無しさん
2013/04/04(木) 15:10:10.41 dd.exe のソース見ると良い
551デフォルトの名無しさん
2013/04/04(木) 15:49:15.97 そうするわ
でもパスカルわかんねーんだよな・・・
でもパスカルわかんねーんだよな・・・
552デフォルトの名無しさん
2013/04/04(木) 16:02:05.02 wxWidgets 関係の話?
553デフォルトの名無しさん
2013/04/09(火) 09:13:04.65 wxPythonなんですがベジエ曲線を書くにはどうすれば良いですか?
554デフォルトの名無しさん
2013/04/09(火) 18:52:10.99 描画系クラスならwxDC使えばいいんじゃないかなあ
http://docs.wxwidgets.org/2.8/wx_wxdc.html
http://docs.wxwidgets.org/2.8/wx_wxdc.html
555デフォルトの名無しさん
2013/04/10(水) 11:56:17.56556デフォルトの名無しさん
2013/06/24(月) 15:12:38.36 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
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:08.93 Mac OSX LionだとwxWidgets 2.8 がビルドできない・・・
wxWidgets 2.9ビルドするとダイナミックリンクライブラリが一部作成されない・・・
Mac PortのwxWidgets-devをダウンロード するのが一番良さげ
あとMac OSXでpthreadをバイナリにリンクさせたらいきなり実行ファイルが落ちやがる
罠多すぎだろあのOS
wxWidgets 2.9ビルドするとダイナミックリンクライブラリが一部作成されない・・・
Mac PortのwxWidgets-devをダウンロード するのが一番良さげ
あとMac OSXでpthreadをバイナリにリンクさせたらいきなり実行ファイルが落ちやがる
罠多すぎだろあのOS
558デフォルトの名無しさん
2013/06/26(水) 19:01:52.04 ttp://www.HackInt0sH.org/
559デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.AN wxWidgets-2.9.5では>>429で言ってたバグが直ってるぞ、やったぜ
560デフォルトの名無しさん
2013/08/24(土) NY:AN:NY.AN wxってlispで使えますか?
561デフォルトの名無しさん
2013/08/24(土) NY:AN:NY.AN 馬鹿Lisperには無理
562デフォルトの名無しさん
2013/08/24(土) NY:AN:NY.AN lispなんて使ってかっこつけやがって
563デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.AN みなさんお世話になりました
明日で2ch終了らしいので
今のうちに最後のご挨拶をしておきます
明日で2ch終了らしいので
今のうちに最後のご挨拶をしておきます
564デフォルトの名無しさん
2013/08/31(土) NY:AN:NY.AN wxWidgetsのコミッタのVadim ZeitlinがC++11でwxWidgets書いてるぞ
wxWidgets and C++ 11
http://wxwidgets.blogspot.com/2013/08/wxwidgets-and-c-11.html
wxWidgets and C++ 11
http://wxwidgets.blogspot.com/2013/08/wxwidgets-and-c-11.html
565デフォルトの名無しさん
2013/08/31(土) NY:AN:NY.AN 時既におすし
566デフォルトの名無しさん
2013/09/06(金) 17:26:06.71567デフォルトの名無しさん
2013/09/06(金) 23:08:20.72568デフォルトの名無しさん
2013/09/11(水) 00:44:38.34 Firefoxって知ってる?
569デフォルトの名無しさん
2013/09/20(金) 22:19:19.81 mozillaに出来なくともgoogleになら出来る
570デフォルトの名無しさん
2013/10/10(木) 10:11:38.40 wcSVG
571デフォルトの名無しさん
2013/10/16(水) 23:19:09.83 3.0.0-RC1
572デフォルトの名無しさん
2013/10/17(木) 08:33:10.45 wxD
573デフォルトの名無しさん
2013/10/17(木) 12:18:17.29574デフォルトの名無しさん
2013/10/20(日) 16:58:10.15 wxTcl
575デフォルトの名無しさん
2013/11/05(火) 22:48:07.34 3もRC2まで行ってるし、次は今月中に正式版出るかな
576デフォルトの名無しさん
2013/11/05(火) 23:10:06.75 出たとしたらLinuxのパッケージにwx-3.0が出て使えるようになる
楽しみ
楽しみ
577デフォルトの名無しさん
2013/11/13(水) 21:36:52.45 3.0.0キテタ━━ヾ(゚∀゚)ノ━━!!
578デフォルトの名無しさん
2013/11/14(木) 22:26:30.66 おいおい3.0だぞ?出たんだぞ?なんでこんなに盛り上がんないんだよ…
579デフォルトの名無しさん
2013/11/14(木) 23:36:17.18 メインの機能追加がUnicode対応だからなぁ
今までも別に日本語使えなかったわけではないし
今までも別に日本語使えなかったわけではないし
580デフォルトの名無しさん
2013/11/14(木) 23:52:35.30 何言ってだこいつ
unicodeは前から使えてるっての
所感
・Mac向けビルドの安定化
・wxwebviewが全ポートで使える
→ ネットワーク接続して、html, Javascriptの解釈可能に
・aui系のバグ修正と見た目の品質向上
・c++11, clang対応
・その他即死系のバグ修正
間違ってたらすまん
とりあえず2.9で出てたバグは直ってるはず
unicodeは前から使えてるっての
所感
・Mac向けビルドの安定化
・wxwebviewが全ポートで使える
→ ネットワーク接続して、html, Javascriptの解釈可能に
・aui系のバグ修正と見た目の品質向上
・c++11, clang対応
・その他即死系のバグ修正
間違ってたらすまん
とりあえず2.9で出てたバグは直ってるはず
581デフォルトの名無しさん
2013/11/15(金) 00:03:58.47582デフォルトの名無しさん
2013/11/15(金) 00:55:39.31 MinGW gcc + wxWidgets 2.8.12で作っていたプログラムを3.0.0で作り直したら、
ウィンドウリサイズ時のwxStaticText、wxCheckBox、wxListBoxのフリッカーが見るに耐えんレベルになった。
かと言ってSetDoubleBufferを使うとリサイズがモタつく上に、何故かwxRadioBoxの枠線が消えるんだよなー。
仕方ない、一つ一つwxEVT_ERASE_BACKGROUNDを潰す作業を初めるか…。
ウィンドウリサイズ時のwxStaticText、wxCheckBox、wxListBoxのフリッカーが見るに耐えんレベルになった。
かと言ってSetDoubleBufferを使うとリサイズがモタつく上に、何故かwxRadioBoxの枠線が消えるんだよなー。
仕方ない、一つ一つwxEVT_ERASE_BACKGROUNDを潰す作業を初めるか…。
583デフォルトの名無しさん
2013/11/15(金) 03:59:07.98 gcc4.8で動くなら使う
x86_64-w64-mingw32じゃ、2.9はとうとうビルドさえ無理だった
x86_64-w64-mingw32じゃ、2.9はとうとうビルドさえ無理だった
584デフォルトの名無しさん
2013/11/15(金) 04:14:31.91 4.8だとやっぱりcc1plusが停止した、しかも2.9と同じファイル
公式から落としてきたライブラリ使ってもリンクに失敗
4.7ならライブラリのビルドもリンクも問題なし
公式から落としてきたライブラリ使ってもリンクに失敗
4.7ならライブラリのビルドもリンクも問題なし
585デフォルトの名無しさん
2013/11/15(金) 05:11:08.20 あ、やっぱ出来た
パラレル無しでビルドするか>>543の
CXXFLAGS='-fno-keep-inline-dllexport'
をつけると大丈夫みたい、後者だと1度止まるけど再ビルドすれば通るしサンプルもビルド出来た
パラレル無しでビルドするか>>543の
CXXFLAGS='-fno-keep-inline-dllexport'
をつけると大丈夫みたい、後者だと1度止まるけど再ビルドすれば通るしサンプルもビルド出来た
586デフォルトの名無しさん
2013/11/15(金) 06:44:39.98 連投失礼、>>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だけ強制終了した(ビルドは可能)
当方の環境、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:00.37 VCでやったほうが実行速度速くなるんじゃないの
588デフォルトの名無しさん
2013/11/15(金) 07:40:36.25 VC++?知らない子ですね…
589デフォルトの名無しさん
2013/11/15(金) 07:53:20.59 損してると思うよ
590デフォルトの名無しさん
2013/11/16(土) 00:14:03.66 constexprも使えないコンパイラは要らないんですよ
591デフォルトの名無しさん
2013/11/16(土) 00:58:40.41 メタプログラミングって奴でしょ?
何が何だかサッパリ分からないよー。
つまり俺にはまだ早い代物だという事は承知してるが、
どういう用途で使うものなのか教えてほしい。
何が何だかサッパリ分からないよー。
つまり俺にはまだ早い代物だという事は承知してるが、
どういう用途で使うものなのか教えてほしい。
592デフォルトの名無しさん
2013/11/16(土) 03:33:03.68 wxと同時に浸かって委員会
593デフォルトの名無しさん
2013/11/16(土) 03:39:24.39 GCC3xの頃はvc++の方が速かった気がするけど、4.6から急激に速度が向上した気がする
あくまで自作プログラムでの話だけどね
ただ、gccでビルドされる様々なテストプロブラム見てるとvc++でビルドって安全性って意味
でヤバいんじゃないかって思っちゃうの
あくまで自作プログラムでの話だけどね
ただ、gccでビルドされる様々なテストプロブラム見てるとvc++でビルドって安全性って意味
でヤバいんじゃないかって思っちゃうの
594デフォルトの名無しさん
2013/11/16(土) 04:27:47.92 >>591
実行時の計算オーダーを減らす機能。事前計算機能だね。
コンパイルタイムにできるだけ計算して結果を出しておくことで実行時の計算量を減らす。
ネットの変人がそれでレイトレーシングやったりしてる。
C++14のやつはそれなりに簡単だよ。
実行時の計算オーダーを減らす機能。事前計算機能だね。
コンパイルタイムにできるだけ計算して結果を出しておくことで実行時の計算量を減らす。
ネットの変人がそれでレイトレーシングやったりしてる。
C++14のやつはそれなりに簡単だよ。
595590
2013/11/16(土) 09:47:07.37 >>590はちょっと冗談気味だが
正直VC++はC++とは言えない
C++の機能を最大限活かす/楽しむにはgccやclangを使うべきだと思います
会社でプログラム書けと依頼されたらもしかしてVC++使うかもしれないけど
正直VC++はC++とは言えない
C++の機能を最大限活かす/楽しむにはgccやclangを使うべきだと思います
会社でプログラム書けと依頼されたらもしかしてVC++使うかもしれないけど
596デフォルトの名無しさん
2013/12/28(土) 16:23:57.98 chrome のブックマークバー、 IE のお気に入りバーのようなコントロールクラスを探しています。
全てのアイテムが編集可能でアイコンとテキストが表示されて
そのアイテムの値のテキストを編集できるメニューを作りたいのですが
最適なコントロールクラスはどれか教えてください。
wx.Menu を使おうと思ったのですが、
右クリックやコンテキストメニューのイベントが Bind しても呼び出されず苦戦しています。
wx.ListCtrl を使った場合は右クリックのイベントは受けられるのですが、
左クリックのイベントが wx.EVT_COMMAND_LEFT_CLICK のみで
これは MS Windows のみと書いてあるのでできたら使いたくありません。
これらのイベントについても誤りがあれば教えて欲しいです。
環境は wxPython 2.8-msw-unicode です。
よろしくお願いします。
全てのアイテムが編集可能でアイコンとテキストが表示されて
そのアイテムの値のテキストを編集できるメニューを作りたいのですが
最適なコントロールクラスはどれか教えてください。
wx.Menu を使おうと思ったのですが、
右クリックやコンテキストメニューのイベントが Bind しても呼び出されず苦戦しています。
wx.ListCtrl を使った場合は右クリックのイベントは受けられるのですが、
左クリックのイベントが wx.EVT_COMMAND_LEFT_CLICK のみで
これは MS Windows のみと書いてあるのでできたら使いたくありません。
これらのイベントについても誤りがあれば教えて欲しいです。
環境は wxPython 2.8-msw-unicode です。
よろしくお願いします。
597デフォルトの名無しさん
2013/12/28(土) 17:54:40.37 >>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(); // 右クリックイベントを定義しておく
}
理想の実装になるかわからない&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(); // 右クリックイベントを定義しておく
}
598596
2013/12/29(日) 12:00:00.67 >>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 系のイベントは関連付けられないのでしょうか?
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デフォルトの名無しさん
2013/12/29(日) 12:26:46.93 >>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.
う〜ん、メニュー上での右クリックは悲しいことにできなさそうね
[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デフォルトの名無しさん
2013/12/29(日) 12:34:09.46 いや、ちょっと違うか
メニューの右クリックイベントは掴めるけど
その時呼び元のメニューの項目が消えるといってるのか
その解決策としてはwxMenuを使わずに
menuのウィジェットを自分でエミュレートするしかないとのこと
メニューの右クリックイベントは掴めるけど
その時呼び元のメニューの項目が消えるといってるのか
その解決策としてはwxMenuを使わずに
menuのウィジェットを自分でエミュレートするしかないとのこと
601デフォルトの名無しさん
2013/12/29(日) 13:16:30.36 >>599-600
ありがとうございました。
wxMenu を流用できないのは残念ですが、
これで踏ん切りがつけたので、 wxListCtrl を使ったものを試そうと思います。
引き続き、wxListCtrl のような wxControl 派生に対して
wxMouseEvent 系のイベントをつける方法を求めていますので
何か参考になることがありましたらよろしくお願いします。
ありがとうございました。
wxMenu を流用できないのは残念ですが、
これで踏ん切りがつけたので、 wxListCtrl を使ったものを試そうと思います。
引き続き、wxListCtrl のような wxControl 派生に対して
wxMouseEvent 系のイベントをつける方法を求めていますので
何か参考になることがありましたらよろしくお願いします。
602デフォルトの名無しさん
2014/01/27(月) 14:20:14.73 了解
603デフォルトの名無しさん
2014/01/27(月) 14:35:57.41604デフォルトの名無しさん
2014/02/26(水) 17:32:22.79 サンプルが多すぎて逆にわからないのですが、
ランタイム時にGUIパーツを生成消滅させることって可能ですよね?
例えばユーザが読み込んだファイルによってボタンの数を変化させるなど
ランタイム時にGUIパーツを生成消滅させることって可能ですよね?
例えばユーザが読み込んだファイルによってボタンの数を変化させるなど
605デフォルトの名無しさん
2014/02/26(水) 17:48:08.47 マジレスすると
出来ますよ
出来ますよ
606デフォルトの名無しさん
2014/02/26(水) 18:02:12.58 ありがとうございます
関連するサンプルなどありましたら教えていただけると幸いです
関連するサンプルなどありましたら教えていただけると幸いです
607デフォルトの名無しさん
2014/02/26(水) 18:06:08.80 きっと君のHDD(SSD)に既に入ってるよω
608デフォルトの名無しさん
2014/02/26(水) 18:19:55.82 そうなんですよね〜でもsample多くてどっから見ればよいか、という感じです
まあできるということがわかればとりあえず見て回ります
まあできるということがわかればとりあえず見て回ります
609デフォルトの名無しさん
2014/02/26(水) 18:34:00.97 チュートリアルで最初の方から見ればすぐ出ると思う。
610デフォルトの名無しさん
2014/02/26(水) 18:38:10.36 デモ実行してみて自分の欲しい機能と似たものを見つけたら「ソースを見る」をクリック。
611デフォルトの名無しさん
2014/02/26(水) 18:44:29.66 すいません、見てるものが違うかもしれないので確認させてください
チュートリアルとは何を指してますか?
デモはdemosフォルダの中にあるプロジェクトですよね?「ソースを見る」とはなんでしょうか?
チュートリアルとは何を指してますか?
デモはdemosフォルダの中にあるプロジェクトですよね?「ソースを見る」とはなんでしょうか?
612デフォルトの名無しさん
2014/02/26(水) 18:48:03.88 ごめん。
見てるものが違った。
wxPython の方見てた。
見てるものが違った。
wxPython の方見てた。
613デフォルトの名無しさん
2014/02/26(水) 18:53:20.95 wxPythonのDemo見て目星を付けて
wxPythonのソースを参考にwxWidgetsでCソース書くのもあり
wxPythonのソースを参考にwxWidgetsでCソース書くのもあり
614デフォルトの名無しさん
2014/02/26(水) 19:08:22.51 なるほど
wxPythonでコードを書いたものがC++に直接変換できたりしたら便利ですね
wxGladeみたいに
wxPythonでコードを書いたものがC++に直接変換できたりしたら便利ですね
wxGladeみたいに
615デフォルトの名無しさん
2014/02/26(水) 20:20:43.75 なんか久しぶりにwxスレが伸びてるぞ、新規ユーザー大歓迎
ボタンとかテキストエリアの動的な生成は、wxPanelとかwxSizerを使った簡単なサンプルを作ったら理解できると思う
言葉で説明するよりコード書いたほうがよいけど一応書いとく
例えばボタンを生成・削除しようとする場合
親Panelをparent, 子panelをchildとすると
1. ウィジェットの生成:parentをnewして、必要な分だけchildをnew
child = new wxPanel(parent, …);
...
2. ウィジェットの削除:parent.DestoryChildren();
この関数で子ウィジェットを全部きれいに削除できる
説明の意味がわからなければ、まずは適当なチュートリアルサイトに行くべし
おすすめ
http://zetcode.com/gui/wxwidgets/
ボタンとかテキストエリアの動的な生成は、wxPanelとかwxSizerを使った簡単なサンプルを作ったら理解できると思う
言葉で説明するよりコード書いたほうがよいけど一応書いとく
例えばボタンを生成・削除しようとする場合
親Panelをparent, 子panelをchildとすると
1. ウィジェットの生成:parentをnewして、必要な分だけchildをnew
child = new wxPanel(parent, …);
...
2. ウィジェットの削除:parent.DestoryChildren();
この関数で子ウィジェットを全部きれいに削除できる
説明の意味がわからなければ、まずは適当なチュートリアルサイトに行くべし
おすすめ
http://zetcode.com/gui/wxwidgets/
616デフォルトの名無しさん
2014/02/26(水) 20:22:35.51 >>614
慣れたら直接C++で書けるから多分コンバータは需要無いよ
慣れたら直接C++で書けるから多分コンバータは需要無いよ
617デフォルトの名無しさん
2014/02/26(水) 20:29:50.32618デフォルトの名無しさん
2014/02/26(水) 20:30:17.32 そのくらい wx は良く出来てるね。
619デフォルトの名無しさん
2014/02/28(金) 21:18:50.52 Qt以下の品質。gtkならcで書けた。
620デフォルトの名無しさん
2014/03/01(土) 00:37:16.59 そらQtのほうがメジャーやろ、死ね
621デフォルトの名無しさん
2014/03/01(土) 01:40:12.84 どっちも1992年頃にできた。OSSといえども商業的な成功がコミュニティ形成の鍵。
それ以外はGood Oldを懐かしむロートルか宗教的価値観に支えられているだけ。
それ以外はGood Oldを懐かしむロートルか宗教的価値観に支えられているだけ。
622デフォルトの名無しさん
2014/03/01(土) 01:51:22.19 GUI比較スレってなんだよね・・・
比較的な話ってここで展開してもよいものやら
というかwxWidgetとQtどっちも使ってる人っているのか
比較的な話ってここで展開してもよいものやら
というかwxWidgetとQtどっちも使ってる人っているのか
623デフォルトの名無しさん
2014/03/01(土) 02:28:31.91 世の中のアプリケーションはQtかAwt/Swingが採用される流れ。
直交性ならgtk。サクッと安定したものを書くならtk。
トイプログラムならSDL+OpenGL。生きるとは残酷なことである。
直交性ならgtk。サクッと安定したものを書くならtk。
トイプログラムならSDL+OpenGL。生きるとは残酷なことである。
624デフォルトの名無しさん
2014/03/01(土) 12:13:44.67 バイナリサイズでかいですな
VC2010でサイズ最適化オプションかけてもHelloWorldで5MB...
これはもうどうしようもない感じ?
VC2010でサイズ最適化オプションかけてもHelloWorldで5MB...
これはもうどうしようもない感じ?
625デフォルトの名無しさん
2014/03/01(土) 12:23:48.03 どうしようもないっす
ベース部分(wxStringとかwxWindowとか)の定義が容量食ってるから?ではないかという疑惑
ベース部分(wxStringとかwxWindowとか)の定義が容量食ってるから?ではないかという疑惑
626デフォルトの名無しさん
2014/03/01(土) 12:27:18.78 うーんなるほど
ランタイムで色々判断出来るような設計なんですかねえ
ランタイムで色々判断出来るような設計なんですかねえ
627デフォルトの名無しさん
2014/03/01(土) 12:32:32.69 そうですねwxWidgetsはRTTIの仕組みが活かされてるみたいなドキュメントはどっかで見た
たぶんwxWidgetsの中核であるwxWindowクラスはそんなんばっかしなんだろう
たぶんwxWidgetsの中核であるwxWindowクラスはそんなんばっかしなんだろう
628デフォルトの名無しさん
2014/03/05(水) 12:40:46.24 ファイル操作系が異様にやりにくい
wxString dir_name("some directly name");
dir_name.Traverse(some_traverser,wxString(""),flags);
でディレクトリたどりながらファイル抽出できるかなとおもったが
flags = wxDIR_FILES
だとそのディレクトリの中身”のみ”探す
flags = wxDIR_DIRS
だとその下の”全ての”階層のディレクトリを抽出する
wxDIR_DEFAULT
だとその下の”すべての”ファイルを探す
なんでこんな仕様なんだ
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:32.18 ああわかった
ディレクトリが見つかった場合のみその下も探す、ということなんだな
するとファイルのみだと当然下なんぞ無いからそれ以下を探すことはなく
ディレクトリのみ、とすると下にもいけるから最下層まで探そうとするわけか
うーん
ディレクトリが見つかった場合のみその下も探す、ということなんだな
するとファイルのみだと当然下なんぞ無いからそれ以下を探すことはなく
ディレクトリのみ、とすると下にもいけるから最下層まで探そうとするわけか
うーん
630デフォルトの名無しさん
2014/03/05(水) 12:55:52.46 連投失礼
Traverserクラスを継承してそのOnDir関数の返り値で制御すればいいということでした
Traverserクラスを継承してそのOnDir関数の返り値で制御すればいいということでした
631デフォルトの名無しさん
2014/03/11(火) 15:51:27.09 浮動小数点を扱えるsliderってデフォルトではなさそうですか?
632デフォルトの名無しさん
2014/03/11(火) 17:23:40.57 たとえば 0 - 100 を 10 で割ると
0.0 - 10.0 のレンジになります
0.0 - 10.0 のレンジになります
633デフォルトの名無しさん
2014/03/11(火) 17:30:20.25 やっぱそんな感じなんすね
最大値最小値現在値ラベル表示が便利だなーとおもったんですが、小数点付きでやろうと思ったら
自分でラベル付けるしかなさそうですね
最大値最小値現在値ラベル表示が便利だなーとおもったんですが、小数点付きでやろうと思ったら
自分でラベル付けるしかなさそうですね
634デフォルトの名無しさん
2014/03/15(土) 21:45:40.12ID:w4oGcJBI 右側のボタンを押したら左側のパネルを再描写させたい、など
あるイベントから(親でない)ほかのイベントを誘発させたい時ってあると思うのですが
その辺に関する記事てどっかにあります?
あるイベントから(親でない)ほかのイベントを誘発させたい時ってあると思うのですが
その辺に関する記事てどっかにあります?
635デフォルトの名無しさん
2014/03/15(土) 23:13:55.37ID:eHN/5w2/ >>634
そのへんはイベント処理の領域になりますね
wxWiki見るしかない感じ
イメージとしては
Sample::LeftPanelRedraw(wxCommandEvent& event);
というイベント関数のIDがID_LeftPanelRedrawであった場合
そのイベントは
wxCommandEvent e(wxCommandEvent(wxEVT_COMMAND_BUTTON_CLICKED, ID_LeftPanelRedraw));
LeftPanelRedraw(e);
で呼べる
そのへんはイベント処理の領域になりますね
wxWiki見るしかない感じ
イメージとしては
Sample::LeftPanelRedraw(wxCommandEvent& event);
というイベント関数のIDがID_LeftPanelRedrawであった場合
そのイベントは
wxCommandEvent e(wxCommandEvent(wxEVT_COMMAND_BUTTON_CLICKED, ID_LeftPanelRedraw));
LeftPanelRedraw(e);
で呼べる
636デフォルトの名無しさん
2014/03/15(土) 23:39:19.87ID:w4oGcJBI >>635
了解です、参考にさせていただきます
了解です、参考にさせていただきます
637デフォルトの名無しさん
2014/03/21(金) 11:44:27.13ID:hjbpSh7I glcanvasを使ってパネルを描写し、ドラッグに反応するようにしたのですが
ドラッグ中に、ポインタがパネルの範囲外に出た時に、反応が止まってしまいます
sampleのdragimagではドラッグ中であれば範囲外でもイベントが取れるようですが
sampleのopengl/penguinだと取れないようです
マウスイベントの接続は両者ともEVT_MOUSE_EVENTSで行っているので
何が違って取れているのかわかりません
その辺の事情、どなたかご存知ないですか?
ドラッグ中に、ポインタがパネルの範囲外に出た時に、反応が止まってしまいます
sampleのdragimagではドラッグ中であれば範囲外でもイベントが取れるようですが
sampleのopengl/penguinだと取れないようです
マウスイベントの接続は両者ともEVT_MOUSE_EVENTSで行っているので
何が違って取れているのかわかりません
その辺の事情、どなたかご存知ないですか?
638デフォルトの名無しさん
2014/03/21(金) 12:58:58.01ID:hjbpSh7I わかりました
wxWindowBase::wCaptureMouse()を呼び出すと以降座標とイベントが取得されるようです
wxWindowBase::wCaptureMouse()を呼び出すと以降座標とイベントが取得されるようです
639デフォルトの名無しさん
2014/03/23(日) 17:51:04.60ID:cY3NJQQl はい。知ってますよ。
640デフォルトの名無しさん
2014/03/23(日) 19:26:21.87ID:0loqh5rV いや、知らないです
641デフォルトの名無しさん
2014/05/12(月) 21:36:09.61ID:d288LkW9 クロスプラットフォームの開発環境について調べてるんですが、wxWidgetsの
GUIは外観とかは各プラットフォームのものが使われるんですか?それとも
独自のテーマになってしまうんでしょうか?
GUIは外観とかは各プラットフォームのものが使われるんですか?それとも
独自のテーマになってしまうんでしょうか?
642デフォルトの名無しさん
2014/05/12(月) 21:48:19.14ID:N4i3m2/R >>641
各プラットフォームのものが使われます
つまりWindowsならWIN32、LinuxならGTK、MacならCocoa
それぞれの外観になります
対してQtやTk、JavaのSwingなどは独自のテーマになります
各プラットフォームのものが使われます
つまりWindowsならWIN32、LinuxならGTK、MacならCocoa
それぞれの外観になります
対してQtやTk、JavaのSwingなどは独自のテーマになります
643デフォルトの名無しさん
2014/05/12(月) 21:58:07.29ID:KhXbSVtN Qtってそうだったんだ
644デフォルトの名無しさん
2014/05/12(月) 22:57:11.37ID:d288LkW9 >>642
ありがとうございます。他の環境まで概括してくださるとは助かりました。
ありがとうございます。他の環境まで概括してくださるとは助かりました。
645デフォルトの名無しさん
2014/05/13(火) 02:25:29.32ID:mUTDx2p/646デフォルトの名無しさん
2014/05/25(日) 10:10:57.42ID:Wcl6d7YS てす
647デフォルトの名無しさん
2014/06/03(火) 09:02:12.18ID:va6vQ78Z648デフォルトの名無しさん
2014/06/04(水) 21:33:25.19ID:EBZlr/6D いまこのスレ開いたら、>>646にあったはずの有益な書き込みが消えている…
貼っておこう
> 646 名前:デフォルトの名無しさん [sage]: 2014/05/23(金) 01:42:23.54 ID:NdcsMWjh
> wxFormBuilder 3.4.2betaがリリースされていたので試してみたら、
> wxWidgets3.0ベースのGUI描画になったおかげか、2.8をベースに作っていたレイアウトがごっそり狂った。
> これから3.0で作る分にはいいと思うけど、2.8で作る分には3.4.0betaで止めておいた方が良いかも。
貼っておこう
> 646 名前:デフォルトの名無しさん [sage]: 2014/05/23(金) 01:42:23.54 ID:NdcsMWjh
> wxFormBuilder 3.4.2betaがリリースされていたので試してみたら、
> wxWidgets3.0ベースのGUI描画になったおかげか、2.8をベースに作っていたレイアウトがごっそり狂った。
> これから3.0で作る分にはいいと思うけど、2.8で作る分には3.4.0betaで止めておいた方が良いかも。
649デフォルトの名無しさん
2014/06/05(木) 01:15:41.59ID:/T91KtMA なんと、板移転したときに消えたのかもしれないね。
650デフォルトの名無しさん
2014/06/19(木) 12:54:27.42ID:sMGAuaVR wxWidgetsを使って作られたプログラムの一覧ってあったりするのかね?
とりあえずAudacityは知ってる
とりあえずAudacityは知ってる
651デフォルトの名無しさん
2014/06/19(木) 19:37:20.57ID:Brdb8B0I652デフォルトの名無しさん
2014/06/19(木) 19:41:04.43ID:sMGAuaVR おーありがとう
後で見て回る
テンプレにあってもいいじゃないかな?
後で見て回る
テンプレにあってもいいじゃないかな?
653デフォルトの名無しさん
2014/06/19(木) 20:07:59.88ID:gduOxxnf 車の再発見
654デフォルトの名無しさん
2014/06/19(木) 22:56:02.45ID:Brdb8B0I655デフォルトの名無しさん
2014/08/24(日) 18:20:53.22ID:Gtnn2j9y wxWidgetsで、フォームを閉じる処理をして実際に閉じるまでの間に発生するイベントとかある?
.NETで言うところのOnClosingみたいな感じで。
.NETで言うところのOnClosingみたいな感じで。
656デフォルトの名無しさん
2014/08/25(月) 02:12:21.61ID:OTL7uAT+ OnClose
OnVeto
OnVeto
657デフォルトの名無しさん
2014/08/25(月) 14:23:49.85ID:IQl9g11m658デフォルトの名無しさん
2014/08/26(火) 17:09:00.43ID:QEgdFK7f Windows で、
CrossBlock + MinGW + wxWidget
で最も簡単な GUI アプリを基本プロジェクトで作成してみたところ、
MyTest.exe のサイズ:736KB
(wxWidgetのDLL) wxmsw28u_gcc_custom.dll のサイズ : 15.9MB
MyTest.exe のメモリ使用量 : 7,732KB // TaskManagerの表示
となった。
この基本アプリは、HelpでAboutでメッセージ・ボックスが表示できる
ようになっているが、メニュー項目をクリックしてから実際にそれが
出るまで数秒かかる。実験したのはそこそこ速いマシンと速いWindows
での事。
CrossBlock + MinGW + wxWidget
で最も簡単な GUI アプリを基本プロジェクトで作成してみたところ、
MyTest.exe のサイズ:736KB
(wxWidgetのDLL) wxmsw28u_gcc_custom.dll のサイズ : 15.9MB
MyTest.exe のメモリ使用量 : 7,732KB // TaskManagerの表示
となった。
この基本アプリは、HelpでAboutでメッセージ・ボックスが表示できる
ようになっているが、メニュー項目をクリックしてから実際にそれが
出るまで数秒かかる。実験したのはそこそこ速いマシンと速いWindows
での事。
659デフォルトの名無しさん
2014/08/26(火) 17:09:45.00ID:QEgdFK7f ただし、遅いのは最初の一回だけ。
一度でも表示すると後は速い。
一度でも表示すると後は速い。
660デフォルトの名無しさん
2014/08/26(火) 17:56:51.72ID:QEgdFK7f Mailer の Thunderbird-Portable なんかもマルチプラットフォーム対応
だけど、起動がかなり遅い。これも巨大な dll を読み込んだりしてる
からかな。
起動やメニュー操作が遅くなるのはマルチプラットフォーム化する代償
として負わされるのかも知れん。
こういうツールキットで軽快なアプリを作るのは難しいのかもな。
だけど、起動がかなり遅い。これも巨大な dll を読み込んだりしてる
からかな。
起動やメニュー操作が遅くなるのはマルチプラットフォーム化する代償
として負わされるのかも知れん。
こういうツールキットで軽快なアプリを作るのは難しいのかもな。
661デフォルトの名無しさん
2014/08/26(火) 19:14:34.45ID:OmJCXozv 小規模の自作ソフトでwxWidgetsをスタティックリンクしない理由が分からん
わざわざ合計バイナリサイズを大きく、速度も遅くする理由がどこにあるのだろう
わざわざ合計バイナリサイズを大きく、速度も遅くする理由がどこにあるのだろう
662デフォルトの名無しさん
2014/08/26(火) 21:27:38.25ID:QEgdFK7f663デフォルトの名無しさん
2014/08/26(火) 21:50:56.10ID:JtVIC4MG ある程度規模が大きくなるとスタティックリンクだと初回起動が遅すぎになので
dllにモジュールを分割してやったほうがいい
起動時のメモリへのロード時間はどうしようもないのでスプラッシュをつけてごまかす
dllにモジュールを分割してやったほうがいい
起動時のメモリへのロード時間はどうしようもないのでスプラッシュをつけてごまかす
664デフォルトの名無しさん
2014/08/26(火) 22:39:34.76ID:QEgdFK7f CrossBlockでは、monolithic タイプのライブラリをビルドしてから使う
ようになってるんだけど、それも遅い原因なのかな。
でも起動後にユーザー入力に対するレスポンスが遅いのはどう説明すれば
いいんだろう?
普通の Windows の仕様だと原則、起動時に全ての DLL をロードする。
LoadLibrary()を使えば動的にロードすることも可能は可能だけど、
それをする必要は旧OSでサポートしてなかった新OSのDLLをロードする
ような場合は、多言語化のサポートなど。
なるほど、多言語化のせいかも。_("xxx") みたいなのがあったから、
gettext を使ってる。それでリソースを動的ロードしているのか。
ようになってるんだけど、それも遅い原因なのかな。
でも起動後にユーザー入力に対するレスポンスが遅いのはどう説明すれば
いいんだろう?
普通の Windows の仕様だと原則、起動時に全ての DLL をロードする。
LoadLibrary()を使えば動的にロードすることも可能は可能だけど、
それをする必要は旧OSでサポートしてなかった新OSのDLLをロードする
ような場合は、多言語化のサポートなど。
なるほど、多言語化のせいかも。_("xxx") みたいなのがあったから、
gettext を使ってる。それでリソースを動的ロードしているのか。
665デフォルトの名無しさん
2014/08/27(水) 04:40:25.51ID:IfBPvyzm 何度かアプリ起動しているうちにWindowsのFetchが学習してくれて
DLLとか先読みしてくれるようにならないのだろうか
DLLとか先読みしてくれるようにならないのだろうか
666デフォルトの名無しさん
2014/08/27(水) 06:47:58.33ID:J2peHUgZ >>665
それはなる。
・ディスクの内容は、メモリにキャッシュされる。
・同じDLLは、全てのアプリで物理メモリが共有されると聞いたことがある。
# >>664 は、CrossBlockではなく、CodeBlocksだった。スマン。
それより、wxWidget 本家のソース配布に入っている samples を
Windows の mingw32 でビルドしてみたところ、全然遅くなかった。
・アプリの起動は速い。
・起動後のメニューコマンドやユーザー入力に対するレスポンスも速い。
・Aboutダイアログも瞬間ではないが、0.3秒程度で、Windows Nativeアプリ
でも、その程度の遅さはある場合があるので遜色ない。
CodeBlocks で作ったものが遅い原因は今のところ謎。やはり monolithic な
ライブラリを使用しているからか。
それはなる。
・ディスクの内容は、メモリにキャッシュされる。
・同じDLLは、全てのアプリで物理メモリが共有されると聞いたことがある。
# >>664 は、CrossBlockではなく、CodeBlocksだった。スマン。
それより、wxWidget 本家のソース配布に入っている samples を
Windows の mingw32 でビルドしてみたところ、全然遅くなかった。
・アプリの起動は速い。
・起動後のメニューコマンドやユーザー入力に対するレスポンスも速い。
・Aboutダイアログも瞬間ではないが、0.3秒程度で、Windows Nativeアプリ
でも、その程度の遅さはある場合があるので遜色ない。
CodeBlocks で作ったものが遅い原因は今のところ謎。やはり monolithic な
ライブラリを使用しているからか。
667デフォルトの名無しさん
2014/08/27(水) 07:54:18.52ID:X38Kg7Ty >>666
># >>664 は、CrossBlockではなく、CodeBlocksだった。スマン。
なんだと思ったらわりと素人じゃねえかおい
>CodeBlocks で作ったものが遅い原因は今のところ謎。やはり monolithic な
>ライブラリを使用しているからか。
monolithicってのはwxWidgetsのモジュール全部入りのDLL作るという意味なので遅くて当然
(実際試したことないので遅いというのは初めて知ったが…)
普通は ./configure --prefix=/mingw --enable-shared みたいに指定してビルドするから
モジュールごとに分割されたDLLが作成される
Windows上で開発する時はMinGW + NTEmacs/eclipse CDTの環境がおすすめ
># >>664 は、CrossBlockではなく、CodeBlocksだった。スマン。
なんだと思ったらわりと素人じゃねえかおい
>CodeBlocks で作ったものが遅い原因は今のところ謎。やはり monolithic な
>ライブラリを使用しているからか。
monolithicってのはwxWidgetsのモジュール全部入りのDLL作るという意味なので遅くて当然
(実際試したことないので遅いというのは初めて知ったが…)
普通は ./configure --prefix=/mingw --enable-shared みたいに指定してビルドするから
モジュールごとに分割されたDLLが作成される
Windows上で開発する時はMinGW + NTEmacs/eclipse CDTの環境がおすすめ
668デフォルトの名無しさん
2014/08/27(水) 09:58:52.27ID:J2peHUgZ >>667
最後の段落:多分、wxWidgets 本体を MInGW32 用のビルドする際は、
configure は使えない気がする。
CodeBlocks のQuickなんたらRefの説明では、いきなり、
make するように支持されていた。しかも、-fno なんたら dll-export
みたいなオプションを付けろと指示。これは、MinGW32のバグで、
付けないと最後のldの段階でldがクラッシュする事をたまたま発見。
ところで話は変わって聞いておきたいのですが、 eclipse では
wxWidget のイベントを書くようなときに
・BEGIN_EVENT_MAP に自動的に一行マクロを挿入してくれて
・*.h にもメンバ関数宣言を書いてくれて
・*.cpp にも5行くらいの関数定義本体の雛形を書いてくれ
たりしますか?
最後の段落:多分、wxWidgets 本体を MInGW32 用のビルドする際は、
configure は使えない気がする。
CodeBlocks のQuickなんたらRefの説明では、いきなり、
make するように支持されていた。しかも、-fno なんたら dll-export
みたいなオプションを付けろと指示。これは、MinGW32のバグで、
付けないと最後のldの段階でldがクラッシュする事をたまたま発見。
ところで話は変わって聞いておきたいのですが、 eclipse では
wxWidget のイベントを書くようなときに
・BEGIN_EVENT_MAP に自動的に一行マクロを挿入してくれて
・*.h にもメンバ関数宣言を書いてくれて
・*.cpp にも5行くらいの関数定義本体の雛形を書いてくれ
たりしますか?
669デフォルトの名無しさん
2014/08/27(水) 10:01:06.29ID:J2peHUgZ つまり、イベント・ハンドラを追加したとき、
BEGIN_EVENT_TABLE(wxListMainWindow,wxScrolledWindow)
EVT_PAINT (wxListMainWindow::OnPaint)
EVT_MOUSE_EVENTS (wxListMainWindow::OnMouse)
EVT_CHAR (wxListMainWindow::OnChar)
EVT_KEY_DOWN (wxListMainWindow::OnKeyDown)
EVT_KEY_UP (wxListMainWindow::OnKeyUp)
EVT_SET_FOCUS (wxListMainWindow::OnSetFocus)
EVT_KILL_FOCUS (wxListMainWindow::OnKillFocus)
EVT_SCROLLWIN (wxListMainWindow::OnScroll)
EVT_CHILD_FOCUS (wxListMainWindow::OnChildFocus)
END_EVENT_TABLE()
とか、クラスを書くとき
IMPLEMENT_DYNAMIC_CLASS(wxListMainWindow,wxScrolledWindow)
見たいなものの自動生成があるとうれしいんですが、そういう IDE
はありません?
BEGIN_EVENT_TABLE(wxListMainWindow,wxScrolledWindow)
EVT_PAINT (wxListMainWindow::OnPaint)
EVT_MOUSE_EVENTS (wxListMainWindow::OnMouse)
EVT_CHAR (wxListMainWindow::OnChar)
EVT_KEY_DOWN (wxListMainWindow::OnKeyDown)
EVT_KEY_UP (wxListMainWindow::OnKeyUp)
EVT_SET_FOCUS (wxListMainWindow::OnSetFocus)
EVT_KILL_FOCUS (wxListMainWindow::OnKillFocus)
EVT_SCROLLWIN (wxListMainWindow::OnScroll)
EVT_CHILD_FOCUS (wxListMainWindow::OnChildFocus)
END_EVENT_TABLE()
とか、クラスを書くとき
IMPLEMENT_DYNAMIC_CLASS(wxListMainWindow,wxScrolledWindow)
見たいなものの自動生成があるとうれしいんですが、そういう IDE
はありません?
670デフォルトの名無しさん
2014/08/29(金) 11:13:03.59ID:AEJEOYpd wxWidgetsの問題点の1つは、プログラムのサイズが大きくなる事。
特に静的リンクしたときに顕著。
Windows は、VC++ にて、
ac1rd: CUI の Win32 と printf() を使ったもののリリース・動的リンク版が 16KB程度。
puts() を使えばもっと小さく出来る。
ac1rs: CUI の Win32 と printf() を使ったもののリリース・静的リンク版が 40KB程度。
puts() を使えばもっと小さく出来る。
ag2rd: GUI の MFC の 基本的な MDI アプリがリリース・動的リンク版で 36 KB 程度。
ag2rs: GUI の MFC の 基本的な MDI アプリがリリース・静的リンク版で 332 KB 程度。
wxWidgets 2.8.12 の samples では、
bc1rd: CUI の console.exe がリリース・動的リンク版で 138KB
bc1rs: CUI の console.exe がリリース・静的リンク版で 863KB
bc1dd: CUI の console.exe がデバッグ・動的リンク版で 184KB
bg2rd: GUI の keyboard.exe がリリース・動的リンク版で 293KB
bg2rs: GUI の keyboard.exe がリリース・静的リンク版で 2,924KB
bg2dd: GUI の keyboard.exe がデバッグ・動的リンク版で 492KB
ただし、bc1xx は、アプリ本体のプログラムが複雑なことをしているようなので、
もっと小さく出来る可能性があり。
特に静的リンクしたときに顕著。
Windows は、VC++ にて、
ac1rd: CUI の Win32 と printf() を使ったもののリリース・動的リンク版が 16KB程度。
puts() を使えばもっと小さく出来る。
ac1rs: CUI の Win32 と printf() を使ったもののリリース・静的リンク版が 40KB程度。
puts() を使えばもっと小さく出来る。
ag2rd: GUI の MFC の 基本的な MDI アプリがリリース・動的リンク版で 36 KB 程度。
ag2rs: GUI の MFC の 基本的な MDI アプリがリリース・静的リンク版で 332 KB 程度。
wxWidgets 2.8.12 の samples では、
bc1rd: CUI の console.exe がリリース・動的リンク版で 138KB
bc1rs: CUI の console.exe がリリース・静的リンク版で 863KB
bc1dd: CUI の console.exe がデバッグ・動的リンク版で 184KB
bg2rd: GUI の keyboard.exe がリリース・動的リンク版で 293KB
bg2rs: GUI の keyboard.exe がリリース・静的リンク版で 2,924KB
bg2dd: GUI の keyboard.exe がデバッグ・動的リンク版で 492KB
ただし、bc1xx は、アプリ本体のプログラムが複雑なことをしているようなので、
もっと小さく出来る可能性があり。
671デフォルトの名無しさん
2014/08/29(金) 19:04:31.75ID:GS9LyL7J その説明にac1だの何だの自分以外分からない定義を使う必要があったのだろうか
672デフォルトの名無しさん
2014/08/29(金) 19:07:59.00ID:AEJEOYpd 今から見るとそうかも。
a: Windows Native or MFC
b: wzWidgets
c: CUI
g: GUI
r:release, d:debug
d:dynamic link, s:static link
a: Windows Native or MFC
b: wzWidgets
c: CUI
g: GUI
r:release, d:debug
d:dynamic link, s:static link
673デフォルトの名無しさん
2014/08/30(土) 00:17:55.46ID:S/CtHe8u >>668
>最後の段落:多分、wxWidgets 本体を MInGW32 用のビルドする際は、
>configure は使えない気がする。
なにいってんだCodeBlocksのドキュメントにそう書いてあるだけで
基本autotoolsで作られたソースはconfigureでビルドできるぞ
実際自分はWindows上のmingw32/64、LinuxのクロスビルドからのMinGWでconfigure使ってる
なぜMakefileでやれという指示なのかというと、そのほうが簡潔で保守しやすいからだ
あとGNU MakeじゃないMakeでもビルドできるようにしたいとかいう微妙なこだわりが有る場合も有る
>>669
エディタの補助機能を使うべきだ、Emacsなら矩形範囲選択で一気に書ける
ソースのひな形自動生成機能は知らんなあ
>最後の段落:多分、wxWidgets 本体を MInGW32 用のビルドする際は、
>configure は使えない気がする。
なにいってんだCodeBlocksのドキュメントにそう書いてあるだけで
基本autotoolsで作られたソースはconfigureでビルドできるぞ
実際自分はWindows上のmingw32/64、LinuxのクロスビルドからのMinGWでconfigure使ってる
なぜMakefileでやれという指示なのかというと、そのほうが簡潔で保守しやすいからだ
あとGNU MakeじゃないMakeでもビルドできるようにしたいとかいう微妙なこだわりが有る場合も有る
>>669
エディタの補助機能を使うべきだ、Emacsなら矩形範囲選択で一気に書ける
ソースのひな形自動生成機能は知らんなあ
674デフォルトの名無しさん
2014/08/30(土) 00:21:29.81ID:S/CtHe8u >>670
MinGWビルドでバイナリをストリップしたやつとか比較しないのか
MinGWビルドでバイナリをストリップしたやつとか比較しないのか
675デフォルトの名無しさん
2014/08/30(土) 07:56:49.02ID:pUv0T+7B676デフォルトの名無しさん
2014/08/30(土) 07:58:19.03ID:pUv0T+7B677デフォルトの名無しさん
2014/08/30(土) 08:15:51.54ID:hpIa4Qjb 日本語インライン入力の対応ってまだなの?
というか予定自体なくて諦めた方がいい?
wxWidgets使ってるEditraってエディタにそろそろ移行できるかなと
思って試してみたら、未だにインライン入力できない
というか予定自体なくて諦めた方がいい?
wxWidgets使ってるEditraってエディタにそろそろ移行できるかなと
思って試してみたら、未だにインライン入力できない
678デフォルトの名無しさん
2014/08/30(土) 08:19:53.34ID:pUv0T+7B >>674
小さくなりますた!!
Relese, 動的リンク
/wxWidgets-2.8.12/samples/keyboard/gcc_mswdll/keyboard.exe
strip 前:299,808 bytes
strip 後:124,430 bytes
Relese, 静的リンク
/wxWidgets-2.8.12/samples/keyboard/gcc_msw/keyboard.exe
strip 前:2,993,255 bytes
strip 後:1,887,758 bytes
strip 後も、*.exe が正常に起動することを確認済み。
小さくなりますた!!
Relese, 動的リンク
/wxWidgets-2.8.12/samples/keyboard/gcc_mswdll/keyboard.exe
strip 前:299,808 bytes
strip 後:124,430 bytes
Relese, 静的リンク
/wxWidgets-2.8.12/samples/keyboard/gcc_msw/keyboard.exe
strip 前:2,993,255 bytes
strip 後:1,887,758 bytes
strip 後も、*.exe が正常に起動することを確認済み。
679デフォルトの名無しさん
2014/08/30(土) 08:22:26.84ID:pUv0T+7B680デフォルトの名無しさん
2014/08/30(土) 11:51:11.86ID:RJxcDZkh 馬鹿には無理
681デフォルトの名無しさん
2014/08/30(土) 12:02:34.82ID:S/CtHe8u スタンド・アローン・コンプレックスと化した馬鹿には無理さんオッスオッス
>>679
cua-modeでググって
http://qiita.com/yyamamot/items/7efcbfdcccdb5fa45ebe
例えばイベントテーブルとかはこれでザクッと一気に書ける
もちろん個々のwxWindowIDとメソッド定義は書かなくてはいけないが
クラス名とマクロ定義は同じ文字列の繰り返しなのでだいぶ楽になる
>>679
cua-modeでググって
http://qiita.com/yyamamot/items/7efcbfdcccdb5fa45ebe
例えばイベントテーブルとかはこれでザクッと一気に書ける
もちろん個々のwxWindowIDとメソッド定義は書かなくてはいけないが
クラス名とマクロ定義は同じ文字列の繰り返しなのでだいぶ楽になる
682デフォルトの名無しさん
2014/08/30(土) 13:53:01.64ID:pUv0T+7B >>681
あー、そういう風に沢山のイベントを一気に書きたいんじゃなくて、
開発段階で徐々にイベントを追加して行く際に、
1. *.h のクラス内にメンバ関数宣言
2. *.cpp に EVENT MAP
3. *.cpp に メンバ関数定義の本体
の三箇所にコードを書くのが面倒ということなんだわ。
あー、そういう風に沢山のイベントを一気に書きたいんじゃなくて、
開発段階で徐々にイベントを追加して行く際に、
1. *.h のクラス内にメンバ関数宣言
2. *.cpp に EVENT MAP
3. *.cpp に メンバ関数定義の本体
の三箇所にコードを書くのが面倒ということなんだわ。
683デフォルトの名無しさん
2014/08/30(土) 14:33:49.98ID:S/CtHe8u >>682
それは自分で作らないと無さげですねえ
それは自分で作らないと無さげですねえ
684デフォルトの名無しさん
2014/08/30(土) 19:11:57.66ID:5dlfaubU wxFormBuilderでしかGUIとイベントを設計できない俺には何言ってるのかさっぱりわからんぜよ……
685678
2014/08/31(日) 15:54:21.95ID:X+I89xFV wxAUI のデモ・アプリ wxauitest.exe のサイズは、1,417,216 bytes。
スタンドアロンのアプリで、環境変数からパスを完全に消去しても起動
できた。つまり、ライブラリはDLLを使わずに静的リンクされている。
wxAUIはFloating & Dockingのできる強力なGUI。
>>678 に示した keyboard.exe はキーボードから押されたキーの値を
表示するだけで、上記アプリよりずっとシンプルなのにも関わらず、
1,887,758 bytes と 470,542 bytes も大きい。
理由は不明。
スタンドアロンのアプリで、環境変数からパスを完全に消去しても起動
できた。つまり、ライブラリはDLLを使わずに静的リンクされている。
wxAUIはFloating & Dockingのできる強力なGUI。
>>678 に示した keyboard.exe はキーボードから押されたキーの値を
表示するだけで、上記アプリよりずっとシンプルなのにも関わらず、
1,887,758 bytes と 470,542 bytes も大きい。
理由は不明。
686デフォルトの名無しさん
2014/08/31(日) 15:56:18.96ID:5rh0udnx そんなことしなくても
DLLの依存関係調べるツールあるのに
DLLの依存関係調べるツールあるのに
687デフォルトの名無しさん
2014/08/31(日) 16:01:12.95ID:5rh0udnx ちなみにwxWidgetsで作った一番小さいexe探したら65kbのがあった
688678
2014/08/31(日) 17:34:23.46ID:X+I89xFV Windows実行形式であっても、コンパイラが、MinGW32 と VC++ でサイズに
大幅な違いが出てくるのかな?
大幅な違いが出てくるのかな?
690デフォルトの名無しさん
2014/08/31(日) 19:56:13.33ID:F1QgxQvq691デフォルトの名無しさん
2014/08/31(日) 20:18:05.13ID:da+aRwUf CodeBlocks + MinGW32 で、
wxWidgets の Monolithic、ASCIIライブラリ, 静的リンク で
最も簡単な Frame Based な GUI を作成してみたら、
2,073,600 バイトよりは小さくならなかった。
wxWidgets のライブラリは、
-Os
-ffunction-sections
-fdata-sections
でコンパイルし、
-Wl,--gc-sections -s
でライブラリ化した。その時のコマンド:
mingw32-make -j2 -f makefile.gcc CPPFLAGS="-MD -MP -DHAVE_W32API_H
-D__WXMSW__ -DNOPCH -DwxDEBUG_LEVEL=0 -DNDEBUG" CFLAGS="-mthreads
-fmessage-length=0 -ffunction-sections -fdata-sections -fno-builtin
-Os" CXXFLAGS="-mthreads -Wno-ctor-dtor-privacy -fmessage-length=0
-ffunction-sections -fdata-sections -fno-builtin -Os
-fno-keep-inline-dllexport" LDFLAGS="-Wl,--subsystem,windows
-Wl,--gc-sections -s -mthreads -mwindows"
BUILD=release UNICODE=0 SHARED=0 MONOLITHIC=1
CodeBlocks でアプリのリンクのオプションにも、
-Wl,--gc-sections -s
は付けてある。
wxWidgets の Monolithic、ASCIIライブラリ, 静的リンク で
最も簡単な Frame Based な GUI を作成してみたら、
2,073,600 バイトよりは小さくならなかった。
wxWidgets のライブラリは、
-Os
-ffunction-sections
-fdata-sections
でコンパイルし、
-Wl,--gc-sections -s
でライブラリ化した。その時のコマンド:
mingw32-make -j2 -f makefile.gcc CPPFLAGS="-MD -MP -DHAVE_W32API_H
-D__WXMSW__ -DNOPCH -DwxDEBUG_LEVEL=0 -DNDEBUG" CFLAGS="-mthreads
-fmessage-length=0 -ffunction-sections -fdata-sections -fno-builtin
-Os" CXXFLAGS="-mthreads -Wno-ctor-dtor-privacy -fmessage-length=0
-ffunction-sections -fdata-sections -fno-builtin -Os
-fno-keep-inline-dllexport" LDFLAGS="-Wl,--subsystem,windows
-Wl,--gc-sections -s -mthreads -mwindows"
BUILD=release UNICODE=0 SHARED=0 MONOLITHIC=1
CodeBlocks でアプリのリンクのオプションにも、
-Wl,--gc-sections -s
は付けてある。
692デフォルトの名無しさん
2014/08/31(日) 20:27:38.74ID:da+aRwUf ちなみに、Unicode 版より ASCII 版のほうが小さくなることを確認済みである。
[Compiler settings - #defines]
が、標準では、
__GNUWIN32__, __WXMSW__, WXUSINGDLL, wxUSE_UNICODE, WX_PRECOMP
となるところを:
__GNUWIN32__, __WXMSW__
だけとし、
[Search Directories] の Compiler, Linker, Compiler
の、gcc_dll の部分を、gcc_lib に変えた。
アプリにリンクするリンクライブラリとしては、上記で作成した Monolithic
ライブラリだけでは足りず、以下が必要であった。Win32のimport libraryは、
ライブラリを動的リンクする場合はライブラリのDLLが行っているので必要ない
が、ライブラリを静的リンクする場合は、アプリが直接リンクする必要がある
ため必要となるのは理解できる。libwxpng, libwxjpeg, libwxtiff, libwxzlib
が必要となった理由は不明。
libwxmsw28 // これが wxWidgets の monolithic ライブラリ本体。
libwxpng
libwxjpeg
libwxtiff
libwxzlib
libuuid // Win32 の import library
libcomctrl32 // Win32 の import library
libwinspool // Win32 の import library
liboleaut32 // Win32 の import library
libole32 // Win32 の import library
ちなみに、wxWidgets を動的リンクする場合は、ここが、libwxmsw28
だけで済む。
[Compiler settings - #defines]
が、標準では、
__GNUWIN32__, __WXMSW__, WXUSINGDLL, wxUSE_UNICODE, WX_PRECOMP
となるところを:
__GNUWIN32__, __WXMSW__
だけとし、
[Search Directories] の Compiler, Linker, Compiler
の、gcc_dll の部分を、gcc_lib に変えた。
アプリにリンクするリンクライブラリとしては、上記で作成した Monolithic
ライブラリだけでは足りず、以下が必要であった。Win32のimport libraryは、
ライブラリを動的リンクする場合はライブラリのDLLが行っているので必要ない
が、ライブラリを静的リンクする場合は、アプリが直接リンクする必要がある
ため必要となるのは理解できる。libwxpng, libwxjpeg, libwxtiff, libwxzlib
が必要となった理由は不明。
libwxmsw28 // これが wxWidgets の monolithic ライブラリ本体。
libwxpng
libwxjpeg
libwxtiff
libwxzlib
libuuid // Win32 の import library
libcomctrl32 // Win32 の import library
libwinspool // Win32 の import library
liboleaut32 // Win32 の import library
libole32 // Win32 の import library
ちなみに、wxWidgets を動的リンクする場合は、ここが、libwxmsw28
だけで済む。
693デフォルトの名無しさん
2014/08/31(日) 20:33:24.61ID:da+aRwUf 誤:[Search Directories] の Compiler, Linker, Compiler
正:[Search Directories] の Compiler, Linker, Resource Compiler
誤:Win32のimport libraryは、ライブラリを動的リンクする場合はライブ
ラリのDLLが行っているの
正:wxWidgets ライブラリをアプリに動的リンクする場合は
wxWidgets ライブラリの DLL 部分が Win32 の import library の
リンクを行っているの
正:[Search Directories] の Compiler, Linker, Resource Compiler
誤:Win32のimport libraryは、ライブラリを動的リンクする場合はライブ
ラリのDLLが行っているの
正:wxWidgets ライブラリをアプリに動的リンクする場合は
wxWidgets ライブラリの DLL 部分が Win32 の import library の
リンクを行っているの
694デフォルトの名無しさん
2014/08/31(日) 20:45:44.37ID:0aT2mco7 サイズはどうでもよくないか。exeを使う側としては速度では?
あとコア、主要のライブラリのビルドから、ダイナミックリンクを徹底してOSに丸投げしたら小さくなるだろ。
あとコア、主要のライブラリのビルドから、ダイナミックリンクを徹底してOSに丸投げしたら小さくなるだろ。
695デフォルトの名無しさん
2014/08/31(日) 20:48:05.22ID:ks+4W1rG 完全テンプレートライブラリにしたら軽くなるんだろうか
696デフォルトの名無しさん
2014/08/31(日) 20:58:57.78ID:da+aRwUf697デフォルトの名無しさん
2014/08/31(日) 21:00:34.83ID:ks+4W1rG ラッピングしてるだけじゃなくマルチプラットフォームのために徹底した抽象化をしてるんでしょ
とソースも読まず推測
とソースも読まず推測
698デフォルトの名無しさん
2014/08/31(日) 21:04:00.35ID:da+aRwUf >>697
でもソースを呼んでみたら、たとえば、wxListCtrl なんかは、
Win32 の LIST CONTROL をそのまま使っていた。
DrawRect()などで書いているわけではない。
ただし、wxGenericListCtrl だったかは、DrawRect()みたいなグラフィック
関数で独自に描画していた。が、それは、Windows版では簡単には使えない
という噂を聞いたが。
でもソースを呼んでみたら、たとえば、wxListCtrl なんかは、
Win32 の LIST CONTROL をそのまま使っていた。
DrawRect()などで書いているわけではない。
ただし、wxGenericListCtrl だったかは、DrawRect()みたいなグラフィック
関数で独自に描画していた。が、それは、Windows版では簡単には使えない
という噂を聞いたが。
699デフォルトの名無しさん
2014/08/31(日) 21:06:47.60ID:da+aRwUf >>697
wxWidgets の基本設計は、Widgetは、OS nativeの物を使うが、
どんなサイズであっても対応できるように Sizer で Layout を
コントロールする、という物。
なので、抽象化はサイズと配置程度で済むはずなのだが・・・。
wxWidgets の基本設計は、Widgetは、OS nativeの物を使うが、
どんなサイズであっても対応できるように Sizer で Layout を
コントロールする、という物。
なので、抽象化はサイズと配置程度で済むはずなのだが・・・。
700デフォルトの名無しさん
2014/08/31(日) 21:09:35.31ID:F1QgxQvq701デフォルトの名無しさん
2014/08/31(日) 23:57:56.42ID:da+aRwUf wxWidgets の samples で ListCtrl 関連を見てみたが、ヘッダを
ドラッグしようとしてもドラッグできないので、ドラッグによる列の入れ替
えは出来ないようだった。
実は、Win32 の LIST CONTROL は、
・マウスドラッグによる自動的な列の入れ替えをした際、どこにどの列が
行ったかを掌握するには注意が必要。動作を知るには基本的に実験を必要
とする。
・第1カラムを削除すると第2カラム以降を削除した時とは同じとは言えない
奇妙な動作をする。奇妙な動作と言ったがバグに近い。
こういった辺りがどう処理されているか知りたかったのだが、サンプルでは
故意か偶然か、全くそこに触れていないようだった。
ドラッグしようとしてもドラッグできないので、ドラッグによる列の入れ替
えは出来ないようだった。
実は、Win32 の LIST CONTROL は、
・マウスドラッグによる自動的な列の入れ替えをした際、どこにどの列が
行ったかを掌握するには注意が必要。動作を知るには基本的に実験を必要
とする。
・第1カラムを削除すると第2カラム以降を削除した時とは同じとは言えない
奇妙な動作をする。奇妙な動作と言ったがバグに近い。
こういった辺りがどう処理されているか知りたかったのだが、サンプルでは
故意か偶然か、全くそこに触れていないようだった。
702デフォルトの名無しさん
2014/08/31(日) 23:59:28.64ID:da+aRwUf wxWidgets の samples で ListCtrl 関連を見てみたが、ヘッダを
ドラッグしようとしてもドラッグできないので、ドラッグによる列の入れ替
えは出来ないようだった。
実は、Win32 の LIST CONTROL は、
・マウスドラッグによる自動的な列の入れ替えをした際、どこにどの列が
行ったかを掌握するには注意が必要。動作を知るには基本的に実験を必要
とする。
・第1カラムを削除すると第2カラム以降を削除した時とは同じとは言えない
奇妙な動作をする。奇妙な動作と言ったがバグに近い。
こういった辺りがどう処理されているか知りたかったのだが、サンプルでは
故意か偶然か、全くそこに触れていないようだった。
ドラッグしようとしてもドラッグできないので、ドラッグによる列の入れ替
えは出来ないようだった。
実は、Win32 の LIST CONTROL は、
・マウスドラッグによる自動的な列の入れ替えをした際、どこにどの列が
行ったかを掌握するには注意が必要。動作を知るには基本的に実験を必要
とする。
・第1カラムを削除すると第2カラム以降を削除した時とは同じとは言えない
奇妙な動作をする。奇妙な動作と言ったがバグに近い。
こういった辺りがどう処理されているか知りたかったのだが、サンプルでは
故意か偶然か、全くそこに触れていないようだった。
703デフォルトの名無しさん
2014/09/01(月) 00:00:47.70ID:X69OanmZ >>700
>wxWidgetsは通常のGUI用ライブラリに一枚レイヤを重ねた形になるので
>型情報・関数テーブルの情報だけで結構容量食う
オイラはコンパイラの基本部分に詳しいが、それだけで1MBなどには
ならない。
>wxWidgetsは通常のGUI用ライブラリに一枚レイヤを重ねた形になるので
>型情報・関数テーブルの情報だけで結構容量食う
オイラはコンパイラの基本部分に詳しいが、それだけで1MBなどには
ならない。
704デフォルトの名無しさん
2014/09/01(月) 00:06:51.19ID:X69OanmZ >>694
諦めることも手かも知れないけど、やっている事の規模とサイズとの
ギャップに納得がいかない人もいるはず。
wxWidgetsはラッピング・ライブラリの一種。
8bit時代、16bit時代を知る人にとって、Widget 程度が64KBを超える
事があってはならない。どういうプログラミングをしたら2MBにもなる
のか。
諦めることも手かも知れないけど、やっている事の規模とサイズとの
ギャップに納得がいかない人もいるはず。
wxWidgetsはラッピング・ライブラリの一種。
8bit時代、16bit時代を知る人にとって、Widget 程度が64KBを超える
事があってはならない。どういうプログラミングをしたら2MBにもなる
のか。
705デフォルトの名無しさん
2014/09/01(月) 01:16:10.03ID:7Pg7L2PA >>703
>>704
一理あるのでちょっとメーリングリストを探ってみたり
まず、wx/wx.hがいろいろなヘッダファイルを事前にincludeしているので
それがバイナリサイズの増加の一因になっているらしい
[wxMSW]: why EXE-files are so large?
https://groups.google.com/d/msg/wx-users/psTmm3nB6AU/9j6-4ir95-gJ
>>704
一理あるのでちょっとメーリングリストを探ってみたり
まず、wx/wx.hがいろいろなヘッダファイルを事前にincludeしているので
それがバイナリサイズの増加の一因になっているらしい
[wxMSW]: why EXE-files are so large?
https://groups.google.com/d/msg/wx-users/psTmm3nB6AU/9j6-4ir95-gJ
706デフォルトの名無しさん
2014/09/01(月) 07:25:22.06ID:X69OanmZ >>591 のライブラリを samples/keyboard にも使ってみたら、
keyboard.exe のサイズを 1,619,968 にまで縮小することに成功した。
コンパイラは MinGW32 のまま。
条件は:release, 非UNICODE(ASCII), SHARED=0(静的リンク), MONOLITHIC = 1
どうやら MONOLITHIC であるかどうかは最終 exe サイズには関係してないらしい。
ライブラリと言うのは集めてもばらしても、最終 exe のリンク結果には影響を
及ぼさない事が基本なので、元々当たり前なことなのだが。
[samples/keyboard]
$ mingw32-make -f makefile.gcc BUILD=release UNICODE=0 SHARED=0 MONOLITHIC=1
[samples/keyboard/makefile.gcc の修整]
-------------------------------------------------------------------------------------
$(OBJS)\keyboard.exe: $(KEYBOARD_OBJECTS) $(OBJS)\keyboard_keyboard_rc.o
$(CXX) -o $@ $(KEYBOARD_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG)
-L$(LIBDIRNAME) -Wl,--subsystem,windows -Wl,--gc-sections -Wl,-s -mwindows
$(____CAIRO_LIBDIR_FILENAMES_p) $(LDFLAGS) $(__WXLIB_CORE_p) $(__WXLIB_BASE_p)
$(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p)
-lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG)
$(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) $(__GDIPLUS_LIB_p) $(__CAIRO_LIB_p)
-lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lcomctl32 -lole32
-loleaut32 -luuid -lrpcrt4 -ladvapi32 -lwsock32 -lodbc32
--------------------------------------------------------------------------------------
上記は original の makefile.gcc に、
-Wl,--gc-sections -Wl,-s
を追加しただけ。
keyboard.exe のサイズを 1,619,968 にまで縮小することに成功した。
コンパイラは MinGW32 のまま。
条件は:release, 非UNICODE(ASCII), SHARED=0(静的リンク), MONOLITHIC = 1
どうやら MONOLITHIC であるかどうかは最終 exe サイズには関係してないらしい。
ライブラリと言うのは集めてもばらしても、最終 exe のリンク結果には影響を
及ぼさない事が基本なので、元々当たり前なことなのだが。
[samples/keyboard]
$ mingw32-make -f makefile.gcc BUILD=release UNICODE=0 SHARED=0 MONOLITHIC=1
[samples/keyboard/makefile.gcc の修整]
-------------------------------------------------------------------------------------
$(OBJS)\keyboard.exe: $(KEYBOARD_OBJECTS) $(OBJS)\keyboard_keyboard_rc.o
$(CXX) -o $@ $(KEYBOARD_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG)
-L$(LIBDIRNAME) -Wl,--subsystem,windows -Wl,--gc-sections -Wl,-s -mwindows
$(____CAIRO_LIBDIR_FILENAMES_p) $(LDFLAGS) $(__WXLIB_CORE_p) $(__WXLIB_BASE_p)
$(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p)
-lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG)
$(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) $(__GDIPLUS_LIB_p) $(__CAIRO_LIB_p)
-lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lcomctl32 -lole32
-loleaut32 -luuid -lrpcrt4 -ladvapi32 -lwsock32 -lodbc32
--------------------------------------------------------------------------------------
上記は original の makefile.gcc に、
-Wl,--gc-sections -Wl,-s
を追加しただけ。
707デフォルトの名無しさん
2014/09/01(月) 07:31:05.33ID:X69OanmZ wxWidgets の samples で ListCtrl 関連を見てみたが、ヘッダを
ドラッグしようとしてもドラッグできないので、ドラッグによる列の入れ替
えは出来ないようだった。
実は、Win32 の LIST CONTROL は、
・マウスドラッグによる自動的な列の入れ替えをした際、どこにどの列が
行ったかを掌握するには注意が必要。動作を知るには基本的に実験を必要
とする。
・第1カラムを削除すると第2カラム以降を削除した時とは同じとは言えない
奇妙な動作をする。奇妙な動作と言ったがバグに近い。
こういった辺りがどう処理されているか知りたかったのだが、サンプルでは
故意か偶然か、全くそこに触れていないようだった。
ドラッグしようとしてもドラッグできないので、ドラッグによる列の入れ替
えは出来ないようだった。
実は、Win32 の LIST CONTROL は、
・マウスドラッグによる自動的な列の入れ替えをした際、どこにどの列が
行ったかを掌握するには注意が必要。動作を知るには基本的に実験を必要
とする。
・第1カラムを削除すると第2カラム以降を削除した時とは同じとは言えない
奇妙な動作をする。奇妙な動作と言ったがバグに近い。
こういった辺りがどう処理されているか知りたかったのだが、サンプルでは
故意か偶然か、全くそこに触れていないようだった。
709デフォルトの名無しさん
2014/09/01(月) 07:45:41.49ID:X69OanmZ >>694
>あとコア、主要のライブラリのビルドから、ダイナミックリンクを徹底してOSに丸投げしたら小さくなるだろ。
「>>692」で示した Win32 import library は、Windows のシステム DLL
をリンクするための小さなライブラリ。例えば、
libcomctrl32 をリンクしていても、実際は、comctrl32.dll が動的リンク
される。libcomctrl32.a は、MinGW32 が用意している import library で:
/xxx/CodeBlocks/MinGW/lib/libcomctl32.a # 86,428 bytes
C:/WINDOWS/system32/comctl32.dll # 617,472 bytes
のように、windows/system32 の comctrl32.dll を動的リンクするための
呼び出し部分だけを提供する小さなライブラリ。
>あとコア、主要のライブラリのビルドから、ダイナミックリンクを徹底してOSに丸投げしたら小さくなるだろ。
「>>692」で示した Win32 import library は、Windows のシステム DLL
をリンクするための小さなライブラリ。例えば、
libcomctrl32 をリンクしていても、実際は、comctrl32.dll が動的リンク
される。libcomctrl32.a は、MinGW32 が用意している import library で:
/xxx/CodeBlocks/MinGW/lib/libcomctl32.a # 86,428 bytes
C:/WINDOWS/system32/comctl32.dll # 617,472 bytes
のように、windows/system32 の comctrl32.dll を動的リンクするための
呼び出し部分だけを提供する小さなライブラリ。
710デフォルトの名無しさん
2014/09/01(月) 08:18:53.15ID:1emh7fCQ map出力して何がリンクされてるか見れば?
711デフォルトの名無しさん
2014/09/01(月) 14:09:14.38ID:X69OanmZ MONOLITHIC の値が違うと別の *.o が作成されることが判明。
以下は、SHARED=0(静的リンク)の場合の、MONOLITHIC が 0 と 1 の場合。
CORELIB_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) \
$(GCCFLAGS) -DHAVE_W32API_H -D__WXMSW__ $(__WXUNIV_DEFINE_p) \
$(__DEBUG_DEFINE_p) $(__NDEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) \
$(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) $(__UNICODE_DEFINE_p) \
$(__MSLU_DEFINE_p) $(__GFXCTX_DEFINE_p) -I$(SETUPHDIR) -I..\..\include \
$(____CAIRO_INCLUDEDIR_FILENAMES) -W -Wall -DWXBUILDING -I..\..\src\tiff \
-I..\..\src\jpeg -I..\..\src\png -I..\..\src\zlib -I..\..\src\regex \
-I..\..\src\expat\lib -DwxUSE_BASE=0 $(__RTTIFLAG) $(__EXCEPTIONSFLAG) \
-Wno-ctor-dtor-privacy $(CPPFLAGS) $(CXXFLAGS)
MONOLIB_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) \
$(GCCFLAGS) -DHAVE_W32API_H -D__WXMSW__ $(__WXUNIV_DEFINE_p) \
$(__DEBUG_DEFINE_p) $(__NDEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) \
$(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) $(__UNICODE_DEFINE_p) \
$(__MSLU_DEFINE_p) $(__GFXCTX_DEFINE_p) -I$(SETUPHDIR) -I..\..\include \
$(____CAIRO_INCLUDEDIR_FILENAMES) -W -Wall -DWXBUILDING -I..\..\src\tiff \
-I..\..\src\jpeg -I..\..\src\png -I..\..\src\zlib -I..\..\src\regex \
-I..\..\src\expat\lib -DwxUSE_BASE=1 $(__RTTIFLAG) $(__EXCEPTIONSFLAG) \
-Wno-ctor-dtor-privacy $(CPPFLAGS) $(CXXFLAGS)
以下は、SHARED=0(静的リンク)の場合の、MONOLITHIC が 0 と 1 の場合。
CORELIB_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) \
$(GCCFLAGS) -DHAVE_W32API_H -D__WXMSW__ $(__WXUNIV_DEFINE_p) \
$(__DEBUG_DEFINE_p) $(__NDEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) \
$(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) $(__UNICODE_DEFINE_p) \
$(__MSLU_DEFINE_p) $(__GFXCTX_DEFINE_p) -I$(SETUPHDIR) -I..\..\include \
$(____CAIRO_INCLUDEDIR_FILENAMES) -W -Wall -DWXBUILDING -I..\..\src\tiff \
-I..\..\src\jpeg -I..\..\src\png -I..\..\src\zlib -I..\..\src\regex \
-I..\..\src\expat\lib -DwxUSE_BASE=0 $(__RTTIFLAG) $(__EXCEPTIONSFLAG) \
-Wno-ctor-dtor-privacy $(CPPFLAGS) $(CXXFLAGS)
MONOLIB_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) \
$(GCCFLAGS) -DHAVE_W32API_H -D__WXMSW__ $(__WXUNIV_DEFINE_p) \
$(__DEBUG_DEFINE_p) $(__NDEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) \
$(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) $(__UNICODE_DEFINE_p) \
$(__MSLU_DEFINE_p) $(__GFXCTX_DEFINE_p) -I$(SETUPHDIR) -I..\..\include \
$(____CAIRO_INCLUDEDIR_FILENAMES) -W -Wall -DWXBUILDING -I..\..\src\tiff \
-I..\..\src\jpeg -I..\..\src\png -I..\..\src\zlib -I..\..\src\regex \
-I..\..\src\expat\lib -DwxUSE_BASE=1 $(__RTTIFLAG) $(__EXCEPTIONSFLAG) \
-Wno-ctor-dtor-privacy $(CPPFLAGS) $(CXXFLAGS)
712デフォルトの名無しさん
2014/09/01(月) 14:13:21.84ID:X69OanmZ 違いは、-DwxUSE_BASE の部分で、
MONOLITHIC = 0 の場合 : -DwxUSE_BASE=0 // #define wxUSE_BASE 0
MONOLITHIC = 1 の場合 : -DwxUSE_BASE=1 // #define wxUSE_BASE 1
となっている。
例えば、/xxx/src/msw/dc.cpp は、同じソースに対し make に渡すオプションに応じて
以下の2種類の *.o ファイルが作成される。
1つ目は、MONOLITHIC=0の時に作られ、2つ目は、MONOLITHIC=1の時に作られる。
ifeq ($(USE_GUI),1)
$(OBJS)\corelib_dc.o: ../../src/msw/dc.cpp
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\monolib_dc.o: ../../src/msw/dc.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
endif
ソースを見ると、wxUSE_BASE の値に応じて場合分けされている箇所が多数ある。
つまり、MONOLITHIC の 0 と 1 の違いは単に *.o ファイルの集め方の問題では無い。
コンパイル時点のソース自体が変更されるのである。故にリンク後の*.exe のサイズ
が変わって来ても不思議は無い。これは驚くべきことである。
MONOLITHIC = 0 の場合 : -DwxUSE_BASE=0 // #define wxUSE_BASE 0
MONOLITHIC = 1 の場合 : -DwxUSE_BASE=1 // #define wxUSE_BASE 1
となっている。
例えば、/xxx/src/msw/dc.cpp は、同じソースに対し make に渡すオプションに応じて
以下の2種類の *.o ファイルが作成される。
1つ目は、MONOLITHIC=0の時に作られ、2つ目は、MONOLITHIC=1の時に作られる。
ifeq ($(USE_GUI),1)
$(OBJS)\corelib_dc.o: ../../src/msw/dc.cpp
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\monolib_dc.o: ../../src/msw/dc.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
endif
ソースを見ると、wxUSE_BASE の値に応じて場合分けされている箇所が多数ある。
つまり、MONOLITHIC の 0 と 1 の違いは単に *.o ファイルの集め方の問題では無い。
コンパイル時点のソース自体が変更されるのである。故にリンク後の*.exe のサイズ
が変わって来ても不思議は無い。これは驚くべきことである。
713デフォルトの名無しさん
2014/09/01(月) 15:21:49.13ID:M8Jh9ISi 別に驚くほどのことじゃ無いけど
714デフォルトの名無しさん
2014/09/01(月) 16:14:53.94ID:X69OanmZ >>713
コンパイルオプションまで変えてしまって何をやっているかと言うこと
なんだよ。ライブラリの集め方だけの問題じゃないって事なんだ。
ライブラリの動作が変わってしまい、MONOLITHIC が 0 と 1とで結果が違うことに
悩まされる可能性もある。
単にライブラリのオブジェクトの集め方(含み方)の問題では無いとすると、MONOLITHIC
オプションの意味はいったい何かと言う問題になる。
また、最終EXEが大きくなる理由として、アプリが使ってないオブジェクトを
非常に基本的なライブラリの一部が参照している可能性がある。
そしてそのオブジェクトが別のオブジェクトを勝手に参照して・・・という
事が続いて最終EXEのサイズが肥大化してしまっているのかも知れない。
コンパイルオプションまで変えてしまって何をやっているかと言うこと
なんだよ。ライブラリの集め方だけの問題じゃないって事なんだ。
ライブラリの動作が変わってしまい、MONOLITHIC が 0 と 1とで結果が違うことに
悩まされる可能性もある。
単にライブラリのオブジェクトの集め方(含み方)の問題では無いとすると、MONOLITHIC
オプションの意味はいったい何かと言う問題になる。
また、最終EXEが大きくなる理由として、アプリが使ってないオブジェクトを
非常に基本的なライブラリの一部が参照している可能性がある。
そしてそのオブジェクトが別のオブジェクトを勝手に参照して・・・という
事が続いて最終EXEのサイズが肥大化してしまっているのかも知れない。
715デフォルトの名無しさん
2014/09/01(月) 16:33:12.36ID:X69OanmZ http://wiki.wxwidgets.org/WxWidgets_Build_Configurations
「MONOLITHIC=1 :
Packages all libraries in a single file.
(Note: do not combine this option with a static build.)」
とあった。static build の時は、MONOLITHIC=1 にするな、と
書かれている・・・。
「MONOLITHIC=1 :
Packages all libraries in a single file.
(Note: do not combine this option with a static build.)」
とあった。static build の時は、MONOLITHIC=1 にするな、と
書かれている・・・。
716デフォルトの名無しさん
2014/09/01(月) 16:49:54.89ID:zU7EZBBQ いったい何を目的として何を検証しているんだ?
717デフォルトの名無しさん
2014/09/01(月) 17:12:16.45ID:bPa0tOdz このライブラリを使うなとなる。
718デフォルトの名無しさん
2014/09/01(月) 17:31:47.05ID:X69OanmZ >>717
そういうわけではない。
そういうわけではない。
719デフォルトの名無しさん
2014/09/02(火) 13:46:25.35ID:TmMSlGm8 configure を試してみたら、configureのヘルプ通りには行かなかった:
・以下、xxx = wxWidgets-2.8.12 とする。/xxx/ に configure スクリプトがある。
・configureを使用するために、単なるcmd.exeではなくcygwin環境が必要であった。
・cygwinを起動する際、cygwin に入ってからの PATH が、
(MinGWのbin) : /usr/local/bin/ : /usr/bin/ : (Winからのbin)
の順になるようにした。
・カレントを /xxx/ にして configure した。configure の引数には少なくとも
・--build=i686-pc-mingw32 --host=i686-pc-mingw32 --target=i686-pc-mingw32
を指定し、例外, rtti, regex, zlib, jpeg, png, tiff は無効にするオプション
を設定した。他にも無効にしたものも多い。大量に及ぶので スクリプトに記述した。
・Makefileが普段の /xxx/build/msw/ ではなく、/xxx/ に作られた。
・/xxx/samplesのサブディレクトリにあるMakefileが書き換えられた。
・setup.h が、
/xxx/lib/wx/include/msw-ansi-releasw-static-2.8/wx
/xxx/lib/wx/include/msw-ansi-releasw-2.8/wx
の二箇所に作成された。元々各所にあるが、例としては
/xxx/include/ws/msw や /xxx/lib/gcc_lib/msw/wx にある。
・/xxx/ で make[ret] してみた。
・途中で例外を有効にするように言われたので有効にした。
・以下、xxx = wxWidgets-2.8.12 とする。/xxx/ に configure スクリプトがある。
・configureを使用するために、単なるcmd.exeではなくcygwin環境が必要であった。
・cygwinを起動する際、cygwin に入ってからの PATH が、
(MinGWのbin) : /usr/local/bin/ : /usr/bin/ : (Winからのbin)
の順になるようにした。
・カレントを /xxx/ にして configure した。configure の引数には少なくとも
・--build=i686-pc-mingw32 --host=i686-pc-mingw32 --target=i686-pc-mingw32
を指定し、例外, rtti, regex, zlib, jpeg, png, tiff は無効にするオプション
を設定した。他にも無効にしたものも多い。大量に及ぶので スクリプトに記述した。
・Makefileが普段の /xxx/build/msw/ ではなく、/xxx/ に作られた。
・/xxx/samplesのサブディレクトリにあるMakefileが書き換えられた。
・setup.h が、
/xxx/lib/wx/include/msw-ansi-releasw-static-2.8/wx
/xxx/lib/wx/include/msw-ansi-releasw-2.8/wx
の二箇所に作成された。元々各所にあるが、例としては
/xxx/include/ws/msw や /xxx/lib/gcc_lib/msw/wx にある。
・/xxx/ で make[ret] してみた。
・途中で例外を有効にするように言われたので有効にした。
720デフォルトの名無しさん
2014/09/02(火) 13:46:50.57ID:TmMSlGm8 ・regex, zlib, jpeg, png, tiff は全て無効にしていたにも関わらず、
src/regex, src/zlib, src/jpeg, src/tiff にしかない *.h ファイルが見つから
ないエラーとなった。。
そこで、Makfileを直接修整して、CPPFLAGS に -I 指定によって、上記ディレクトリ
を最後尾に追加した。
・make には成功した。
・/xxx/ に大量の *.o ファイルが作られ、*.a は /xxx/lib/ に作られた。
/build/msw から make した場合は、/xxx/lib/gcc_lib に作られるのと対照的
である。
・/xxx/samples/console で make してみたら、成功した。
・「プロシージャエントリポイント _gxx_persolanity_v0 が
ダイナミック リンク ライブラリ libstdc++-6.dll から見つかりませんでした。」
のメッセージボックスが出て起動できず。
・Makefileを書き換えて、LIBS の最後に -lstdc++ を書いても症状は治まらない。
src/regex, src/zlib, src/jpeg, src/tiff にしかない *.h ファイルが見つから
ないエラーとなった。。
そこで、Makfileを直接修整して、CPPFLAGS に -I 指定によって、上記ディレクトリ
を最後尾に追加した。
・make には成功した。
・/xxx/ に大量の *.o ファイルが作られ、*.a は /xxx/lib/ に作られた。
/build/msw から make した場合は、/xxx/lib/gcc_lib に作られるのと対照的
である。
・/xxx/samples/console で make してみたら、成功した。
・「プロシージャエントリポイント _gxx_persolanity_v0 が
ダイナミック リンク ライブラリ libstdc++-6.dll から見つかりませんでした。」
のメッセージボックスが出て起動できず。
・Makefileを書き換えて、LIBS の最後に -lstdc++ を書いても症状は治まらない。
721デフォルトの名無しさん
2014/09/02(火) 13:48:11.36ID:TmMSlGm8 ・regex, zlib, jpeg, png, tiff は全て無効にしていたにも関わらず、
src/regex, src/zlib, src/jpeg, src/tiff にしかない *.h ファイルが見つから
ないエラーとなった。。
そこで、Makfileを直接修整して、CPPFLAGS に -I 指定によって、上記ディレクトリ
を最後尾に追加した。
・make には成功した。
・/xxx/ に大量の *.o ファイルが作られ、*.a は /xxx/lib/ に作られた。
/build/msw から make した場合は、/xxx/lib/gcc_lib に作られるのと対照的
である。
・/xxx/samples/console で make してみたら、成功した。
・「プロシージャエントリポイント _gxx_persolanity_v0 が
ダイナミック リンク ライブラリ libstdc++-6.dll から見つかりませんでした。」
のメッセージボックスが出て起動できず。
・Makefileを書き換えて、LIBS の最後に -lstdc++ を書いても症状は治まらない。
src/regex, src/zlib, src/jpeg, src/tiff にしかない *.h ファイルが見つから
ないエラーとなった。。
そこで、Makfileを直接修整して、CPPFLAGS に -I 指定によって、上記ディレクトリ
を最後尾に追加した。
・make には成功した。
・/xxx/ に大量の *.o ファイルが作られ、*.a は /xxx/lib/ に作られた。
/build/msw から make した場合は、/xxx/lib/gcc_lib に作られるのと対照的
である。
・/xxx/samples/console で make してみたら、成功した。
・「プロシージャエントリポイント _gxx_persolanity_v0 が
ダイナミック リンク ライブラリ libstdc++-6.dll から見つかりませんでした。」
のメッセージボックスが出て起動できず。
・Makefileを書き換えて、LIBS の最後に -lstdc++ を書いても症状は治まらない。
722デフォルトの名無しさん
2014/09/02(火) 16:41:02.66ID:TmMSlGm8 console.cpp の中身を printf() だけを使う4行の main() 関数だけに
書き換えてみたら問題なく起動して普通に文字列が表示された。
なので、MinGW 環境の問題ではなさそう。
書き換えてみたら問題なく起動して普通に文字列が表示された。
なので、MinGW 環境の問題ではなさそう。
723デフォルトの名無しさん
2014/09/02(火) 17:12:10.67ID:TmMSlGm8 wxPrintf()だけを使った console 版 hello world が、static link
で 96,468 bytes で済んだ。
ところが、wxString を使った場合、作成した exe を実行しようとすると
>>721 後半で書いたメッセージ・ボックスが出て起動できない。
で 96,468 bytes で済んだ。
ところが、wxString を使った場合、作成した exe を実行しようとすると
>>721 後半で書いたメッセージ・ボックスが出て起動できない。
724デフォルトの名無しさん
2014/09/02(火) 17:17:49.98ID:DoCZo715 libstdc++がダイナミックリンクになってるだけだろ。
725デフォルトの名無しさん
2014/09/02(火) 17:44:29.48ID:TmMSlGm8 >>724
ダイナミックライブラリであるところの
libstdc++-6.dll
は既に読み込めているんですわ。
「libstdc++-6.dll から見つかりませんでした。」
の「から」がそれを表している。
なお、configureを使わずに、build/msw から build したライブラリだと
wxStringとwxPrintfだけを使ったconsoleアプリは、静的リンクでも
451,584 バイトで済むことが判明。こちらはちゃんと起動できる。
ダイナミックライブラリであるところの
libstdc++-6.dll
は既に読み込めているんですわ。
「libstdc++-6.dll から見つかりませんでした。」
の「から」がそれを表している。
なお、configureを使わずに、build/msw から build したライブラリだと
wxStringとwxPrintfだけを使ったconsoleアプリは、静的リンクでも
451,584 バイトで済むことが判明。こちらはちゃんと起動できる。
726デフォルトの名無しさん
2014/09/02(火) 19:04:52.66ID:DoCZo715 パスが通ったところに互換性のない別バージョンのdllがあるんだろ。
mingwだとsjljとdw2の2種類あるから。
mingwだとsjljとdw2の2種類あるから。
727デフォルトの名無しさん
2014/09/02(火) 19:56:42.14ID:TmMSlGm8 MinGW/bin を
i686-pc-mingw32-g++ と MinGW/bin/g++ は別物らしくコンパイラのサイズ
(作ったプログラムのサイズではなく変換機のサイズ)がそもそも違う。
また、前者では、リンク段階で何もエラーを出さないが、
後者では、ちゃんと、_gxx_persolanity_v0 や _Unwind_Resume が
undefined reference というエラーになる。
i686-pc-mingw32-g++ と MinGW/bin/g++ は別物らしくコンパイラのサイズ
(作ったプログラムのサイズではなく変換機のサイズ)がそもそも違う。
また、前者では、リンク段階で何もエラーを出さないが、
後者では、ちゃんと、_gxx_persolanity_v0 や _Unwind_Resume が
undefined reference というエラーになる。
728デフォルトの名無しさん
2014/09/02(火) 20:00:33.47ID:TmMSlGm8729デフォルトの名無しさん
2014/09/02(火) 20:55:48.58ID:TmMSlGm8 結論的に言うと、自分のローカルにMinGW32 の別バージョンが沢山あった。
サンプルのコンパイルに使われたのと同じMinGW32のbinだけをパスに
設定してからサンプルを起動すると実行できるようになった。
実行結果も問題ない。実行ファイルはstripするとサイズが小さくなったが、
>>691のライブラリをリンクした物よりも大きくなってしまった。
[wxStringを使った最小な cui program のサイズ]
・>>691 のwxライブラリ使用時 : 451,584 bytes
コンパイラは CodeBlocks付属のMinGW
・configureしたwxライブラリ使用時 : 547,342 bytes
コンパイラは cygwinにインストールしたMinGW
[wxFrameを使った最小な gui program のサイズ]
・>>691 のwxライブラリ使用時 : 1,611,264 bytes
コンパイラは CodeBlocks付属のMinGW
なお、今回は、>>719-720 のような不具合を回避するため、RegExや、png,jpeg,tiff,zlib
などはconfigureで有効にしておいた。そうすると>>720の最初のヘッダファイル問題は
消えたので、何か良いことがあるかと思ったから。ただし、様子を見るとそれは必要なかった
かも知れない。サイズ縮小のためには disable にすべきかも。
サンプルのコンパイルに使われたのと同じMinGW32のbinだけをパスに
設定してからサンプルを起動すると実行できるようになった。
実行結果も問題ない。実行ファイルはstripするとサイズが小さくなったが、
>>691のライブラリをリンクした物よりも大きくなってしまった。
[wxStringを使った最小な cui program のサイズ]
・>>691 のwxライブラリ使用時 : 451,584 bytes
コンパイラは CodeBlocks付属のMinGW
・configureしたwxライブラリ使用時 : 547,342 bytes
コンパイラは cygwinにインストールしたMinGW
[wxFrameを使った最小な gui program のサイズ]
・>>691 のwxライブラリ使用時 : 1,611,264 bytes
コンパイラは CodeBlocks付属のMinGW
なお、今回は、>>719-720 のような不具合を回避するため、RegExや、png,jpeg,tiff,zlib
などはconfigureで有効にしておいた。そうすると>>720の最初のヘッダファイル問題は
消えたので、何か良いことがあるかと思ったから。ただし、様子を見るとそれは必要なかった
かも知れない。サイズ縮小のためには disable にすべきかも。
730デフォルトの名無しさん
2014/09/02(火) 21:12:01.59ID:WV3CuJcS よかったな
-Wl,-Bstatic -lstdc++ -Wl,-Bdynamic
にすればlibstdc++とスタティックリンクできるかもな
-Wl,-Bstatic -lstdc++ -Wl,-Bdynamic
にすればlibstdc++とスタティックリンクできるかもな
731デフォルトの名無しさん
2014/09/02(火) 22:46:11.97ID:TmMSlGm8 cygwin版のMinGWと、cmd.exe 版のMinGWって結構違うような気がしてきた。
Makefileなんかもcygwin版だと/cygdrive/c/xxx/yyy/zzz の形式になっている
のに対し cmd.exe版は c:\xxx\yyy\zzz になっているらしい。
また、コンパイラに -I 指定したパスなんかも同様の違いがあるらしく、
configureが作ったMakefileは、cygwin版MinGW用で、
cmd.exe版のMinGWでは、#inclde "wx/setup.h" のパスが探せなかったり
する。
build, host, target の指定は、全て mingw を指定していたのだから、
cygwinが入り込む余地は無かったはず。これは、configure.inか、
Makefileのどちらかを自前で修整する必要がありそう。
さらに、makeが(?)
process_begin: CreateProcess(NULL, sh xxxxxx, ...) failed.
というエラーを出すことがあり、その原因を探る必要もある。
Makefileなんかもcygwin版だと/cygdrive/c/xxx/yyy/zzz の形式になっている
のに対し cmd.exe版は c:\xxx\yyy\zzz になっているらしい。
また、コンパイラに -I 指定したパスなんかも同様の違いがあるらしく、
configureが作ったMakefileは、cygwin版MinGW用で、
cmd.exe版のMinGWでは、#inclde "wx/setup.h" のパスが探せなかったり
する。
build, host, target の指定は、全て mingw を指定していたのだから、
cygwinが入り込む余地は無かったはず。これは、configure.inか、
Makefileのどちらかを自前で修整する必要がありそう。
さらに、makeが(?)
process_begin: CreateProcess(NULL, sh xxxxxx, ...) failed.
というエラーを出すことがあり、その原因を探る必要もある。
732デフォルトの名無しさん
2014/09/02(火) 22:56:33.59ID:RsSqk3ed もう完璧にスレ違いだな
733デフォルトの名無しさん
2014/09/02(火) 22:56:38.09ID:TmMSlGm8 cygwin版のMinGWと、cmd.exe 版のMinGWって結構違うような気がしてきた。
Makefileなんかもcygwin版だと/cygdrive/c/xxx/yyy/zzz の形式になっている
のに対し cmd.exe版は c:\xxx\yyy\zzz になっているらしい。
また、コンパイラに -I 指定したパスなんかも同様の違いがあるらしく、
configureが作ったMakefileは、cygwin版MinGW用で、
cmd.exe版のMinGWでは、#inclde "wx/setup.h" のパスが探せなかったり
する。
build, host, target の指定は、全て mingw を指定していたのだから、
cygwinが入り込む余地は無かったはず。これは、configure.inか、
Makefileのどちらかを自前で修整する必要がありそう。
Makfileの / を \ で置換して、/cygdrive/x/ を x:/ にしてみたら結構
行ける。途中、pch でファイルにアクセス拒否で書き込めないと言われるが、
もう一度 make すると、何事も無かったように続行する。
Makefileなんかもcygwin版だと/cygdrive/c/xxx/yyy/zzz の形式になっている
のに対し cmd.exe版は c:\xxx\yyy\zzz になっているらしい。
また、コンパイラに -I 指定したパスなんかも同様の違いがあるらしく、
configureが作ったMakefileは、cygwin版MinGW用で、
cmd.exe版のMinGWでは、#inclde "wx/setup.h" のパスが探せなかったり
する。
build, host, target の指定は、全て mingw を指定していたのだから、
cygwinが入り込む余地は無かったはず。これは、configure.inか、
Makefileのどちらかを自前で修整する必要がありそう。
Makfileの / を \ で置換して、/cygdrive/x/ を x:/ にしてみたら結構
行ける。途中、pch でファイルにアクセス拒否で書き込めないと言われるが、
もう一度 make すると、何事も無かったように続行する。
734デフォルトの名無しさん
2014/09/02(火) 22:57:58.06ID:TmMSlGm8 >>732
wx アプリのサイズダウンの仕方関連なんだけど。
wx アプリのサイズダウンの仕方関連なんだけど。
735デフォルトの名無しさん
2014/09/02(火) 23:40:17.26ID:wgXgojMH 作ったバイナリのサイズなんてwxWidgetsのビルド方法によって大きく変わるうえ、
最終的に使い物にならないライブラリの出来上がりとなるのが目に見えている
本当に必要なものだけを炙り出すつもりなら止めはしないが、どう考えても徒労でしかないと思うぞ
最終的に使い物にならないライブラリの出来上がりとなるのが目に見えている
本当に必要なものだけを炙り出すつもりなら止めはしないが、どう考えても徒労でしかないと思うぞ
736デフォルトの名無しさん
2014/09/02(火) 23:47:28.37ID:r9jqoPj2 正直wxWidgetsのバイナリサイズの話以外はほとんど既出だし
CygwinとMinGWの仕様の違い、クロスコンパイラのターゲット、configureの基本
それらの件に関しては自分のブログにでも書いていてほしい
CygwinとMinGWの仕様の違い、クロスコンパイラのターゲット、configureの基本
それらの件に関しては自分のブログにでも書いていてほしい
737デフォルトの名無しさん
2014/09/02(火) 23:54:47.98ID:r9jqoPj2738デフォルトの名無しさん
2014/09/03(水) 00:12:32.54ID:RSu3l9Ti >>737
最後の段落について。
・cygwin版のMinGW ---> ファイル名はUnixライクな /cygdrive/c/xxx/yyy/zzz 形式だが、
出来た実行ファイルはcygwinが無くても動作する。
ユーザー・プログラムからは主にWin32 APIを使う。
・cmd.exe版のMinGW ---> 何もかも Windows 用。ファイル名もDOS式、
出来た実行ファイルは Windows のみで動作。
ユーザー・プログラムからは Win32 API を使う。
・cygwinのgcc ---> cygwin環境で動く実行ファイルを作成する。
ユーザー・プログラムからはUnix系関数を使う。
最後の段落について。
・cygwin版のMinGW ---> ファイル名はUnixライクな /cygdrive/c/xxx/yyy/zzz 形式だが、
出来た実行ファイルはcygwinが無くても動作する。
ユーザー・プログラムからは主にWin32 APIを使う。
・cmd.exe版のMinGW ---> 何もかも Windows 用。ファイル名もDOS式、
出来た実行ファイルは Windows のみで動作。
ユーザー・プログラムからは Win32 API を使う。
・cygwinのgcc ---> cygwin環境で動く実行ファイルを作成する。
ユーザー・プログラムからはUnix系関数を使う。
739デフォルトの名無しさん
2014/09/03(水) 00:20:01.40ID:qMd+w6/O >>738
スレ違いだ、こっちでやれ
Cygwin + MinGW + GCC 相談室 Part 7
http://peace.2ch.net/test/read.cgi/tech/1357019230/
あとMinGWはcmd.exeではなくminttyから使うべきだ
さっさとネットで資料を探す作業に戻るんだな
スレ違いだ、こっちでやれ
Cygwin + MinGW + GCC 相談室 Part 7
http://peace.2ch.net/test/read.cgi/tech/1357019230/
あとMinGWはcmd.exeではなくminttyから使うべきだ
さっさとネットで資料を探す作業に戻るんだな
740デフォルトの名無しさん
2014/09/03(水) 00:37:00.57ID:kYvXCnau ちなみに c:\cygwin\bin と c:\cygwin\usr\local\bin にパスを通せば、
cmd.exe からでも cygwin のコマンドが実行できるようになる。
gccもlsもmakeも。ここでbashを起動すればcygwin環境になる。
cmd.exe からでも cygwin のコマンドが実行できるようになる。
gccもlsもmakeも。ここでbashを起動すればcygwin環境になる。
741デフォルトの名無しさん
2014/09/03(水) 08:47:34.91ID:VnTCGwbS 久しぶりに2ちゃん観に来たら
wxのスレめっちゃ野比てて嬉しい
wxのスレめっちゃ野比てて嬉しい
742デフォルトの名無しさん
2014/09/03(水) 14:50:56.74ID:kYvXCnau wx のソースを修正したら、wxString() を使った最小サンプルが、
静的リンクしても 70KB で済むようになった。
PATHには、MInGW/bin しか設定せずにテストしているので、wx の DLL
がリンクされている可能性は無く、間違いなくスタンド・アローンの
プログラム。
ちなみに、wx のソースを修正しなければ、451,584 バイトになってしまう。
>>729 に書いたものとほぼ同じプログラムだから。
静的リンクしても 70KB で済むようになった。
PATHには、MInGW/bin しか設定せずにテストしているので、wx の DLL
がリンクされている可能性は無く、間違いなくスタンド・アローンの
プログラム。
ちなみに、wx のソースを修正しなければ、451,584 バイトになってしまう。
>>729 に書いたものとほぼ同じプログラムだから。
743デフォルトの名無しさん
2014/09/03(水) 15:05:09.35ID:SXoWEkGr wxというよりgccとライブラリのお話で伸びている
744デフォルトの名無しさん
2014/09/03(水) 16:58:33.04ID:3zk9T5qQ745デフォルトの名無しさん
2014/09/03(水) 17:02:39.87ID:SXoWEkGr mingw入ってるならlddコマンドでもいける>依存動的ライブラリ
746デフォルトの名無しさん
2014/09/03(水) 18:30:34.52ID:kYvXCnau ただ、パス設定を空にして起動できるかどうか見るのも1つの確実な方法。
747デフォルトの名無しさん
2014/09/04(木) 03:37:02.91ID:FQO1vG1R 性格悪いな。
コンピュータ・ソフト関連の人って。
コンピュータ・ソフト関連の人って。
748デフォルトの名無しさん
2014/09/04(木) 17:23:39.03ID:FQO1vG1R GUIアプリのサイズ縮小を試みていたが、断念するかも知れない。
749デフォルトの名無しさん
2014/09/04(木) 18:46:24.22ID:Sd68Xi30 △性格が悪い
○無駄が嫌い
◎無駄な事をしてる奴が嫌い
○無駄が嫌い
◎無駄な事をしてる奴が嫌い
750デフォルトの名無しさん
2014/09/05(金) 15:14:57.29ID:PbioWCRT >>749
何も悪いことをせず、自分にも害を与えない人を嫌うのが性格が悪いんだよ。
何も悪いことをせず、自分にも害を与えない人を嫌うのが性格が悪いんだよ。
751デフォルトの名無しさん
2014/09/05(金) 15:46:20.79ID:JjYqHkIR 公園の蚊を駆除するのに外側からじゃなくて内側から始めるとかが無駄
自分にも危害が及ぶので嫌
自分にも危害が及ぶので嫌
752デフォルトの名無しさん
2014/09/05(金) 17:37:07.79ID:MynIP2yf753デフォルトの名無しさん
2014/09/05(金) 18:18:43.88ID:NH0YjWIH754デフォルトの名無しさん
2014/09/05(金) 22:33:12.96ID:Mt1E1+r6 俺の大好きなwxWidgetsスレがめちゃんこ糞スレになって泣きそう
755デフォルトの名無しさん
2014/09/05(金) 22:52:37.72ID:rFI2iHSs 案の定あらし化したか
これ以上触れないで放っとくの推奨
これ以上触れないで放っとくの推奨
756デフォルトの名無しさん
2014/09/10(水) 10:22:55.86ID:8Y3LAJyJ wxWidgets って、GTK をバックエンド(port to)に使うことも出来るらしい
ね(wxGTK)。
上位のツールキットが、下位のツールキットに被さっているってことか。
X11 を直接バックエンドに使うのともまた違うのかな?
ね(wxGTK)。
上位のツールキットが、下位のツールキットに被さっているってことか。
X11 を直接バックエンドに使うのともまた違うのかな?
757デフォルトの名無しさん
2014/09/10(水) 18:37:52.75ID:/KH51cxp \ ヽ | / /
\ ヽ / /
‐、、 殺 伐 と し た ス レ に 鳥 取 県 が ! ! _,,−''
`−、、 __/\ _,,−''
`−、、 _| `〜┐ _,,−''
_ノ ∫
_,.〜’ /
───────‐ ,「~ ノ ───────‐
,/ ` ̄7
| 島 根 県 /
_,,−' ~`⌒^7 / `−、、
_,,−'' 丿 \, `−、、
,'´\ / _7 /`⌒ーへ_,._⊃ /`i
! \ _,,-┐ \ _,.,ノ r‐-、、 / !
゙、 `ー--<´ / L. ,〜’ ゙、 >−一'′ ,'
y' U `ヽ/ / ヽ ヽ '´ U イ
____
/ __ | \____\
___/__ / ̄ ____|____ \ \____\
//ヽ /___ /|\ \ \____\
/ / ヽ / /__ / | \ \_______
/ / / / / / | \ | \
/ / / / _/ __/ | \__ | \  ̄―_
\ ヽ / /
‐、、 殺 伐 と し た ス レ に 鳥 取 県 が ! ! _,,−''
`−、、 __/\ _,,−''
`−、、 _| `〜┐ _,,−''
_ノ ∫
_,.〜’ /
───────‐ ,「~ ノ ───────‐
,/ ` ̄7
| 島 根 県 /
_,,−' ~`⌒^7 / `−、、
_,,−'' 丿 \, `−、、
,'´\ / _7 /`⌒ーへ_,._⊃ /`i
! \ _,,-┐ \ _,.,ノ r‐-、、 / !
゙、 `ー--<´ / L. ,〜’ ゙、 >−一'′ ,'
y' U `ヽ/ / ヽ ヽ '´ U イ
____
/ __ | \____\
___/__ / ̄ ____|____ \ \____\
//ヽ /___ /|\ \ \____\
/ / ヽ / /__ / | \ \_______
/ / / / / / | \ | \
/ / / / _/ __/ | \__ | \  ̄―_
758デフォルトの名無しさん
2014/09/11(木) 00:33:29.51ID:na3nzgh2 >>756
X11は組み込み向けのportなので一般的には使われないよ(メンテされてるかもよくわからん)
Linuxでの使用の際はGTKベースと思っていた方がいい
つまりwxWidgetsのクラスやメソッドでコードを書いてLinux上でビルドするとGTKアプリができる
最近はwxQtというwxWidgetsからQtをバンドルするイカれたプロジェクトが本流にマージされたようだが…
X11は組み込み向けのportなので一般的には使われないよ(メンテされてるかもよくわからん)
Linuxでの使用の際はGTKベースと思っていた方がいい
つまりwxWidgetsのクラスやメソッドでコードを書いてLinux上でビルドするとGTKアプリができる
最近はwxQtというwxWidgetsからQtをバンドルするイカれたプロジェクトが本流にマージされたようだが…
759デフォルトの名無しさん
2014/09/11(木) 07:34:16.28ID:BpRRpzGv wxQtってなんかメリットあるの?
760デフォルトの名無しさん
2014/09/11(木) 20:49:49.06ID:na3nzgh2 >>759
目的は、Qtベースのデスクトップ(KDE)でもwxWidgetsアプリを使うためとか
(→まあKDE上でGNOMEアプリを使うツールもあった気がするのだが…)
あとQtをバンドルすることでAndroid対応も果たしていた(実用性は不明)
目的は、Qtベースのデスクトップ(KDE)でもwxWidgetsアプリを使うためとか
(→まあKDE上でGNOMEアプリを使うツールもあった気がするのだが…)
あとQtをバンドルすることでAndroid対応も果たしていた(実用性は不明)
761デフォルトの名無しさん
2014/09/12(金) 10:47:54.87ID:w24nfmYL wxWidgetsで、POPUP Menu (Windows では、Context Menu が正式名称かも)を作る場合、
どうしてますか?
特に、CodeBlocksなどのIDEで行う場合の最良の作法が知りたいです。
自分は、基本的な wxSmith の使い方が分かったところです。
どうしてますか?
特に、CodeBlocksなどのIDEで行う場合の最良の作法が知りたいです。
自分は、基本的な wxSmith の使い方が分かったところです。
762デフォルトの名無しさん
2014/09/12(金) 11:29:17.36ID:vSDiSYyP MenuItem作って
SubMenu作って
AddItem
SubMenu作って
AddItem
763デフォルトの名無しさん
2014/09/12(金) 11:47:23.49ID:S8WOzChk764デフォルトの名無しさん
2014/09/12(金) 11:47:52.57ID:vSDiSYyP765デフォルトの名無しさん
2014/09/12(金) 12:20:43.41ID:k4huCAJU >>764
これ、今ちょうど数秒前に見終わったところだった。
これ見てると、
1. wxSmithでwxFormをエディット中に、「MenuBar」ではなく「Menu」ボタンを押して
「要素」を追加する。
そうするとwxSmithの上辺に要素のアイコンが並んでいる末尾に新しいアイコンが追加される。
2. 追加したMenu要素に名前を付ける。
3. wxFormの中に既に配置してあったwxPanelに対して、マウス右UPイベントに対応するハンドラを追加する。
4. そのハンドラの中に、手作業で PopupMenu()関数の関数呼び出しを書き、
その引数に2.でMenuに付けおいた名前を書く。
こここまでは大した手間じゃない。
その後が問題で、EVENT_TABLE の「自動的にwxSmith が作成する範囲」の外側(直後)に、
POPUP MENUのMENU項目数分だけ、手作業で Connect() 関数を書いている。メニュー項目が7個だと、
Connect()関数も7個書く。それぞれ、MENU項目に付けた ID_xxxx の値と、対応する自前の
イベント・ハンドラの関数名を引数に指定して。
最後の部分が知りたかった事で、POPUP MENUの作り方としてはかなり面倒な方法に属する。
これ、今ちょうど数秒前に見終わったところだった。
これ見てると、
1. wxSmithでwxFormをエディット中に、「MenuBar」ではなく「Menu」ボタンを押して
「要素」を追加する。
そうするとwxSmithの上辺に要素のアイコンが並んでいる末尾に新しいアイコンが追加される。
2. 追加したMenu要素に名前を付ける。
3. wxFormの中に既に配置してあったwxPanelに対して、マウス右UPイベントに対応するハンドラを追加する。
4. そのハンドラの中に、手作業で PopupMenu()関数の関数呼び出しを書き、
その引数に2.でMenuに付けおいた名前を書く。
こここまでは大した手間じゃない。
その後が問題で、EVENT_TABLE の「自動的にwxSmith が作成する範囲」の外側(直後)に、
POPUP MENUのMENU項目数分だけ、手作業で Connect() 関数を書いている。メニュー項目が7個だと、
Connect()関数も7個書く。それぞれ、MENU項目に付けた ID_xxxx の値と、対応する自前の
イベント・ハンドラの関数名を引数に指定して。
最後の部分が知りたかった事で、POPUP MENUの作り方としてはかなり面倒な方法に属する。
766デフォルトの名無しさん
2014/09/12(金) 12:28:57.27ID:ylwL1QX/ 馬鹿には無理
767デフォルトの名無しさん
2014/09/12(金) 14:27:34.99ID:8yVPY0Zt 7個のメニュー項目にイベント結びつけるのに7行コード書くのって、そんな突出して面倒か?
768デフォルトの名無しさん
2014/09/12(金) 15:27:57.79ID:mqgnzDe4 >>767
それは、「EVENT_TABLE」の箇所だけの話で、実際は、*.h に
メンバ関数宣言を7つ書き、*.cpp に
Zzzz Ccccc::OnXxxxx( Yyyy *pYyyy )
{
return Qqqqq;
}
みたいなの(4行)を 7 つ書く必要がある。
少なくとも (1+1+4)*7 = 42 行だ。
それは、「EVENT_TABLE」の箇所だけの話で、実際は、*.h に
メンバ関数宣言を7つ書き、*.cpp に
Zzzz Ccccc::OnXxxxx( Yyyy *pYyyy )
{
return Qqqqq;
}
みたいなの(4行)を 7 つ書く必要がある。
少なくとも (1+1+4)*7 = 42 行だ。
769デフォルトの名無しさん
2014/09/12(金) 16:36:39.60ID:ylwL1QX/ IBみたいなのを期待したら駄目
770デフォルトの名無しさん
2014/09/12(金) 19:11:10.85ID:cDGrnlyB なんで今更wxSmithなんだよ古臭いな
なんでイベントテーブル使ってんだよ古臭いな
黙ってwxFormBuilder使ってみろよメッチャ簡単で笑えるぞ
なんでイベントテーブル使ってんだよ古臭いな
黙ってwxFormBuilder使ってみろよメッチャ簡単で笑えるぞ
771デフォルトの名無しさん
2014/09/12(金) 19:15:42.12ID:nAjxttHn772デフォルトの名無しさん
2014/09/12(金) 19:26:00.24ID:cDGrnlyB >>771
ちんまい個人用ツールしか作った事が無いから大規模プログラムでどうなるかは分からんが、
俺はwxFormBuilderでGUIデザインし、VisualStudioでコード書いてる。
GUI部品を追加したくなったら、いつでも追加編集できる。
もちろんイベント追加も問題ない。
VSでコード書きつつGUIエディットしても、VSにフォーカスを移したら勝手に読み込み直してくれる。
今まで書いたコードがGUI生成時に消去される事も無い。
これにはちょっと条件があるけどな。
ちんまい個人用ツールしか作った事が無いから大規模プログラムでどうなるかは分からんが、
俺はwxFormBuilderでGUIデザインし、VisualStudioでコード書いてる。
GUI部品を追加したくなったら、いつでも追加編集できる。
もちろんイベント追加も問題ない。
VSでコード書きつつGUIエディットしても、VSにフォーカスを移したら勝手に読み込み直してくれる。
今まで書いたコードがGUI生成時に消去される事も無い。
これにはちょっと条件があるけどな。
773デフォルトの名無しさん
2014/09/12(金) 19:30:56.63ID:nAjxttHn774デフォルトの名無しさん
2014/09/12(金) 19:38:30.73ID:RfUl3Wi+ wxFormBuilderかあ
もはやクロスプラットフォームでGUIがGUIでデザインできるのか(しかもフリーソフトウェア)
もはやクロスプラットフォームでGUIがGUIでデザインできるのか(しかもフリーソフトウェア)
775デフォルトの名無しさん
2014/09/12(金) 19:39:02.29ID:nAjxttHn VSは、外部エディタでソースを編集した場合、VSに戻ると自動的に再ロード
してくれる機能がある事は知ってる。これは昔からある機能。
してくれる機能がある事は知ってる。これは昔からある機能。
776デフォルトの名無しさん
2014/09/12(金) 20:52:41.52ID:cDGrnlyB >>773
凝りに凝ったメニューは知らんが、ポップアップメニューの作成および
メニュークリック時のイベント生成なんかは全部wxFormBuilder上で出来る。
従来のイベントテーブルでも生成してくれるし、Connect関数を使ったイベント生成も出来る。
今はConnectも古くてBindがトレンドらしいが、詳しくは知らない。
http://www.dotup.org/uploda/www.dotup.org5309542.zip.html
参考までに、wxFormBuilderのみで作ったサンプルコードを添付する。
自分で書いたのはmain.cppとthis->Close();だけ。
VS2013 + wxWidget3.0.1でビルド確認済。
凝りに凝ったメニューは知らんが、ポップアップメニューの作成および
メニュークリック時のイベント生成なんかは全部wxFormBuilder上で出来る。
従来のイベントテーブルでも生成してくれるし、Connect関数を使ったイベント生成も出来る。
今はConnectも古くてBindがトレンドらしいが、詳しくは知らない。
http://www.dotup.org/uploda/www.dotup.org5309542.zip.html
参考までに、wxFormBuilderのみで作ったサンプルコードを添付する。
自分で書いたのはmain.cppとthis->Close();だけ。
VS2013 + wxWidget3.0.1でビルド確認済。
777デフォルトの名無しさん
2014/09/13(土) 07:40:07.50ID:CAfEAxmE778デフォルトの名無しさん
2014/09/13(土) 16:39:39.92ID:JrIr4YUs >>777
説明がめんどくさいから、wxFormBuilderでこの「wxMenuTest.fbp.」を開いて確認してくれ。
あとは適当に触ってれば理解できるだろ。
http://www.dotup.org/uploda/www.dotup.org5310926.zip.html
適当にGUIを作ったらF8キーでメインクラスを生成して、
その後F6キーでサブクラスを生成すればいい。
あとは添付した「main.cpp」みたいなコードを書いてビルドすれば目出度くGUIプログラムの完成だ。
説明がめんどくさいから、wxFormBuilderでこの「wxMenuTest.fbp.」を開いて確認してくれ。
あとは適当に触ってれば理解できるだろ。
http://www.dotup.org/uploda/www.dotup.org5310926.zip.html
適当にGUIを作ったらF8キーでメインクラスを生成して、
その後F6キーでサブクラスを生成すればいい。
あとは添付した「main.cpp」みたいなコードを書いてビルドすれば目出度くGUIプログラムの完成だ。
779デフォルトの名無しさん
2014/09/13(土) 17:37:50.07ID:dXOJBgge レイアウトやイベントの仕様が
前もって分かって一発で決まるようなものならいいけど
そうでない場合は細かいテクが必要になるんだよなぁ
VB,delphi,VisualStudio他のポトペタとは違って
基本クラスや継承クラスの生成コードは
上書きしちゃってよしなにしてくれないから目視マージが必要になる
で、それならxrcでいっかなとなったりとね
あとは最近のバージョンでは修正されてるかも知らないけど
splitter > panel > sizer > xxx
の深いネストが嫌いだったな
バグだよね
前もって分かって一発で決まるようなものならいいけど
そうでない場合は細かいテクが必要になるんだよなぁ
VB,delphi,VisualStudio他のポトペタとは違って
基本クラスや継承クラスの生成コードは
上書きしちゃってよしなにしてくれないから目視マージが必要になる
で、それならxrcでいっかなとなったりとね
あとは最近のバージョンでは修正されてるかも知らないけど
splitter > panel > sizer > xxx
の深いネストが嫌いだったな
バグだよね
780デフォルトの名無しさん
2014/09/13(土) 18:03:46.11ID:iQniTJEB >>778
出来れば言葉で説明していただけるととても有難いんだけれども。
出来れば言葉で説明していただけるととても有難いんだけれども。
781デフォルトの名無しさん
2014/09/13(土) 18:20:32.24ID:iQniTJEB >>776
MyProject1MyFrame1.cpp に、
void MyProject1MyFrame1::m_button1OnButtonClick( wxCommandEvent& event )
{
// TODO: Implement m_button1OnButtonClick
this->Close();
}
と類似の行が沢山あるけど、this->Close() 以外は、wxFormBuilder が自動生成したとのことで Ok ?
>>779
>基本クラスや継承クラスの生成コードは
>上書きしちゃってよしなにしてくれないから目視マージが必要になる
>で、それならxrcでいっかなとなったりとね
この辺りとの関連が知りたい。自分で書いたコードが勝手に上書きされて消されてしまうということ?
MyProject1MyFrame1.cpp に、
void MyProject1MyFrame1::m_button1OnButtonClick( wxCommandEvent& event )
{
// TODO: Implement m_button1OnButtonClick
this->Close();
}
と類似の行が沢山あるけど、this->Close() 以外は、wxFormBuilder が自動生成したとのことで Ok ?
>>779
>基本クラスや継承クラスの生成コードは
>上書きしちゃってよしなにしてくれないから目視マージが必要になる
>で、それならxrcでいっかなとなったりとね
この辺りとの関連が知りたい。自分で書いたコードが勝手に上書きされて消されてしまうということ?
782デフォルトの名無しさん
2014/09/13(土) 18:22:33.01ID:iQniTJEB そもそも wxFormBuilder って、人間が書いたコードと「マージ」や「アペンド」する機能は全くなくて、
デザイナのテキスト領域に表示されるコードをコピペして使う程度の事しかできないのかな?
デザイナのテキスト領域に表示されるコードをコピペして使う程度の事しかできないのかな?
783デフォルトの名無しさん
2014/09/13(土) 18:27:14.64ID:lhtCGruO xrcはwxFormBuilderだとwxRibbonとかで生成に抜けがあるよね
これ自体はそのうちなおるだろうけど、案外使われてないのかなxrc
これ自体はそのうちなおるだろうけど、案外使われてないのかなxrc
784デフォルトの名無しさん
2014/09/13(土) 18:54:43.70ID:iQniTJEB class MyFrame1 : public wxFrame {・・・};
class MyProject1MyFrame1 : public MyFrame1 {・・・};
となっていて、
http://stackoverflow.com/questions/8255753/how-to-add-personal-code-into-wxformbuilder-generated-class
の
・build your frame/panel in formbuilder
・generate inherited class
・implement your handling code in inherited class
・make changes to form/panel in wxFormbuilder ->
will only affect generated class, not inherited class
の最後の行と矛盾するね。
wxFormBuilder は、MyFrame1 は書き換えるが、それを継承した所の MyProject1MyFrame1 は、最初の
一回しか書き換えない(というよりユーザーが指示しないと生成しない)、ということらしいから。
class MyProject1MyFrame1 : public MyFrame1 {・・・};
となっていて、
http://stackoverflow.com/questions/8255753/how-to-add-personal-code-into-wxformbuilder-generated-class
の
・build your frame/panel in formbuilder
・generate inherited class
・implement your handling code in inherited class
・make changes to form/panel in wxFormbuilder ->
will only affect generated class, not inherited class
の最後の行と矛盾するね。
wxFormBuilder は、MyFrame1 は書き換えるが、それを継承した所の MyProject1MyFrame1 は、最初の
一回しか書き換えない(というよりユーザーが指示しないと生成しない)、ということらしいから。
785デフォルトの名無しさん
2014/09/13(土) 18:57:59.23ID:iQniTJEB つまり、>>781 のイベント・ハンドラにおいて、this->Close(); の外側の部分も手作業で
書くしかないのではなかろうか?
そして、対応する *.h ファイルの中に、同じ関数のメンバ関数宣言も手作業で追加するしかないのでは?
書くしかないのではなかろうか?
そして、対応する *.h ファイルの中に、同じ関数のメンバ関数宣言も手作業で追加するしかないのでは?
786デフォルトの名無しさん
2014/09/13(土) 19:05:46.06ID:lhtCGruO 実装の中身以外は何一つ手では書かないっていうなら、wxWidgetsは投げ捨てて
QtCreator有するQtか、C++ Builderあたりを使うしかないよ。
wxFormBuilderはIDEじゃないし。
QtCreator有するQtか、C++ Builderあたりを使うしかないよ。
wxFormBuilderはIDEじゃないし。
787デフォルトの名無しさん
2014/09/13(土) 19:07:33.52ID:iQniTJEB >>786
QtCreator では、それが出来るのかな?
QtCreator では、それが出来るのかな?
788デフォルトの名無しさん
2014/09/13(土) 19:09:46.08ID:o7tow4WW XRC最強なんですけど
789デフォルトの名無しさん
2014/09/13(土) 19:18:48.99ID:JrIr4YUs >>785
言葉通りに受け取ってくれればいい。
本当に「this->Close();以外書いてない」んだ。
つまり関数実装部は全て自動生成される。
つーか試してくれよ。
これだけ御膳立てしたんだからさ。
言葉通りに受け取ってくれればいい。
本当に「this->Close();以外書いてない」んだ。
つまり関数実装部は全て自動生成される。
つーか試してくれよ。
これだけ御膳立てしたんだからさ。
790デフォルトの名無しさん
2014/09/13(土) 19:23:58.85ID:iQniTJEB791デフォルトの名無しさん
2014/09/13(土) 19:27:26.32ID:iQniTJEB >>790
>そいういうやり方だと、ボタンやメニュー項目を一つ増やす度に、手作業で、また、
>this->Close();
>を自分で書かなきゃならない。
ここの部分を補足すると、その時に追加したボタンやメニュー項目に対するハンドラだけ
でなく、既に存在していたボタンやメニュー項目に対する全てのハンドラの中身を手作業で
コピーする必要があるということになる。
ボタンやメニュー項目の個数をN とすると、O(N^2) の作業時間が必要になるね。
>そいういうやり方だと、ボタンやメニュー項目を一つ増やす度に、手作業で、また、
>this->Close();
>を自分で書かなきゃならない。
ここの部分を補足すると、その時に追加したボタンやメニュー項目に対するハンドラだけ
でなく、既に存在していたボタンやメニュー項目に対する全てのハンドラの中身を手作業で
コピーする必要があるということになる。
ボタンやメニュー項目の個数をN とすると、O(N^2) の作業時間が必要になるね。
792デフォルトの名無しさん
2014/09/13(土) 19:44:06.05ID:JrIr4YUs >>790
> そいういうやり方だと、ボタンやメニュー項目を一つ増やす度に、手作業で、また、
> this->Close();
> を自分で書かなきゃならない。
そこらへんに少しコツがあってな。
自動生成された部分を一切変更しない限りにおいて、
後から機能追加して再度サブクラスを生成した時、以前書いた部分は削除されない。
つまり今回の例では「this->Close();」は消えずに残る。
逆に言えば「// TODO〜」コメントの削除や編集すら許されないという事なんだけどな。
これが守られなかった場合、同名の(空の)関数が別に生成される。
この場合は旧関数から新関数へのコピペおよび旧関数の削除の手間が生じるが、
いずれにせよ一度書いたものが消える事は無い。
ヘッダファイルにおいても同様であり、
//// end generated include と
/** Implementing MyFrame1 */ の間、それと
//// end generated class members 以降の行に書いた内容は削除されない。
安心して機能追加できる。
不安だったら再生成する前にバックアップ取っておけばいい。
問題があるとすれば、コードのインデントが全て消える事。
Eclipse等開発環境のコードフォーマッタで解決するが、3.4.0beta時点では
インデント維持されてた筈なんだ。なんで維持されなくなったんだ?
俺の見落しか仕様かバグか。
> そいういうやり方だと、ボタンやメニュー項目を一つ増やす度に、手作業で、また、
> this->Close();
> を自分で書かなきゃならない。
そこらへんに少しコツがあってな。
自動生成された部分を一切変更しない限りにおいて、
後から機能追加して再度サブクラスを生成した時、以前書いた部分は削除されない。
つまり今回の例では「this->Close();」は消えずに残る。
逆に言えば「// TODO〜」コメントの削除や編集すら許されないという事なんだけどな。
これが守られなかった場合、同名の(空の)関数が別に生成される。
この場合は旧関数から新関数へのコピペおよび旧関数の削除の手間が生じるが、
いずれにせよ一度書いたものが消える事は無い。
ヘッダファイルにおいても同様であり、
//// end generated include と
/** Implementing MyFrame1 */ の間、それと
//// end generated class members 以降の行に書いた内容は削除されない。
安心して機能追加できる。
不安だったら再生成する前にバックアップ取っておけばいい。
問題があるとすれば、コードのインデントが全て消える事。
Eclipse等開発環境のコードフォーマッタで解決するが、3.4.0beta時点では
インデント維持されてた筈なんだ。なんで維持されなくなったんだ?
俺の見落しか仕様かバグか。
793デフォルトの名無しさん
2014/09/14(日) 06:35:44.14ID:wTwol/0w なるほど、wxFormBuilderも新規出力(全書き換え)しかできないわけではないという
ことなの?
どうやるのかな?
ことなの?
どうやるのかな?
794デフォルトの名無しさん
2014/09/14(日) 06:44:15.89ID:wTwol/0w あと、EVENT TABLEが古いと言ってる人がいたけど、Connect()がそれに置き換わっただけ
だからね。使う側から目線では(抽象的な意味では)変わってない。配列で静的に持っているか、
関数で登録するかの違いに過ぎないから。
だからね。使う側から目線では(抽象的な意味では)変わってない。配列で静的に持っているか、
関数で登録するかの違いに過ぎないから。
795デフォルトの名無しさん
2014/09/14(日) 07:18:40.80ID:wTwol/0w 以下によると、wxSmith には、TOP LEVEL RESOURCE を2つ以上作成する方法が見つからないらしい。
いったん、1つのTOP LEVEL WINDOW を作ると、全てがそのウィンドウの子供になってしまう。
POPUP MENU や、メインウィンドウに付随する1群のダイアログは、作るのが難しいらしい。
それに対して、wxFormBuilderは、2つ以上の TOP LEVEL RESOURCE を作ることが出来る、
と主張している。
http://forums.codeblocks.org/index.php?topic=15742.0
It's one of reasons why I have switched from wxSmith to wxFormBuilder.
I haven't found how can I create more than one "top level" resource in my XRC file using wxSmith.
Once I created a top level window, everything needed to be a child of this window.
Create a set of popup menus? Forget it. Create a set of dialogs along with your main window? Forget it.
wxFormBuilder allows more than one top level resource.
Moreover, wxFormBuilder can create only a XRC file - well, it creates a code, too,
and you can paste parts of the code in your own code.
I am curious what I have missed. I am a "XRC user", too.
いったん、1つのTOP LEVEL WINDOW を作ると、全てがそのウィンドウの子供になってしまう。
POPUP MENU や、メインウィンドウに付随する1群のダイアログは、作るのが難しいらしい。
それに対して、wxFormBuilderは、2つ以上の TOP LEVEL RESOURCE を作ることが出来る、
と主張している。
http://forums.codeblocks.org/index.php?topic=15742.0
It's one of reasons why I have switched from wxSmith to wxFormBuilder.
I haven't found how can I create more than one "top level" resource in my XRC file using wxSmith.
Once I created a top level window, everything needed to be a child of this window.
Create a set of popup menus? Forget it. Create a set of dialogs along with your main window? Forget it.
wxFormBuilder allows more than one top level resource.
Moreover, wxFormBuilder can create only a XRC file - well, it creates a code, too,
and you can paste parts of the code in your own code.
I am curious what I have missed. I am a "XRC user", too.
796デフォルトの名無しさん
2014/09/14(日) 10:11:50.71ID:pzVlR1Le お前が返信に時間かかってるのは煽るための文言を探してくるためか?
これだけ御膳立てしてやっても自分では一切手を動かす気は無いんだから、
呆れを通り越して笑いすら出てくるわ。俺はお前の保護者じゃねえよ。
英文は読めるみたいだからソフトの使い方が分からない筈があるまいに。
>>793
こんな問いに答える気はもう無い。理由は上記の通りだ。
今まで以上に噛み砕いた説明は俺には出来ないし、
そもそも手を動かしていれば既に理解している筈の内容ばかりだからな。
F8とF6からクラス選んで名前付けてコード生成すら出来ん奴が本当にプログラム書けるのか?
無理しないでVSやMonoでC#あたり使ってればいいんじゃないか?
そっちの方がずっと楽だぞ。
>>794
それ書いたのは俺だが、利用上はそれだけの違いでは済まないという事も
英文読んだなら理解できてるはずだろ。煽るためのネタにはならんぞ。
柔軟性は高いに越した事はなかろうよ。
もちろんその機能が自分にとって役立つかどうかは別問題だ。
これだけ御膳立てしてやっても自分では一切手を動かす気は無いんだから、
呆れを通り越して笑いすら出てくるわ。俺はお前の保護者じゃねえよ。
英文は読めるみたいだからソフトの使い方が分からない筈があるまいに。
>>793
こんな問いに答える気はもう無い。理由は上記の通りだ。
今まで以上に噛み砕いた説明は俺には出来ないし、
そもそも手を動かしていれば既に理解している筈の内容ばかりだからな。
F8とF6からクラス選んで名前付けてコード生成すら出来ん奴が本当にプログラム書けるのか?
無理しないでVSやMonoでC#あたり使ってればいいんじゃないか?
そっちの方がずっと楽だぞ。
>>794
それ書いたのは俺だが、利用上はそれだけの違いでは済まないという事も
英文読んだなら理解できてるはずだろ。煽るためのネタにはならんぞ。
柔軟性は高いに越した事はなかろうよ。
もちろんその機能が自分にとって役立つかどうかは別問題だ。
797デフォルトの名無しさん
2014/09/14(日) 12:57:54.21ID:wTwol/0w798デフォルトの名無しさん
2014/09/14(日) 19:26:47.68ID:P8BkuFbg799デフォルトの名無しさん
2014/09/14(日) 19:52:29.25ID:wTwol/0w >>798
前半意味不明です。
前半意味不明です。
800デフォルトの名無しさん
2014/09/14(日) 20:11:08.81ID:P8BkuFbg >>799
> ここの部分を補足すると、その時に追加したボタンやメニュー項目に対するハンドラだけ
> でなく、既に存在していたボタンやメニュー項目に対する全てのハンドラの中身を手作業で
> コピーする必要があるということになる。
電卓とか参考になると思うよ
> ここの部分を補足すると、その時に追加したボタンやメニュー項目に対するハンドラだけ
> でなく、既に存在していたボタンやメニュー項目に対する全てのハンドラの中身を手作業で
> コピーする必要があるということになる。
電卓とか参考になると思うよ
801デフォルトの名無しさん
2014/09/15(月) 08:45:18.98ID:7daUusVM >>800
ならないと思う。
全てのボタンを一気に wxFromBuilder で作ってからイベントハンドラの
コードを手作業で書けば問題は表面化しないから。
そうでなくて、実際のプログラミングでは、機能追加のたびにボタンを追加して行く
ような作業が必要となる。
その時に上書きされてしまうかどうかがポイント。
ならないと思う。
全てのボタンを一気に wxFromBuilder で作ってからイベントハンドラの
コードを手作業で書けば問題は表面化しないから。
そうでなくて、実際のプログラミングでは、機能追加のたびにボタンを追加して行く
ような作業が必要となる。
その時に上書きされてしまうかどうかがポイント。
802デフォルトの名無しさん
2014/09/15(月) 10:58:47.94ID:WIy8nvhC xrcでFA
803デフォルトの名無しさん
2014/09/15(月) 19:07:00.41ID:LoW0dSpU だから「ソフトの様式さえ守っていれば」書いたコードが消去されるような事は無いと何度言えば分かってくれるんだ。
試してないのが丸判りだ。ほんっっっっっっとに口ばっかりだなお前は。
これで悪気が無いというんだから最悪だ。本当に本当に最悪だ。
そもそもwxFormBuilderで生成したイベント部に何十行も書くのか?
保守性考えたら、C++だったら別にクラスや関数作って、そっちに処理ブン投げて終わりじゃないか?
試してないのが丸判りだ。ほんっっっっっっとに口ばっかりだなお前は。
これで悪気が無いというんだから最悪だ。本当に本当に最悪だ。
そもそもwxFormBuilderで生成したイベント部に何十行も書くのか?
保守性考えたら、C++だったら別にクラスや関数作って、そっちに処理ブン投げて終わりじゃないか?
804デフォルトの名無しさん
2014/09/16(火) 00:01:13.35ID:5MCxTvVt805デフォルトの名無しさん
2014/09/16(火) 02:40:02.42ID:JmUjnEhI これは一緒に仕事できないタイプですわ
806デフォルトの名無しさん
2014/09/16(火) 02:41:50.55ID:JmUjnEhI 自分はネット上に調べ物を書くときは自分が試した範囲のことしか書かないよ
妄想の実行結果で文句言ったりしないし、困難があれば自分で突破する
妄想の実行結果で文句言ったりしないし、困難があれば自分で突破する
807デフォルトの名無しさん
2014/09/16(火) 09:52:32.15ID:5MCxTvVt 「共助」という概念を知らないの?
「自助」しかしてはならないなら、掲示板の意味がほとんど無くなる。
「自助」しかしてはならないなら、掲示板の意味がほとんど無くなる。
808デフォルトの名無しさん
2014/09/16(火) 15:26:46.89ID:5MCxTvVt >>803
>そもそもwxFormBuilderで生成したイベント部に何十行も書くのか?
>保守性考えたら、C++だったら別にクラスや関数作って、そっちに処理ブン投げて終わりじゃないか?
これは駄目。
なぜなら、また、*.cpp と *.h に決まりきったコードを書く必要が出てくる
から。イベントハンドラ 1 つずつにこれを書く作業が大きなロスを
生む。
>そもそもwxFormBuilderで生成したイベント部に何十行も書くのか?
>保守性考えたら、C++だったら別にクラスや関数作って、そっちに処理ブン投げて終わりじゃないか?
これは駄目。
なぜなら、また、*.cpp と *.h に決まりきったコードを書く必要が出てくる
から。イベントハンドラ 1 つずつにこれを書く作業が大きなロスを
生む。
809デフォルトの名無しさん
2014/09/16(火) 22:49:04.68ID:rQo1SAiX >>804
共助?お前だけは言っちゃいかん言葉だ。
1から100まで他人に聞いてばっかじゃんかお前。
お前がスレの閲覧者に対して何か有益な事一つでも書いたか?
ぜ〜〜〜〜〜んぶ愚痴もしくは煽りじゃんか。
全部自分で試さなきゃいけないとか言ってるがよ。
そもそもお前、俺の言った事何一つ聞く気が無いだろ?
徹頭徹尾お前はコードが消える前提でしか話してない。
信じてるなら未だにコードが消えるなんて言ったりする筈が無いからな。
書かれた事を信じず、そのくせ試す気も無い奴が共に助け合う?笑わせんな。
あと、決まりきったコードを書く必要が出てきてはダメな理由がまるで分からん。
そもそも一度書いたら終わりなのに、なんでロスなんだ?
具体例をサンプルコードで挙げてくれないか。
共助とか抜かしてるんだから勿論やってくれるよな?
共助?お前だけは言っちゃいかん言葉だ。
1から100まで他人に聞いてばっかじゃんかお前。
お前がスレの閲覧者に対して何か有益な事一つでも書いたか?
ぜ〜〜〜〜〜んぶ愚痴もしくは煽りじゃんか。
全部自分で試さなきゃいけないとか言ってるがよ。
そもそもお前、俺の言った事何一つ聞く気が無いだろ?
徹頭徹尾お前はコードが消える前提でしか話してない。
信じてるなら未だにコードが消えるなんて言ったりする筈が無いからな。
書かれた事を信じず、そのくせ試す気も無い奴が共に助け合う?笑わせんな。
あと、決まりきったコードを書く必要が出てきてはダメな理由がまるで分からん。
そもそも一度書いたら終わりなのに、なんでロスなんだ?
具体例をサンプルコードで挙げてくれないか。
共助とか抜かしてるんだから勿論やってくれるよな?
810デフォルトの名無しさん
2014/09/16(火) 22:56:48.49ID:l7dE9nrH >>809
もうほっとけよ。相手するだけ無駄だ。
もうほっとけよ。相手するだけ無駄だ。
811デフォルトの名無しさん
2014/09/16(火) 23:45:52.12ID:5MCxTvVt >>809
あんたが作ってるプログラムとは規模が違うからだよ。
あんたが作ってるプログラムとは規模が違うからだよ。
812デフォルトの名無しさん
2014/09/16(火) 23:46:54.65ID:JmUjnEhI てか決まりきったコードを減らすためのテンプレート?
そのためのメタプログラミングでしょ
そのためのメタプログラミングでしょ
813デフォルトの名無しさん
2014/09/17(水) 00:02:45.14ID:i4FG8Gei >>812
はあ?
はあ?
814デフォルトの名無しさん
2014/09/17(水) 00:51:45.07ID:i4FG8Gei >>809
中段、あんたの言っていることはある程度は分かるんだよ。
でも、wxSmith の方が遥かにドキュメントが充実している上に、
CodeBlocks に統合されており、元々の設計からしてwxFormBuilderの
ような勝手な新規上書き仕様にはなってない。
wxSmithではマージやアペンドは当たり前なんだよ。その上で、
POPUP MENU だけは、作り方が分かたなかったから詳しい人に
聞いてみたかったんだ。質問する側が、答える側の言っていることを
全部試すなんて期待すべきじゃないぞ。
中段、あんたの言っていることはある程度は分かるんだよ。
でも、wxSmith の方が遥かにドキュメントが充実している上に、
CodeBlocks に統合されており、元々の設計からしてwxFormBuilderの
ような勝手な新規上書き仕様にはなってない。
wxSmithではマージやアペンドは当たり前なんだよ。その上で、
POPUP MENU だけは、作り方が分かたなかったから詳しい人に
聞いてみたかったんだ。質問する側が、答える側の言っていることを
全部試すなんて期待すべきじゃないぞ。
815デフォルトの名無しさん
2014/09/17(水) 00:56:23.54ID:i4FG8Gei なんちゅうか、wxSmithは古いと勝手に決め付けて、wxFormBuilder
の方がいいという主張なんだから、どう良いかはあんたが説明すべき
でこっちに試せと言うのはお門違いなんだよ。
そもそもドキュメントが少なすぎる。試すしかないないなんて、
原始人レベルじゃないか。仕様は紙に書くのが基本だが、wxSmithの
場合は動画も多いからまだいいんだよ。wxFormBuilderなんて駄目
なんじゃないのか。進めている海外サイトもあるが、開発者本人が
書いているだけかも知れんから、信用すべきじゃない。
の方がいいという主張なんだから、どう良いかはあんたが説明すべき
でこっちに試せと言うのはお門違いなんだよ。
そもそもドキュメントが少なすぎる。試すしかないないなんて、
原始人レベルじゃないか。仕様は紙に書くのが基本だが、wxSmithの
場合は動画も多いからまだいいんだよ。wxFormBuilderなんて駄目
なんじゃないのか。進めている海外サイトもあるが、開発者本人が
書いているだけかも知れんから、信用すべきじゃない。
816デフォルトの名無しさん
2014/09/17(水) 20:01:28.47ID:OwhU3Vur wxFormBuilderがどう良いかはもう書いた。お前が理解しようとしてないだけだ。
あとはお前が試すだけなんだが、自分が知らない新しい技術を試す気が無い
臆病者には永久に理解する事は無理。だからもう何もやらなくていい。お前を諭す事は諦めた。
まだ「勝手な新規上書き」とか言ってるしな。しないって何度言わせるんだか。
なんで理解しようとしないんだ。正規のドキュメントじゃないからか。
同じ事を書いてる奴が俺以外にいないからか。
それとも2chの落書きは信用ならんと?だったらなぜここで質問なんかしたんだ。
wxSmithだろうが何だろうが2chの書き込みって時点で信用度は同じだろう。
なんのかんのグダグダ言っても、結局wxSmithに関する事以外は試す気が一切無いという事も良くわかった。
もうお前が俺を論破して俺が尻尾巻いて退散したって事でいいや。相手するのがバカらしくなった。
所詮お前はマニュアルがブ厚いだけで満足する好奇心の無い老害だって事もわかったし。
ついでに口だけプログラマで、ちょっとしたサンプルコードも書けない無能だって事もね。
「馬鹿には無理」
いい台詞だわ。今頃になってつくづく思うよ。
あとはお前が試すだけなんだが、自分が知らない新しい技術を試す気が無い
臆病者には永久に理解する事は無理。だからもう何もやらなくていい。お前を諭す事は諦めた。
まだ「勝手な新規上書き」とか言ってるしな。しないって何度言わせるんだか。
なんで理解しようとしないんだ。正規のドキュメントじゃないからか。
同じ事を書いてる奴が俺以外にいないからか。
それとも2chの落書きは信用ならんと?だったらなぜここで質問なんかしたんだ。
wxSmithだろうが何だろうが2chの書き込みって時点で信用度は同じだろう。
なんのかんのグダグダ言っても、結局wxSmithに関する事以外は試す気が一切無いという事も良くわかった。
もうお前が俺を論破して俺が尻尾巻いて退散したって事でいいや。相手するのがバカらしくなった。
所詮お前はマニュアルがブ厚いだけで満足する好奇心の無い老害だって事もわかったし。
ついでに口だけプログラマで、ちょっとしたサンプルコードも書けない無能だって事もね。
「馬鹿には無理」
いい台詞だわ。今頃になってつくづく思うよ。
817デフォルトの名無しさん
2014/09/18(木) 06:03:45.56ID:xGrJvmYs 自己紹介乙
818デフォルトの名無しさん
2014/09/18(木) 12:03:25.71ID:jy/8T9ef >>816
質問者に対して試さないから無能だなんて、なんて性格悪いの。
質問者に対して試さないから無能だなんて、なんて性格悪いの。
819デフォルトの名無しさん
2014/09/18(木) 12:08:26.46ID:exm91MOI だよな。ゆとり世代がメインストリームのご時世に
再質問する前に手を動かすなんて面倒なことしてくれるなんてかんがえるほうが愚か
再質問する前に手を動かすなんて面倒なことしてくれるなんてかんがえるほうが愚か
820デフォルトの名無しさん
2014/09/18(木) 12:22:18.94ID:bb7rxdqO 感情や思考を産み出しているのはあなた自身
怒るか怒らないかを決めるのもあなた自身
怒るか怒らないかを決めるのもあなた自身
821デフォルトの名無しさん
2014/12/19(金) 20:18:18.31ID:TVDdwTgk mingw32でwxWidgets作ったら、それを使って作ったプログラムがwinspool.dllがないって怒られるんだよね。
ググったらlibwinspool.aのwinspool.dllをwinspool.drvにバイナリエディタで書き換えたら桶みたいなのがあって試したら動きやがんのな。
まあ、自分のパス通している所にwinspool.drvをwinspool.dll名義で置く方が安全かもしれんが。
ググったらlibwinspool.aのwinspool.dllをwinspool.drvにバイナリエディタで書き換えたら桶みたいなのがあって試したら動きやがんのな。
まあ、自分のパス通している所にwinspool.drvをwinspool.dll名義で置く方が安全かもしれんが。
822デフォルトの名無しさん
2014/12/19(金) 20:32:35.26ID:rnHGXeI5 プログラミング未経験者も大歓迎
823デフォルトの名無しさん
2014/12/20(土) 10:21:06.56ID:NupXv0Mp824デフォルトの名無しさん
2014/12/20(土) 12:24:25.48ID:e+FqSQyU JaneCloneのひとかな
825デフォルトの名無しさん
2014/12/20(土) 12:43:19.97ID:NupXv0Mp 正体ばらすのやめろや
826デフォルトの名無しさん
2014/12/22(月) 04:48:02.90ID:+z5apoGR 自分でコンフィグ(config.h)いじってライセンスに問題ありそうなregexや必要ないコンポーネント除去したり
必要なものだけ自分のプロジェクトに含めて一緒にコンパイルしたほうが小さくなるし最適化よく効いていいで
必要なものだけ自分のプロジェクトに含めて一緒にコンパイルしたほうが小さくなるし最適化よく効いていいで
827デフォルトの名無しさん
2014/12/22(月) 05:05:52.44ID:BayKO7Ke thx!
828デフォルトの名無しさん
2015/02/21(土) 05:55:29.37ID:QWPWn37f trunkのgcc5をビルドした
"これまでのgccでビルドしたwxライブラリ"はgcc5じゃ使えなくなるっぽい
自前ビルドのwxライブラリが"再配置が必要"とか言われて使えなかった
gccを4.9.2に変えたらビルド出来た
fltkも同じで、gcc5でfltkのライブラリ作り直したらビルド出来た
が、gcc5でビルドしたライブラリをgcc4.9で使うとビルド出来ない
ひょっとするとgcc5になるとほとんどのc++ライブラリ(特にguiのヤツ)はビルドし直しになるかもしれん
ググったらABIの仕様が変わるって書いてあるけどそのせいかしら
"これまでのgccでビルドしたwxライブラリ"はgcc5じゃ使えなくなるっぽい
自前ビルドのwxライブラリが"再配置が必要"とか言われて使えなかった
gccを4.9.2に変えたらビルド出来た
fltkも同じで、gcc5でfltkのライブラリ作り直したらビルド出来た
が、gcc5でビルドしたライブラリをgcc4.9で使うとビルド出来ない
ひょっとするとgcc5になるとほとんどのc++ライブラリ(特にguiのヤツ)はビルドし直しになるかもしれん
ググったらABIの仕様が変わるって書いてあるけどそのせいかしら
829デフォルトの名無しさん
2015/02/21(土) 07:34:22.52ID:naHue2Us 情報ありがとう
830デフォルトの名無しさん
2015/02/28(土) 22:02:38.00ID:PvSLHqNB メジャーバージョン上がっちゃうとAPIレベルで変わっちゃうからしゃーないね
たぶんlibcとかglibとかも同じじゃないかな
たぶんlibcとかglibとかも同じじゃないかな
831デフォルトの名無しさん
2015/03/28(土) 17:27:29.56ID:P0TSch/c wxWidgetsいじってみたいのだが、基本ビルドしないのでwin環境でビルドの最に必要になってくるライブラリ列挙していただける方居ませんか?
832デフォルトの名無しさん
2015/06/26(金) 16:25:48.92ID:Z/m1CsSA とりあえずpacman -S mingw-w64-x86_64-wxWidgetsしたんだがこの後どうすればいいんだ
833デフォルトの名無しさん
2015/06/26(金) 16:31:37.93ID:GEWLy8h+ なんでmingw版落としたん?
834デフォルトの名無しさん
2015/06/26(金) 16:38:13.77ID:Z/m1CsSA えっバイナリあるからそれ使っちゃえって思ったんだけどもしかして自前ビルドの方がいい?
835デフォルトの名無しさん
2015/06/26(金) 16:44:59.52ID:GEWLy8h+ なにこの右斜め上に返事したら左斜めに質問が来た感じ
836デフォルトの名無しさん
2015/06/26(金) 16:50:00.99ID:Z/m1CsSA おすすめの導入記事とかあったら教えてほしいです
837デフォルトの名無しさん
2015/06/28(日) 15:27:20.76ID:8LbvcvQd そんなものがあったら、もっと広まっている
838デフォルトの名無しさん
2015/06/28(日) 16:29:29.77ID:n/fjwSaZ 導入さえ乗り越えれば後はサンプルみればどうにかなるしな
839デフォルトの名無しさん
2015/06/28(日) 17:39:04.28ID:YBvq0FDq 情報が少ないって事は記事書けばアクセス数稼ぐチャンスだと思いな
840デフォルトの名無しさん
2015/07/06(月) 15:24:09.15ID:KifmszY9 wxWidgetsはマジ糞だな、MFCの方が全然イイ
841デフォルトの名無しさん
2015/09/04(金) 08:35:48.11ID:efXmgHpK MFCのどこが良いのかわからん
842デフォルトの名無しさん
2015/10/06(火) 15:40:27.57ID:ZA2UYVtv サイザーage
843デフォルトの名無しさん
2015/10/15(木) 18:04:05.06ID:bdlPZJI1 じゃね
844デフォルトの名無しさん
2015/10/20(火) 22:22:51.11ID:YDU/TMA1 またね
845デフォルトの名無しさん
2015/10/22(木) 17:54:23.14ID:522gqyPw846デフォルトの名無しさん
2015/12/20(日) 14:18:08.28ID:8RLYRFXT MainLoopをマルチスレッドしたいんですけど
847デフォルトの名無しさん
2015/12/20(日) 18:09:14.97ID:gfHpj7/Q >>846
多分出来ないと思うけど、一体何がしたくてそんなことを思いついたの?
多分出来ないと思うけど、一体何がしたくてそんなことを思いついたの?
848デフォルトの名無しさん
2016/03/08(火) 21:50:09.25ID:GSBFVjCW wxRichToolTipってwxToolTipのサブクラスじゃないのか…
マウスカーソルがしばらく置かれたら表示ってしたいときは、自分で全部動きを用意するしかないのかな
マウスカーソルがしばらく置かれたら表示ってしたいときは、自分で全部動きを用意するしかないのかな
849デフォルトの名無しさん
2016/08/07(日) 17:01:07.98ID:sg2m+nAp >>848
そうでもない
そうでもない
850デフォルトの名無しさん
2016/08/31(水) 20:33:57.93ID:yMAnqOnE wxInputFileStream使ったらゲロ遅でワロタ
851デフォルトの名無しさん
2017/04/05(水) 01:28:05.09ID:RSHU1D2c XWindowのオススメの書籍ってありますか?
852デフォルトの名無しさん
2017/07/19(水) 18:46:12.39ID:IRmsE5AJ オチ防止
853デフォルトの名無しさん
2018/04/22(日) 12:40:47.44ID:Z/3cdx8F wxpythonでボタンをクリックしたら別のpyに書いたウィンドウを表示させているのですが、開いたpyウィンドウを閉じるともとのボタンをクリックしても再実行されません。
importは一度だけというのはわかっているのですが・・・
どのような記述をすれば閉じても何度でも再実行できるようになるのでしょうか。
教えて下さい。
importは一度だけというのはわかっているのですが・・・
どのような記述をすれば閉じても何度でも再実行できるようになるのでしょうか。
教えて下さい。
854デフォルトの名無しさん
2018/04/22(日) 16:52:52.79ID:/RR+q6wr うちは問題ないよ
855デフォルトの名無しさん
2018/05/23(水) 19:41:55.71ID:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
M8KJ6
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
M8KJ6
856デフォルトの名無しさん
2018/07/05(木) 01:49:53.33ID:RfoszcD2 C44
857デフォルトの名無しさん
2018/07/05(木) 11:37:49.79ID:IcGtf/nv なんなん
858デフォルトの名無しさん
2018/08/17(金) 09:54:58.81ID:xjFqJl5K サイザー age
859デフォルトの名無しさん
2019/01/17(木) 11:26:06.61ID:uUdEyVn6 旧
860デフォルトの名無しさん
2019/03/13(水) 20:13:36.76ID:fxOETnKT 閑古鳥〜
みんな使ってないんか
みんな使ってないんか
861デフォルトの名無しさん
2019/03/14(木) 13:20:37.52ID:q8OuUl64 これの文字コード変換ツール(UTF8とwchar)バグってない?
862デフォルトの名無しさん
2019/06/19(水) 05:00:24.24ID:tVNS+22r 【出資】松本卓朗 人工知能詐欺【注意】
https://rio2016.5ch.net/test/read.cgi/rikei/1560859403/
https://rio2016.5ch.net/test/read.cgi/rikei/1560859403/
863デフォルトの名無しさん
2019/07/31(水) 12:43:07.98ID:H3/ddQUH サイザー age
864デフォルトの名無しさん
2020/07/07(火) 15:21:00.59ID:HEz8AVd5 wxPythonのDataViewCtrlでValueChanged()呼んだ後のソート結果がおかしい(ソートが途中で終わってる)ことがあるんだがなんでやろ。
ValueChanged()で指定したオブジェクトがその後のDataViewModel.Compare()でなぜか引数のitem2の方に入ってるときはそうなる。
助けて…
ValueChanged()で指定したオブジェクトがその後のDataViewModel.Compare()でなぜか引数のitem2の方に入ってるときはそうなる。
助けて…
865デフォルトの名無しさん
2020/07/07(火) 16:27:36.85ID:092JXqIf866デフォルトの名無しさん
2020/07/08(水) 17:58:54.49ID:jTRnvqGS https://pastebin.com/49kBvu8t
https://github.com/wxWidgets/Phoenix/
にパッチ当てて
demo/DVC_DataViewModel.py を実行してAcquired列でソートしてみてください
こちらの環境はPython 3.7.3@windows10、wxPython 4.1.0
https://github.com/wxWidgets/Phoenix/
にパッチ当てて
demo/DVC_DataViewModel.py を実行してAcquired列でソートしてみてください
こちらの環境はPython 3.7.3@windows10、wxPython 4.1.0
867デフォルトの名無しさん
2021/04/09(金) 15:12:16.49ID:tQcHQU6Y wxGLCanvas 意外と使えるな
868デフォルトの名無しさん
2021/05/31(月) 13:43:35.00ID:mi0ruDzC ViewクラスにXRCファイルからwXWidgetsのコントールを読み込む処理を作成しました
ViewクラスはViewModelクラスのポインタを持っていて、ViewModelクラスで
何かデータが変化した時に、Viewクラスのコントロールを更新したいのですが、
どのように実現すればいいか、ご存じの方は教えていただけないでしょうか?
ViewクラスはViewModelクラスのポインタを持っていて、ViewModelクラスで
何かデータが変化した時に、Viewクラスのコントロールを更新したいのですが、
どのように実現すればいいか、ご存じの方は教えていただけないでしょうか?
869デフォルトの名無しさん
2021/05/31(月) 14:19:23.95ID:C2PTAmxw 途中までで良いからソース貼れ
870デフォルトの名無しさん
2021/06/06(日) 21:37:01.42ID:hpmzgs3h wxwidgetsのGUIスレッドでstd::threadを立ち上げたらアプリがabortしましたけど、
wxThreadを使わないといけないのでしょうか?
wxThreadを使わないといけないのでしょうか?
871デフォルトの名無しさん
2021/07/31(土) 14:51:51.74ID:UnXvou2L wxWidgetsってQt以上に人気ないの?
872デフォルトの名無しさん
2021/07/31(土) 17:56:42.42ID:aG7CICp1 少なくとも日本人にとっては、
日本語の良い解説が無いからじゃないか?
日本語の良い解説が無いからじゃないか?
873デフォルトの名無しさん
2021/07/31(土) 19:02:38.40ID:nyeQQDyY Qtよりはマイナーかな
個人的にはQtよりも好きだけどね
個人的にはQtよりも好きだけどね
874デフォルトの名無しさん
2021/07/31(土) 21:35:58.59ID:oB4GdYJQ 「日本語の良い解説がないから使えない」が本当だったら、
ヘタレすぎないか?
ヘタレすぎないか?
875デフォルトの名無しさん
2021/07/31(土) 23:05:54.00ID:aG7CICp1 いやだってさ、日本人なら出来ることにそこまで違いがなく、日本語リファレンスがある方とない方があるなら、
ある方に流れるでしょやっぱり
で、Qtにはあるし、JAVAや.NETにもある
ある方に流れるでしょやっぱり
で、Qtにはあるし、JAVAや.NETにもある
876デフォルトの名無しさん
2021/09/29(水) 15:19:48.59ID:semLD1u8 みんな 3.1.5 の方を使ってます?
877デフォルトの名無しさん
2021/10/01(金) 17:08:42.13ID:7tHsN3Wb 実質C++からしか使えないというのが痛い
878デフォルトの名無しさん
2021/10/01(金) 18:32:03.77ID:1zfOHrDZ 今wxwidgetsを学びつつGUI版のマインスイーパ作ろうとしてるけど
肝心のマスを表示する部分とマウス操作をどうするのか決まりそうにない
肝心のマスを表示する部分とマウス操作をどうするのか決まりそうにない
879デフォルトの名無しさん
2021/10/02(土) 13:54:50.57ID:IoabfGko >>877
ああ、3.1.5 は開発版だからまだ各種言語用のバインディングが無いんですね
ああ、3.1.5 は開発版だからまだ各種言語用のバインディングが無いんですね
880デフォルトの名無しさん
2021/10/02(土) 15:11:12.62ID:yFRwYWli 日本語情報少ないから(日本では)利用者少ない
っていう程度の話ならちょうど良い馬鹿除けフィルタになってると思うが
っていう程度の話ならちょうど良い馬鹿除けフィルタになってると思うが
881デフォルトの名無しさん
2021/10/03(日) 17:54:03.35ID:qP8PqoPY Code::Blocksでウィジェットの編集が不安定じゃね?
プロパティ弄っただけで落ちてしまうんで初心者には辛い
なるべくコード側で設定しろというwxWidgets神からのお告げか?
プロパティ弄っただけで落ちてしまうんで初心者には辛い
なるべくコード側で設定しろというwxWidgets神からのお告げか?
882デフォルトの名無しさん
2021/10/05(火) 13:54:36.82ID:qj/R0ihU ふつうはxrcをload
883デフォルトの名無しさん
2021/10/06(水) 21:27:04.45ID:antuggG5 wxFormBuilderの方が安定しているやろか?
884デフォルトの名無しさん
2021/10/17(日) 21:20:37.86ID:5UKSiAtl GUIな開発系の支援ツールを作ると仮定して
・wxWigets
省リソースで起動も速いくほぼ何でも出来るが特に今基準だとお手軽とは言い難い
・Webアプリ
お手軽で起動速度の心配もないがファイルの読み書きが出来なかったりデータを保存できなかったり制限が多い
・Node.js系
ストレージとメモリ消費が多い上に起動が遅い
・Tk/Tcl系
省機能版wxWigets。メリット、デメリットもほぼ同じだが更にレガシー
・HTA
Windowsならかなり理想的だったけど今基準だと時代遅れ感が・・・
なかなか良さそうなのがない・・・
・wxWigets
省リソースで起動も速いくほぼ何でも出来るが特に今基準だとお手軽とは言い難い
・Webアプリ
お手軽で起動速度の心配もないがファイルの読み書きが出来なかったりデータを保存できなかったり制限が多い
・Node.js系
ストレージとメモリ消費が多い上に起動が遅い
・Tk/Tcl系
省機能版wxWigets。メリット、デメリットもほぼ同じだが更にレガシー
・HTA
Windowsならかなり理想的だったけど今基準だと時代遅れ感が・・・
なかなか良さそうなのがない・・・
885デフォルトの名無しさん
2021/10/17(日) 22:17:39.30ID:LoZJNxBr 今のC++は昔のC++と比べると使いやすくなっているし、
wxWidgetsもMFCと比べたら作りやすいから問題ない
こんなソフトが無料で使えるなんて有難いわ
wxWidgetsもMFCと比べたら作りやすいから問題ない
こんなソフトが無料で使えるなんて有難いわ
886デフォルトの名無しさん
2021/10/17(日) 22:59:52.41ID:5UKSiAtl wxLua(しかもLuaJITサポート)なんてのがあるらしい。動くなら良さそうかも?
wxRubyは死んでしまったからなぁ・・・
>>885
C++は今のご時世にメモリ不安全な時点でお手軽からはほど遠い感
wxRubyは死んでしまったからなぁ・・・
>>885
C++は今のご時世にメモリ不安全な時点でお手軽からはほど遠い感
887デフォルトの名無しさん
2021/10/25(月) 10:43:12.97ID:vmRZrQEp wxWidgets の Rust 版があれば最強か wxRust ?
888デフォルトの名無しさん
2021/10/27(水) 09:14:30.46ID:SfYw1fpT 今まで食わず嫌いして使わなかったが、意外と使い易いぞ
日本でももっと普及しないかなぁ
日本でももっと普及しないかなぁ
889デフォルトの名無しさん
2021/10/30(土) 00:43:26.14ID:/jzrIUlr qiitaで情報集めようと思ったら僅か13件しかヒットしなかったんですが・・・
890デフォルトの名無しさん
2021/11/03(水) 14:28:06.60ID:6fv+OhcH qiita国際化してないからなω
891デフォルトの名無しさん
2021/11/03(水) 15:03:39.01ID:ZVk0SEUi そもそも、Qiitaで情報を集めること自体が無意味。
892デフォルトの名無しさん
2021/11/03(水) 17:32:29.82ID:kr8blWMm 公式のドキュメントとサンプルでけっこう何とかなるよ
893デフォルトの名無しさん
2021/11/05(金) 14:13:01.70ID:NHrktyHj894デフォルトの名無しさん
2021/11/06(土) 11:39:00.29ID:OTGjrHTi 小規模のソフトなら、わざわざ高価な開発ソフト用意しなくても
wxWidgets で十分だよな
慣れは必要だが、それはどんな開発ソフトでも同じ事だし
wxWidgets で十分だよな
慣れは必要だが、それはどんな開発ソフトでも同じ事だし
895デフォルトの名無しさん
2021/11/06(土) 12:07:27.84ID:gOhwvTWe 個人的に、QtよりもwxWidgetsのほうが好み。
896デフォルトの名無しさん
2021/11/07(日) 19:26:20.70ID:jZCrDLaA Bindを使う時どういう場面だとwinidだのlastidだのを指定する必要があるのかまじで訳分からん
897デフォルトの名無しさん
2021/11/08(月) 02:20:09.45ID:J6d/ajGt898デフォルトの名無しさん
2021/11/08(月) 12:39:36.31ID:QzkUvy+x windowやframeに対してBind()するのか
control.Bind()するのか
どっちが良いの?
control.Bind()するのか
どっちが良いの?
899デフォルトの名無しさん
2021/11/09(火) 16:13:21.33ID:TvjlwvuH900デフォルトの名無しさん
2022/01/28(金) 22:36:57.84ID:sn8ydhaJ 別クラスでもキャプチャしてるラムダをさっとbindできる楽でいい
901デフォルトの名無しさん
2022/03/08(火) 17:27:13.09ID:0RbsA99r Qt5.15LTSの商用版を1年後にオープンソースにするという約束だったが、
それはきちんと守られた様だ・・・
それはきちんと守られた様だ・・・
902デフォルトの名無しさん
2022/03/08(火) 18:47:48.32ID:0RbsA99r >>901
すまん、スレ違いやったわ(^ω^;)
すまん、スレ違いやったわ(^ω^;)
903デフォルトの名無しさん
2022/03/31(木) 21:11:08.32ID:6IMATkRV そろそろ3.2の足音が・・・聞こえませんねぇ
904デフォルトの名無しさん
2022/04/05(火) 01:23:25.52ID:wTg+fYKW 3.1.6きたか
905デフォルトの名無しさん
2022/04/05(火) 03:11:01.30ID:NFxs7VO2 キタ━━━━(゚∀゚)━━━━!!
906デフォルトの名無しさん
2022/04/06(水) 20:47:20.16ID:81+UcTAq 3.1.6は最後の3.1.x系列で次は3.2らしいけど次は一年後ぐらいかな?
907デフォルトの名無しさん
2022/05/05(木) 19:43:38.69ID:HO1kidbQ なんだかんだで、
wxWidgetsでGUI開発するのが一番保守ができるわw
wxWidgetsでGUI開発するのが一番保守ができるわw
908デフォルトの名無しさん
2022/06/11(土) 20:55:43.41ID:zBk/MBZO 効率も良い
909デフォルトの名無しさん
2022/06/15(水) 16:44:47.69ID:aaCpCI22 以前試した時、デザイナがメニュー項目やアイコンボタン的なものだけはあるが、
押してみると機能しないものが多かった。
また、チュートリアル通りと全く同じ順番で全く同じ操作した場合には
動作するが、ちょっとでも違うと動作しなかった。
それから、サイザーで箱的なものを最初に作ったとき、箱が小さすぎて
分かりにくかった。
押してみると機能しないものが多かった。
また、チュートリアル通りと全く同じ順番で全く同じ操作した場合には
動作するが、ちょっとでも違うと動作しなかった。
それから、サイザーで箱的なものを最初に作ったとき、箱が小さすぎて
分かりにくかった。
910デフォルトの名無しさん
2022/06/15(水) 19:34:31.88ID:pBvoUsv+ Code::Blocks使ってみたら、
最初、フレームにいきなりサイザーを置いたら物凄く小さくなってびっくり
どうやってこれにウィジェット配置するんやと・・・
しかし、いろいろ試していたら、先にパネルを配置してそれからサイザーを
配置すれば小さくならないことが分かった
最初、フレームにいきなりサイザーを置いたら物凄く小さくなってびっくり
どうやってこれにウィジェット配置するんやと・・・
しかし、いろいろ試していたら、先にパネルを配置してそれからサイザーを
配置すれば小さくならないことが分かった
911デフォルトの名無しさん
2022/07/02(土) 17:20:05.66ID:ovAPXZPK 3.2.0のRC版がきたねぇ
912デフォルトの名無しさん
2022/07/03(日) 13:49:52.52ID:PqlrjItE 汚ねぇ
913デフォルトの名無しさん
2022/07/07(木) 16:48:44.71ID:B/8qu6Mc と思っている間に3.2.0が来たっ!
914デフォルトの名無しさん
2022/07/07(木) 22:32:29.87ID:2uwXdv/5 RCから早かったな
久しぶりにビルドしてみるか
久しぶりにビルドしてみるか
915デフォルトの名無しさん
2022/07/15(金) 12:29:23.01ID:UEfodfOp そういえば、まだCode::Blocksが3.2.0に対応していないのか?
916デフォルトの名無しさん
2022/08/01(月) 15:20:44.96ID:jhXgj6wH https://zero-cheese.com/6667/
(本記事略)
雑談
世間では、「(略)」が流行している中、wxPythonが作る「PC用ネイティブアプリ」は、取り残されている感あります。そう思うのは、私だけでしょうか?
現代の「ネットとスマホの時代」、PC用ネイティブアプリの開発は、優先度は低いように感じてしまいます。
なぜなら、Webアプリや、スマホアプリで、ほとんどが代用できるからだと、思われます。(スプレッドシート等がいい例です。)
私自身、本記事のために、久しぶりに「PC用ネイティブアプリ作り」のためのコードを書いてみました。すごく懐かしい感じを覚えました。
(もちろん業界により、違いはあると思います。日々、PC用ネイティブアプリを開発されている方々には、不快な思いをさせたかもしれません。その際は、お詫びいたします。)
思い返せば、Windowが95 とか 98 の時代は、Visual C++、Visual Basicが流行っており、PC用ネイティブアプリを作るのが当たり前でした。
(当時、まだ学生でしたが、「VIsual Basic」を買うのに(確か5万円位)、とても苦労した記憶が・・ それが今や無料版があります。)
その時代をインターネットが、流れを変えてしまいました。ご存じの通り、技術の成長速度は、年々早まっています。
本記事は2022年3月時点に書いていますが、今後の20年は、過去120年分の技術進歩に相当すると、予測している研究者もいます。(技術の成長曲線に対し、外挿が当てはまると、その通りになるとの事。)
その時代にあって、PC用ネイティブアプリを作るニーズは、将来、あまり明るくないかもしれません。
既にBlenderみたいなソフトも、Steamを使って遠隔操作できるので、今後5G、6Gが普及してくと、ますますPC用ネイティブアプリの開発ニーズが、減少していきそうです。
(Blenderや、Steam自体が、PC用ネイティブアプリじゃん! というツッコミが入りそうですが(笑)。 ただ、既に遠隔で操作できるという事から、今後、Webアプリに置き換わっていくかな? と思った次第です。)
(以下略)
(本記事略)
雑談
世間では、「(略)」が流行している中、wxPythonが作る「PC用ネイティブアプリ」は、取り残されている感あります。そう思うのは、私だけでしょうか?
現代の「ネットとスマホの時代」、PC用ネイティブアプリの開発は、優先度は低いように感じてしまいます。
なぜなら、Webアプリや、スマホアプリで、ほとんどが代用できるからだと、思われます。(スプレッドシート等がいい例です。)
私自身、本記事のために、久しぶりに「PC用ネイティブアプリ作り」のためのコードを書いてみました。すごく懐かしい感じを覚えました。
(もちろん業界により、違いはあると思います。日々、PC用ネイティブアプリを開発されている方々には、不快な思いをさせたかもしれません。その際は、お詫びいたします。)
思い返せば、Windowが95 とか 98 の時代は、Visual C++、Visual Basicが流行っており、PC用ネイティブアプリを作るのが当たり前でした。
(当時、まだ学生でしたが、「VIsual Basic」を買うのに(確か5万円位)、とても苦労した記憶が・・ それが今や無料版があります。)
その時代をインターネットが、流れを変えてしまいました。ご存じの通り、技術の成長速度は、年々早まっています。
本記事は2022年3月時点に書いていますが、今後の20年は、過去120年分の技術進歩に相当すると、予測している研究者もいます。(技術の成長曲線に対し、外挿が当てはまると、その通りになるとの事。)
その時代にあって、PC用ネイティブアプリを作るニーズは、将来、あまり明るくないかもしれません。
既にBlenderみたいなソフトも、Steamを使って遠隔操作できるので、今後5G、6Gが普及してくと、ますますPC用ネイティブアプリの開発ニーズが、減少していきそうです。
(Blenderや、Steam自体が、PC用ネイティブアプリじゃん! というツッコミが入りそうですが(笑)。 ただ、既に遠隔で操作できるという事から、今後、Webアプリに置き換わっていくかな? と思った次第です。)
(以下略)
917デフォルトの名無しさん
2022/08/06(土) 08:53:57.02ID:Cm9is4wi wxPython/wxWidgetsのAndroid/iOS版でええやん
918デフォルトの名無しさん
2022/08/26(金) 10:00:56.35ID:i2SIEm4o OpenCV との相性は?
919デフォルトの名無しさん
2022/09/11(日) 20:55:59.98ID:F/kx11ZR >>915
ウィザードスクリプト弄ればwxWidgets 3.2系に対応出来るようになってたのね
ウィザードスクリプト弄ればwxWidgets 3.2系に対応出来るようになってたのね
920デフォルトの名無しさん
2022/09/24(土) 12:41:19.62ID:tqseCjT9 ソースはsrcフォルダにまとめようとおもってウィザードスクリプト変更したら、
なんかイベントハンドラが一発で登録できんようになった。
再度、定義されたハンドラを指定するとなぜか登録できるが、なんかめんどくさい。
念のため、プロジェクトファイルと同じ階層に保存するように戻したら直った。
もしかして、Code::Blocksっていうか、wxSmithプラグインって
プロジェクトファイルと同じ階層に.cpp.hを入れないと正常に動作しないのやろか?
なんかイベントハンドラが一発で登録できんようになった。
再度、定義されたハンドラを指定するとなぜか登録できるが、なんかめんどくさい。
念のため、プロジェクトファイルと同じ階層に保存するように戻したら直った。
もしかして、Code::Blocksっていうか、wxSmithプラグインって
プロジェクトファイルと同じ階層に.cpp.hを入れないと正常に動作しないのやろか?
921デフォルトの名無しさん
2022/10/16(日) 14:34:26.78ID:VJtsy5Ud うーん、wxTextCtrlのインスタンスを複数作っただけで終了時に落ちてしまう
どうやらバグらしいね
せっかく3.2出たから試していたが、やっぱまだ不安定か・・・
(自分で直せればいいんだけど、さっぱり分からんw)
どうやらバグらしいね
せっかく3.2出たから試していたが、やっぱまだ不安定か・・・
(自分で直せればいいんだけど、さっぱり分からんw)
922デフォルトの名無しさん
2022/10/17(月) 00:09:02.40ID:HhZwrJiW >>921
自分の環境だけじゃなくて、他でも再現しているような話が出てるってこと?
自分の環境だけじゃなくて、他でも再現しているような話が出てるってこと?
923デフォルトの名無しさん
2022/10/17(月) 14:19:01.19ID:tJ8jOMzt924デフォルトの名無しさん
2022/10/17(月) 19:18:21.85ID:9nPH5ObM どうやら、TDM-GCC 10.3 (64bit のみ?) でビルドするとダメみたい
(MSVC や MSYS2 上の gcc では発生していないらしい)
一応対策済みファイルは上がっているけど、
根本的な原因が分かっているわけではない模様...
(TDM-GCC の libstdc++ に問題があるかもしれないとのこと)
(MSVC や MSYS2 上の gcc では発生していないらしい)
一応対策済みファイルは上がっているけど、
根本的な原因が分かっているわけではない模様...
(TDM-GCC の libstdc++ に問題があるかもしれないとのこと)
925デフォルトの名無しさん
2022/10/17(月) 19:31:32.54ID:9nPH5ObM すまん、Issue 番号書き忘れたわ
Issue #22639
Issue #22639
926デフォルトの名無しさん
2022/10/17(月) 20:15:56.19ID:9nPH5ObM PR 番号も見つけたので上げておきますわ
PR #22641
PR #22641
927デフォルトの名無しさん
2022/10/17(月) 20:28:56.63ID:HhZwrJiW tdm-gcc固有の問題だったか…
928デフォルトの名無しさん
2022/10/22(土) 22:32:12.86ID:4eU5lv6N 実際に確認するの遅れたが、
関連するファイルを更新してビルドし直したら、tdm-gccでも普通に動作しましたわ
問題を修正してくださった開発者の方々に感謝します
関連するファイルを更新してビルドし直したら、tdm-gccでも普通に動作しましたわ
問題を修正してくださった開発者の方々に感謝します
929デフォルトの名無しさん
2023/02/16(木) 13:59:58.69ID:gbcOKHrW 3.2.2.1来たか
930デフォルトの名無しさん
2023/02/17(金) 09:51:31.12ID:D+7lDrIu change log見ると#22639も修正されてんね
931デフォルトの名無しさん
2023/08/20(日) 19:47:26.81ID:rMH1whrn (^-^)y- (^o^)y-。o0○ ( ;゜゜)ノ⌒-~ ←……( ̄ー|柱| ポイステキンシ
932デフォルトの名無しさん
2023/08/21(月) 02:04:19.29ID:RVn+O5xq なんだかんだで、wxWidgetsも使っとるわ
933デフォルトの名無しさん
2023/10/13(金) 20:12:37.89ID:1ALChO1a フリーのGUIフレームワーク最後の希望
3.2.3が来たよーーーっ!
3.2.3が来たよーーーっ!
934デフォルトの名無しさん
2023/10/14(土) 18:18:29.68ID:jT0obcgM 3.2.3に更新したついでにcode::blocksの夜間ビルド試してみようと思ったらサーバダウンしてるやんけ!!!
935デフォルトの名無しさん
2023/10/19(木) 09:31:29.05ID:rcYEOPS6 C++に特化し過ぎてるのが珠に瑕
936デフォルトの名無しさん
2023/10/20(金) 01:23:35.43ID:PlrD8Vmz >>935
そうであれば、多言語にbindingしたらええがな
そうであれば、多言語にbindingしたらええがな
937デフォルトの名無しさん
2023/12/10(日) 14:45:26.92ID:nMrakhie これええな
mingw-w64-i686-wxwidgets3.2でCP932って使えないん?
mingw-w64-i686-wxwidgets3.2でCP932って使えないん?
938デフォルトの名無しさん
2023/12/10(日) 16:10:09.94ID:1SEWkZic msvc 使うなら CP932 でも大丈夫だと思うけど
gcc 使うなら素直に UTF-8 を使った方が良いんじゃね
gcc 使うなら素直に UTF-8 を使った方が良いんじゃね
939デフォルトの名無しさん
2023/12/10(日) 17:36:28.57ID:W9q6P+To もういい加減、WindowsはCP932を廃止せなあかんわ
いつまで、「ワールドワイド言語サポートでUnicode UTF-8を使用」を標準でonにしないのか
いつまで、「ワールドワイド言語サポートでUnicode UTF-8を使用」を標準でonにしないのか
940デフォルトの名無しさん
2023/12/12(火) 15:33:02.64ID:myGJa9tx 以前から思っていたのですが
5chではなんでみんな似非関西弁使うねん!
(あかん、俺にも伝染しとるわ・・・)
5chではなんでみんな似非関西弁使うねん!
(あかん、俺にも伝染しとるわ・・・)
941デフォルトの名無しさん
2023/12/13(水) 11:03:48.11ID:O/gjiltM なんでも実況板で似非関西弁で書き込むのが習慣になったから
942デフォルトの名無しさん
2023/12/14(木) 09:04:05.22ID:z105pWuk なるほどそういうことだったんですね。ありがとう
次回は、なぜ実況版で似非関西弁で書き込むのが習慣になったのかの謎に迫る!
次回は、なぜ実況版で似非関西弁で書き込むのが習慣になったのかの謎に迫る!
943デフォルトの名無しさん
2023/12/17(日) 10:37:07.84ID:Srk0UVxP Code::Blocks 20.03が古過ぎるためかスミス氏の機嫌が悪い
試しに夜版バイナリを使ってみたらこっちはご機嫌やった
32bit版のバイナリが無かったけどこっちは自前でビルドしてみた
公式のドキュメント通りにやっても上手くいかなかったけど
エラーの内容を検索しながらやったらポンコツの俺でも出来たわ(涙目)
試しに夜版バイナリを使ってみたらこっちはご機嫌やった
32bit版のバイナリが無かったけどこっちは自前でビルドしてみた
公式のドキュメント通りにやっても上手くいかなかったけど
エラーの内容を検索しながらやったらポンコツの俺でも出来たわ(涙目)
944デフォルトの名無しさん
2024/02/07(水) 08:41:48.36ID:EI19ByVY マイルストーンを見たら3.3.0と3.3.99があったんだけど違いはなんやねん!
945デフォルトの名無しさん
2024/02/07(水) 14:10:42.18ID:pcsaZQr4 >>944
一般的には
3.3.0 Release
3.3.1 Release ... バグ修正
...
3.3.99 3.3系で取り敢えず入れたい直したいごった煮
3.4 中機能改変
4 大機能改変
ブランチタグやIssueが、管理しやすくなるでしょ?
一般的には
3.3.0 Release
3.3.1 Release ... バグ修正
...
3.3.99 3.3系で取り敢えず入れたい直したいごった煮
3.4 中機能改変
4 大機能改変
ブランチタグやIssueが、管理しやすくなるでしょ?
946デフォルトの名無しさん
2024/02/08(木) 08:55:03.48ID:B2+wXGdT947デフォルトの名無しさん
2024/02/08(木) 12:42:10.27ID:4BZ1QF0m948デフォルトの名無しさん
2025/01/04(土) 08:49:49.68ID:Qjdiqb4r hosyu
949デフォルトの名無しさん
2025/03/21(金) 07:51:58.56ID:/ZxkdwF/ >>947
つまりはバージョン管理「ソフト」の話じゃなくて、バージョン管理の話って事でOK?
つまりはバージョン管理「ソフト」の話じゃなくて、バージョン管理の話って事でOK?
950デフォルトの名無しさん
2025/03/22(土) 16:47:07.64ID:6eJKN593 3.2.7が早めに来たよぉ〜
951デフォルトの名無しさん
2025/03/24(月) 16:59:41.85ID:tWxitKr9 C++であることが売りだったはずなのに
今はC++が負債
今はC++が負債
952デフォルトの名無しさん
2025/03/24(月) 17:02:08.25ID:tWxitKr9 >>937-939
Unicode版しか勝たん
Unicode版しか勝たん
953デフォルトの名無しさん
2025/03/24(月) 19:03:15.16ID:/lNBwDBZ wxWidgetsはRustと相性悪いな
954デフォルトの名無しさん
2025/03/24(月) 21:49:02.70ID:LmMFLNBK 個人的には、wxRubyだな
手元でオレオレbindingして、自分が使うものだけオレオレwxRubyにしとるわ
手元でオレオレbindingして、自分が使うものだけオレオレwxRubyにしとるわ
955デフォルトの名無しさん
2025/03/25(火) 05:26:08.24ID:ztarSHRB うbyはオワコン
956デフォルトの名無しさん
2025/03/29(土) 11:30:50.98ID:H1uP14U2 wxWidgetsならNimが相性とばっちりよ
957デフォルトの名無しさん
2025/04/07(月) 12:50:54.44ID:wz5/bVHn ノーマルボタンの中に画像をpngのアイコンを入れたい
テキストはいらない
どうするのが一番簡単?
テキストはいらない
どうするのが一番簡単?
958デフォルトの名無しさん
2025/04/07(月) 14:32:07.53ID:w0rhHNCz pngをloadしてwxBitmapを造る(サンプルがゴロゴロある)
959デフォルトの名無しさん
2025/05/04(日) 18:05:12.99ID:9h38tbmu ここでdiscussion
https://forums.wxwidgets.org/viewtopic.php?t=2718
https://forums.wxwidgets.org/viewtopic.php?t=2718
960デフォルトの名無しさん
2025/05/06(火) 09:43:15.96ID:K1Pjz07i wxAnyButton継承した方が良くね?
レスを投稿する
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★2 [ぐれ★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 【実況】博衣こよりのえちえち歌枠🧪
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 【速報】51歳まで自衛隊になれるように法改正ww [347751896]
- (´・ω・`)おいそこ。そこの貴様だ。へらへらするな。
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
