facebook twitter hatena line google mixi email
★お気に入り追加


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

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

前スレ
【GUI】wxWidgets(旧wxWindows) その4【サイザー】
http://pc12.2ch.net/test/read.cgi/tech/1214657360/

ここまで見た
  • 267
  •  
  • 2011/09/28(水) 21:35:43.22
motifもIEEEが規格決めてたから、こっち使いましょうよ

ここまで見た
  • 268
  •  
  • 2011/09/29(木) 14:42:15.49
>>263
ザックリとでよければ「UNIX互換」くらいに考えておけば良い。


ここまで見た
  • 269
  •  
  • 2011/11/08(火) 17:30:42.91
CodeBlocks10.05とwxWigets2.8を使用しています。
勉強中です。
http://wiki.codeblocks.org/index.php?title=WxSmith_tutorialsの1-7までは実行してみました。
そんなレベルなのですが、ディレクトリ内のファイル名を一覧でcsvにだせるところまでを目標に
しています。

void filenameFrame::OnButton1Click(wxCommandEvent& event)
{
wxString CurrentDocPath;
wxString Filename;
wxArrayString Filenames;
wxString GetDirectory;
wxFileDialog* OpenDialog = new wxFileDialog(
this,wxEmptyString,wxEmptyString,wxEmptyString,wxEmptyString,wxFD_MULTIPLE,wxDefaultPosition);
if (OpenDialog->ShowModal() == wxID_OK)
{
CurrentDocPath = OpenDialog->GetPath();
Filename << OpenDialog->GetFilename();
GetDirectory << OpenDialog->GetDirectory();
Filenames << OpenDialog->GetFilenames[0];
TextCtrl1->SetLabel(CurrentDocPath);
TextCtrl2->SetLabel(Filename);
TextCtrl3->SetLabel(GetDirectory);
TextCtrl4->SetLabel(Filenames);
}
OpenDialog->Destroy();}

ここまで見た
  • 270
  •  
  • 2011/11/08(火) 17:42:09.03
C:\C\FILENAME\filenameMain.cpp|133|error: invalid use of member (did you forget the '&' ?)|
C:\C\FILENAME\filenameMain.cpp|140|error: conversion from 'wxArrayString*' to 'const wxString' is ambiguous|
C:\wxWidgets2.8\include\wx\string.h|692|note: candidates are: wxString::wxString(wxChar, size_t) <near match>|
コンパイルすると、このようなメッセージが表示されます。

以下の行を削除すると、正常にコンパイルが通ります。
wxArrayString Filenames;
Filenames << OpenDialog->GetFilenames[0];
wxArrayString Filenames;

wxFiledialogで複数ファイルを選択した場合には、配列?を使用しないといけないような気がするので、多分wxArrayStringを使わないとだめかと
思いいれてみました。
配列?なのでGetFilenames[0]といれれば複数ファイルを選択した場合に一番最初のファイル名が入る認識でしたが間違っているようです・・・

複数ファイルの選択と、複数のファイル名の取得方法を検索したのですが、サンプルなどを見つけることができませんでした。

どこが間違っているか教えてください。



ここまで見た
  • 271
  •  
  • 2011/11/08(火) 18:28:13.72
>>269
最後の行
OpenDialog->Destroy();}

中括弧が全角になってるなあ
てかこれ全コードじゃないよね

ここまで見た
  • 272
  •  
  • 2011/11/08(火) 20:52:59.24
サンプルにある"dialogs"が参考になるんじゃないかな、
"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)

ここまで見た
  • 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();
//*)

ここまで見た
  • 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"));

ここまで見た
  • 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();
}

ここまで見た
  • 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();
}

ここまで見た
  • 278
  •  
  • 2011/11/08(火) 21:58:12.30
連続投稿規制 5回でなるんですねが・・・
こんな感じです。
配列・ポインタなど、マニュアルを目を通したのですが、完全に理解していません。
とりあえず色々さわりながら理解していこうかと考えています。

>>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使おうぜ・・

ここまで見た
  • 281
  •  
  • 2011/11/09(水) 08:19:10.74
会社から帰ったら考えてみるわ>>278


ここまで見た
  • 282
  •  
  • 2011/11/09(水) 14:01:41.90
>>280
そのような場所があるとは知りませんでした。
次からそうします。

スレ汚しすみませんでした。
あと、/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です。

なにかコンパイル時に指定しなければいけないファイルなどがあるのでしょうか?
どなたか教えてください

ここまで見た
  • 285
  •  
  • 2011/11/22(火) 07:25:11.04
wxをビルドしてインストした?

ここまで見た
  • 286
  •  
  • 2011/11/22(火) 12:20:24.62
>>284
エラーメッセージ貼ってよね!

ここまで見た
  • 287
  • 284
  • 2011/11/22(火) 16:11:40.78
>>285
早速の返信ありがとうございます。

僕が変な勘違いをしてない限りwxはインストール済みだと思います。
>>1のリンクにある
wxWindowsで始めるC++ GUIプログラミング
ttp://www.h3.dion.ne.jp/~k5_n/wxwin/
wxWidgets でクロスプラットフォーム GUIアプリを作ろう
ttp://0xcc.net/pub/uu-2004-08/
に書かれている簡単なソースや、自分で作った幾つかのソースは動きますので。

>>286
返信ありがとうございます。
今すぐにエラーを貼るのは難しいので、数時間後にまた貼らせて頂きます。

ここまで見た
  • 288
  • 284
  • 2011/11/22(火) 21:45:18.75
listtestでは、makefile.unxと手打ちのコンパイルでは同じエラーが出ました。
makefile.gccはmakeコマンド自体が失敗していたようなので、環境の違いが原因だと思います。
以下、listtestのmakefile.unxに対するエラーの一部(エラーが167行もあるため省略します。)です。

In file included from listtest.cpp:48:0:
listtest.h:29:34: エラー: ISO C++ では型の無い ‘wxDECLARE_NO_COPY_CLASS’ の宣言を禁止しています [-fpermissive]
listtest.h:96:39: エラー: ISO C++ では型の無い ‘wxDECLARE_NO_COPY_CLASS’ の宣言を禁止しています [-fpermissive]
listtest.h:189:36: エラー: ISO C++ では型の無い ‘wxDECLARE_NO_COPY_CLASS’ の宣言を禁止しています [-fpermissive]
listtest.cpp:73:19: エラー: ‘wxIntPtr’ was not declared in this scope
listtest.cpp:73:35: エラー: ‘wxIntPtr’ was not declared in this scope
listtest.cpp:73:51: エラー: ‘wxIntPtr’ was not declared in this scope
listtest.cpp:73:78: エラー: expression list treated as compound expression in initializer [-fpermissive]
listtest.cpp:74:1: エラー: expected ‘,’ or ‘;’ before ‘{’ token
listtest.cpp: コンストラクタ ‘MyFrame::MyFrame(const wxChar*)’ 内:
listtest.cpp:194:50: エラー: オーバーロードされた ‘wxIcon(const char* const [37])’ の呼び出しは曖昧です
listtest.cpp:194:50: 備考: 候補:
/usr/include/wx-2.8/wx/generic/icon.h:35:5: 備考: wxIcon::wxIcon(const wxString&, wxBitmapType, int, int) <near match>
/usr/include/wx-2.8/wx/generic/icon.h:35:5: 備考: 第 1 引数を ‘const char* const [37]’ から ‘const wxString&’ へ変換する方法が不明です
/usr/include/wx-2.8/wx/generic/icon.h:31:5: 備考: wxIcon::wxIcon(char**, int, int) <near match>
/usr/include/wx-2.8/wx/generic/icon.h:31:5: 備考: 第 1 引数を ‘const char* const [37]’ から ‘char**’ へ変換する方法が不明です
/usr/include/wx-2.8/wx/generic/icon.h:30:5: 備考: wxIcon::wxIcon(const char**, int, int) <near match>

ここまで見た
  • 289
  •  
  • 2011/11/22(火) 22:33:02.64
サンプルはどこから持ってきたやつなの?
インストールしてるwxWidgetsとサンプルのバージョンは同じ?

そもそもインストールはどうやってしたの?
パッケージから入れたの? それともソースからビルドしたの?

とまあ、気になる点はいろいろですが、
とりあえずパッケージからwxWidgetsの開発環境をインストールして、
同じバージョンのサンプルをコンパイルするのは、
最初に書かれてる方法で普通にできます。

ソースからビルドすれば付属してるサンプルも一緒にコンパイルしてくれるはずです。


ここまで見た
  • 290
  •  
  • 2011/11/23(水) 00:13:32.17
>>288
そのエラーメッセージは最初の方は含まれてる?
wxのincludeが読み込めてないように思える。includeのエラーが最初にないかい?

ここまで見た
  • 291
  •  
  • 2011/11/23(水) 03:07:47.66
>>288
makefile.gccはMinGW用のMakefileじゃなかったっけ?

make -f <対象のMakefile> でだいたい行けるはず

ここまで見た
  • 292
  •  
  • 2011/11/23(水) 03:19:45.38
そもそもLinuxでwxWidgetsやろうと思ったら

?wxWidgetsのソースダウンロード
?./configure <- 自分が欲しいオプション ->
?make && make install
?samplesフォルダにあるソースコードを「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

ライブラリにリンクしてないから実行ファイルができてない可能性が

ここまで見た
  • 296
  •  
  • 2011/11/23(水) 21:59:05.34
>>293
wxDev-C++
http://wxdsgn.sourceforge.net/
みたいなのもあるから暇なときに試してみたら?

VC++でやるよりは楽かも…、しれません。

ここまで見た
  • 297
  •  
  • 2011/11/24(木) 00:18:52.26
devC++は好きで昔から結構使ってるけど
やっぱ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

ここまで見た
  • 300
  • 284
  • 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`

というようにコンパイルしてたんですけど良くなかったでしょうか。

ここまで見た
  • 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ってどういうものなのかググって意味を考えたほうがいいよ


ここまで見た
  • 302
  •  
  • 2011/12/05(月) 19:16:58.26
LinuxでパッケージからwxWidgetsを入れた場合、setup.hはどこにあるのでしょうか?
wxUSE_ACCESSIBILITYを有効にしようと思ってファイル検索したら大量にかかったので幾つか内容を変更してみても有効にならなかったので。


ここまで見た
  • 303
  •  
  • 2011/12/05(月) 19:26:14.75
パッケージはバイナリしか入ってない、つまりオプションを切り替えるのは不可能では?
ソースからビルドした方がいいと思われ

ここまで見た
  • 304
  •  
  • 2011/12/05(月) 19:31:56.85
>>303

ありがとう。ソースから入れなおしてみる。

ここまで見た
  • 305
  •  
  • 2011/12/05(月) 19:45:40.51
>>302
Linuxでは通常はソースのパッケージが別に用意されてるよ。

ディストリによるけど後ろに-develみたいなのがついたパッケージ
を入れるとソースが入る。

ここまで見た
  • 306
  •  
  • 2011/12/05(月) 21:19:08.30
>>305
そのレスを見る前に入れなおしてしまった…教えてもらったのに申し訳ないです。



オプションの切り替えは結局setup.hをいじれば良いのでしょうか?

ここまで見た
  • 307
  •  
  • 2011/12/05(月) 21:34:18.68
>>306
./configure -h で付けられるオプションが見れるからやってみ、その中にwxUSE_ACCESSIBILITYも入ってるだろう

ここまで見た
  • 308
  •  
  • 2011/12/05(月) 21:38:07.80
$ ./configure -h | grep accessibility
--enable-accessibility enable accessibility support

あったあった。何に使うのかわからんけどどうぞ。

ここまで見た
  • 309
  •  
  • 2011/12/06(火) 11:00:02.97
>>307,308
何から何まですみません。

ここまで見た
  • 310
  • 255
  • 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で意味あるのか?

ここまで見た
  • 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では意味が無いんでしょうか…

ここまで見た
  • 312
  • 311
  • 2011/12/06(火) 14:27:45.09
度々すみません。
こちらでもマニュアルを確認したら、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++のオブジェクト指向がわかってないとできないから挫折する人も多いだろう

とゆとりが言ってみる

ここまで見た
  • 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""
|
| ミ
| ミ  サッ!
| ミ
|

砂時計アラームタイマー
フリック回転寿司
ここまで見た

★お気に入り追加

このページを共有する
facebook twitter hatena line google mixi email
おすすめワード