なんとな~くしあわせ?の日記

「そしてそれゆえ、知識そのものが力である」 (Nam et ipsa scientia potestas est.) 〜 フランシス・ベーコン

wxWidgets

C/C++のGUIライブラリ比較

いつもお世話になっているWxWikiを抜粋して翻訳元ネタ WxWidgets Compared To Other Toolkits - WxWiki wxWidgetsと他のツールキットの比較 いくつかの一般的な覚え書き: wxWidgetsはC++によってのみ動作するわけではありません、python, perl, php, java, …

C++ (fork) Advent Calendar 2013 9日目

Advent Calendar 初参加です。あまり言語仕様的なところはわからないのですが、なんかC++でGUI作りたいって人のためにwxWidgetsのことを書きます。 概要 1.1 wxWidgetsのアーキテクチャと位置づけ 1.2 他のライブラリとの比較 2.各プラットフォームでのwxWi…

MacOSXの動的リンクライブラリの設定変更

OSXで配布するプログラムを動的リンクライブラリで作成した場合、最終的にライブラリの見ているファイルを変更しなくてはいけない。OSXの作法としては、Hoge.app/Contents/MacOS以下にライブラリをぶち込めばいいらしい。ちなみに Windowsの場合は特に何もし…

wxWidgets-2.9.5 msw

ビルドしようとしたら Win9.x系のコードがundefined referenceになってた...ほげー環境:Debian Wheezy コンパイラ: $ /usr/x86_64-w64-mingw32/bin/gcc --version gcc (rubenvb-4.7.2-release) 4.7.2 Copyright (C) 2012 Free Software Foundation, Inc. T…

JaneClone開発状況

Macサポートできそう Macクソだ、Macクソだと言いつつもバグを潰しているうちにJaneCloneの基本的な機能が使えるようになった。フォントをMonaに変更したらこの通り。ID抽出がバグってるが気にしない AAも綺麗に表示された、画像の人物は三尋木プロ あとはど…

wxWidgetsでのスレッド間通信

発端 スレッド間通信なんてけったいなものは、普通趣味のプログラミングでは使わない(たぶん) 使おうと思ったのは純粋にそれが必要になったからだ。 やりたかったこと アプリケーションにログを出したかった。 古くはIEのステータスバーに出るログのように…

MacでwxWidgets

MacでC++やるのはつらい。環境構築しにくい。以下手順。 環境はMac OSX Lion 10.7 開発環境を揃える Command Line Tools for Xcodeをインストール 表題の通り、Apple Developerからダウンロードしてインストール。 これを入れるとUNIXコマンド系がひと通り /…

cURLppメモ

レスポンスヘッダを一緒に出力する場合はオプションをtrueにする new curlpp::options::Header(true) 2chの板一覧情報をcurlppで取得するときの例。かなりすっきりと書けると思う。 相変わらずwxWidgets混じりのC++なんで、単純にコピーしただけではコンパイ…

wxHtmlWindow上での動的な画像のリロードなど

JaneStyle等で実装されているHTML表示ウィンドウにて画像のサムネイルを表示させる方法(wxWidgetsにて)を検討していた。他に同じ事を考えている人が居るかもしれないのでメモしておく。wxHtmlWindow上では「memory:」というタグが最初から使用することができ…

wx-2.8とwx-2.9の挙動の違いについて

アプリをだいぶ書き進めてから気づいたが、wx-2.9は以前修正されたバグが直ってないままのところがある。。。よってwx-2.8を使うことにする。以下自分の環境でしか試してないので、確実ではないかもしれないがバグ報告 ・LinuxにおいてwxInputStream::LastRe…

wxWidgetsにおけるプラットフォームごとのアイコン読み込み方法

Windows,Linux,Macその他での共通コードからのビルドが可能なwxWidgetsであるが アイコンの読み込み方法はかなりプラットフォーム依存である。やっとMacでの正しいやり方が分かったので、まとめて書き留めておく。 簡単な方から順に説明する1. Linuxの場合:…

φ(..)メモ

wxStringInputStream wxStringOutputStreamというめっちゃ便利そうなクラスがある 使おう

wxWidgetsと日本語

何度も同じようなエントリを書いているが、書かずにはいれない。日本語って面倒。 #include <wx/wx.h> #include <iostream> int main() { wxString jap = wxT("あいうえお"); std::cout << jap << std::endl; std::cout.setf( std::ios::hex, std::ios::basefield );// 16進数で</iostream></wx/wx.h>…

wxのconfigure

# ./configure --with-gtk2 --with-regex --with-zlib --with-expat --with-opengl --with-sdl --enable-debug_gdb --enable-unicode 結果は Configured wxWidgets 2.8.12 for `x86_64-unknown-linux-gnu' Which GUI toolkit should wxWidgets use? GTK+ 2 S…

wxWidgetsでShift_JISからUTF-8変換

/* * main.cpp * * Created on: 2012/05/15 * Author: learning */ #include <wx/wx.h> #include <wx/strconv.h> using namespace std; int main() { // Shift_JISの文字列を const char* 型で宣言 const char sjis[9] = {0x88,0xa2,0x82,0x70,0x90,0xb3,0x93,0x60}; wxString sjis_</wx/strconv.h></wx/wx.h>…

wxSQLite3の練習

Bindを使いたかったのだけれどエラー出まくりで断念。結局SQLクエリをwxStringでつなげた。 /** * WxSQLiteTest.cpp - wxSQLiteのテスト用ソースコード * */ #include "WxSQLiteTest.h" bool WxSQLiteTest::OnInit() { return true; } int WxSQLiteTest::OnE…

wxListの使いかた

// Listの中にぶち込みたいデータ型を定義する // データ型を書いたヘッダファイル(.h)を別に作成して定義したほうが良い class HogeData { public : wxString name; int number; }; /** 宣言 */ // HogeDataを格納できるHogeDataListを宣言する // この宣言…

wxNotebookとwxAuiNotebookの違い

wxAuiNotebookのほうが高機能じゃん!wxAuiNotebook wxAuiNotebook はノートブックコントロールで、ドックに格納できるウィンドウ枠を持つウィンドウに 共通の機能を実装しています。 特に、 wxAuiNotebook はドラッグアンドドロップによるタブ順の変更、 タ…

wxSQLite3を使う

SQLiteはAndroidの標準DB(?)にも採用されている優れたリレーショナルデータベースです。 wxWidgetsで使おうと思っていたので、wxSQLite3をビルドして組み込んでみた。まずぶち当たるのはバージョンの問題。SQLite自体が結構な速さで更新されているのでちゃん…

wxWidgetsでShift_JISが普通に読み込めた件

さよならiconv。さよならLGPL。 // テキストファイルの読み込み wxTextFile file(wxT("./Shift_JIS.txt")); file.Open(wxConvAuto(wxFONTENCODING_CP932)); wxString test = file.GetFirstLine(); frame->SetStatusText(test); frame->Show(true);

MacでのwxWidgetsについて

Macと他のOSとはアプリケーションの構造が違うらしく、ただ単にソースをビルドするとMac上で正しく動作しなくなる。例)アプリケーションをアクティブにしてもトップにメニューバーが出ない。テキストコントロール上に打ち込んだ文字列がなぜか端末にリダイ…

wxTreeCtrl

ツリー構造でファイル名などを配置したいと思った。 wxPanel *panel = new wxPanel(this, -1); wxBoxSizer *vbox = new wxBoxSizer(wxVERTICAL); // 親要素 wxArrayString array; array.Add(wxT("親要素1")); array.Add(wxT("親要素2")); array.Add(wxT("…

wxXmlDocument

wxXmlDocumentを試してみる。wxWikiには、wxWidgetsには適当なXMLパーサがないと書かれていたがwxWidgets2.9からXML読み取り用のクラスを使えるようになったのだ。ひとまずここのサイト『たのしいXML』サンプルファイル集からお借りしたXMLのサンプルファイ…

wxで画像の読み込み・書き出し

海外のwikiに非常に良いお手本があったので使ってみる。 Drawing on a panel with a DC - WxWiki 結局wxWidgetsで画像をだそうと思ったらDCのコンストラクタを記述して、実体からメソッドをいじってBlitで描画するようだ。 特にPanelとかSizerとか関係なくDC…

Code::BlocksでwxWidgets

前々から使おうと思いながらEclipseで開発を行っていたwxWidgetsですが、ようやく使い方がわかってきたのでこっちに移行しようかなと。やっぱUnix側のC++はEclipseじゃ無理だべ。Javaに関しては無敵なんだけどな。 最近eclipseのバグの理由がわかってeclipse…

wxWidgetsでwindows.hを使うときのバグ

ここで指摘されているようにwxWidgets-2.8では/wx/msw/winundef.h:272:50においてバグがある。 windows.hをインクルードした後に/wx/msw/winundef.hをインクルードしようとするとなぜかコンパイラに怒られる「error: missing binary operator before token "…

いろいろうるさいwxICON

アイコンを読み込ませるのに一苦労したという話。お手本のminimal.cppではxpm形式で読み込めているのだが、どうしてもそれができず.ico形式で読み込ませることに成功した。 まず、icoファイルをオブジェクトファイルに固めるためにリソースファイルを記述す…

wxWidgetsを使ったGUI版HTTPクライアント

ようやくGUI版HTTPクライアントが完成した。本当はこの前使ったReadHtmlを組み込んで使うつもりだったんだけど、wxWidgetsにWinInetを組み入れるとエラーが出てどうにもならんかった(※まあマルチプラットフォームとは言えどもUNIX中心に開発された言語だから…

wxWidgets続き

First programs in wxWidgets ここを見ながら初めてのwxWidgetsをやってみる。開発環境をDEVC++にしようとしたんだが、プロジェクトを作って開くたびにエラーが出て嫌な感じなのでeclipse CDTでMakefileを書いて作る(IDEとはなんだったのか…)。自分が書いた…

wxWidgetsでの日本語の表示

追記:2012/01/23 現在wxWidgetsはソースをUTF-8で書けば日本語をそのままwxStringに入れることができます。よって以下の記述はアプリケーションの国際化のためだと思ってください。国際化ってのはひとつのアプリケーションで英語、ドイツ語、フランス語バー…