Mac で ruby 1.9.3 で Qtbindings を利用する場合、ruby をソースからインストールするとできた

rbenv とか色々試して結局ダメで、
ruby1.9.3とqtbindings をそれぞれソースでダウンロードして、

ruby側を
./configure --enable-shared
make
make install

qtbindings で rake が通ったことを確認して

gem install qtbindings で動作確認

rubyでwindowsでqt ruby 1.8.7で pik インストールで 動作確認

C:\Devkit>ruby -v

ruby 1.9.3p374 (2013-01-15) [i386-mingw32]

だめ C:\Devkit>gem install qtbindings --platform=mswin32
だめ C:\Devkit>gem install qtruby4
ここまでは成功 C:\Devkit>gem install qtruby4 --platform=mswin32 だが動作せず

別のパターンで、ruby 187 がインストールされている状態で
pikをインストール
gem install pik
pik_install "C:\pik"
c:\pikにpassを通して
pik add
This version has already been added
この状態で
pik install ruby
ruby 1.9.3がインストールされる
pik sw 193
ruby -v
ruby 1.9.3 を確認
gem install qtbindings
gem listall pg

gem list

pg (0.14.1 x86-mingw32)
qtbindings (4.8.3.0 x86-mingw32)
を確認

C:\Devkit>ruby -v

ruby 1.9.3p374 (2013-01-15) [i386-mingw32]


gem install qtbindings
でもOKみたい

adobe cloudのクレジットカード画面の不具合 アカウント情報内の郵便番号のハイフンの入力漏れが原因とは

新規導入しているPCにadobe cloudを設定するのに一苦労の話。
2012年9月21日現在、adobe cloud を adobeのネットショップで購入しようとすると、複数台のpcの複数台のブラウザで共通してクレジットカード入力画面へ進めない状況に。
会社のアカウントでない、個人所有のアカウントでは問題なく進めるのに何故?サーバーが重いとか、ブラウザのキャッシュが問題とか色々試してみるが改善せず。電話相談に相談する。
判明した原因は、会社のアカウントの登録状況の中で、郵便番号7桁が間にハイフンを入れないかたちで登録されていたことだった。
この二日間の時間の浪費を返してよ!と思うような話で、アカウント登録画面では、ハイフンなしでも登録できているわけで、大体、郵便番号にハイフンが含まれているかどうかと、クレジットカードの番号入力画面を表示させるかさせないかが、なんで関係しているのかも不明。
私の場合は郵便番号の部分だったけど、このような作り込みがなされているのなら、クレジットカード入力画面が正しく表示されない場合、まずアカウントの登録状態を再度確認することが必要なようです。

access2010への移行で文字化け。レポートに埋め込まれた「〒」という文字が原因だった。

WindowsXpからWindows7への今更ながらの移行作業を開始。
この機会に、OfficeもOfficeXpからOffice2010へ移行することとし、mdbファイルのaccdbファイルへの変換を行っている。
予想外にすんなりと移行できるファイルも多々あるのだが、うまくいかないものあり。
うまくいかない場合、一部のフォームをはずしてみたり、モジュールを削除してみたりと行き当たりばったりの作業が続く。

今日一日を費やしてしまったmdbファイルの持っていた問題は、レポートの中に埋め込まれた「〒」という文字だった。

最初は、vbaを開くと全ての日本語が文字化け状態。Accessの表示自体が化けるという怪しい現象が直らない。

あれこれ試している内に、「〜対応できない文字が含まれ〜」というようなメッセージが出てきて、もしかすると、コードの問題とかじゃなくて、テーブル内にあるデータや、フォームやレポートで使用されている文字自体に問題があるのではと気づき、テーブルを空に、レポートやフォームで埋め込まれている文字を調べていって「〒」という文字がジャマをしていることが判明。

日本で使っているmdbファイルなら、「〒」という文字が埋め込まれているレポートがあっても不思議ではないと思うのだが…。それともたまたま起こっている現象なのだろうか?いずれによせ、結果オーライなのでこれ以上追求はしない。

QTableView, default row height 全ての行の高さを一気に設定する方法

QTableViewの全ての行の高さを一気に設定する方法が見つからない。
setRowHeight(row,height)を行の全行分ループさせるのか?と悩んでいたら、そのままの議論が見つかりました。

http://lists.trolltech.com/qt-interest/2007-08/thread00505-0.html

productListTablはQTableViewのサブクラスで

this->productListTbl->verticalHeader()->setDefaultSectionSize(40);

で、一気に全行の高さを設定できる。でも、QTableViewに setDefaultRowheight みたいな関数が素直にあった方がわかりやすいのでは?そうしていない理由があるのだろうけど。

QStatusBarの使い方 QMainWindow::statusBar() no object

ステータスバーに補助的な情報を表示させておきたいのだが、mainwindow以外の、そのwindowに含まれているWidgetからステータスバーに表示する方法がよくわからなかった。
http://developer.qt.nokia.com/forums/viewthread/2054
で疑問が解決。やはり Signal/Slotの仕組みを使って制御するのが常道のようだ。
しかしながら、これってよく考えないと、mainwindowsに大量のconnect()関数がならぶことになるのでは?
補助的な情報(あっても良いが、見えなくてもなんとかなるような)は setStatusTip()を採用することにする。

QTableView でキーボードイベントを拾う。installEventFilter の利用

目的とする表示ができるようになったので、表示されている情報を利用する部分を。
特定の行上、任意の列でファンクションキー(この場合F2)を押すことでその行の要素を取り出したいのだが、QTableViewにはキーボード入力のシグナルがないみたい。
EventFilterでイベントを拾い処理を行うことにする。

this->productListTbl = new QTableView(this);
this->productListTbl->setObjectName("productListTab"); //名前を付けておくと便利かも
this->productListTbl->installEventFilter(this);

で、イベントフィルターは

bool productTab::eventFilter(QObject * filterobj, QEvent * filterevt){

//ファンクションキー等のみフィルター
if(filterevt->type() != QEvent::KeyPress){ return false;}




QKeyEvent *kev = static_cast(filterevt);
if( kev->key() == Qt::Key_F2){


qDebug() << filterobj->objectName();
qDebug() <<"filter get";
return true;
}
return false;
}

後は、eventFilter 内で、必要なシグナルを発生されればよいのでは。