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 内で、必要なシグナルを発生されればよいのでは。