Qt on Androidにプロジェクトを移行する際にハマったこと その2
無事、実機でデバッグできるようになったのはいいんだけど、不具合もいっぱい。まあ、自分のいい加減な作り方が悪い部分も(いっぱい)あるんだけど・・・。
○配色がおかしい&メニューの中身が真っ黒になってしまう、などなど
スタイルをちゃんと指定していないのが原因。アプリケーションを作成した後に、設定してやればOK。
QApplication a(argc, argv);
QPlastiqueStyle* as = new QPlastiqueStyle();
a.setPalette( as->standardPalette() );
a.setStyle(new QPlastiqueStyle());
Android用のスタイルもあるんだけど、すべてのウィジェットに対応できていないようなので通常のスタイルを設定してます。
○ロケールがちゃんと取得できない、みたい
というわけで、ファイルを保存すると文字化けしてしまったりするので、これも初めに指定。
QApplication a(argc, argv);
QTextCodec::setCodecForLocale( QTextCodec::codecForName( "UTF8" ));
QTextCodec::setCodecForCStrings( QTextCodec::codecForName( "UTF-8" ));
○QDialogを継承したクラスで、フォントサイズがおかしくなる。
と言い切っていいのかどうかは分かりませんが、アプリ全体のフォントサイズは、
int normalFontSize = 8;
QApplication a(argc, argv);
QFont f = a.font();
f.setPointSize( normalFontSize );
a.setFont( f );
てな感じで指定できます。でも、ダイアログを開くと、一部で巨大化した文字表示されてしまいます。というわけで、ダイアログのコンストラクタで、おかしくなるフォントのサイズを指定してやることで修正。
QFont fn = ui->label->font();
fn.setPointSize( normalFontSize );
ui->label->setFont( fn );
○QComboboxのプルダウンリストの文字サイズが最小化されてしまう。
ui->comboBox->setFont( fn );
てな感じでやってみたら、エディタ欄に表示されている文字は大きくなるんだけど、プルダウンリストの文字には反映されません。これについては現在解決法が見つかりません。頭の痛いところです。
でも、まあ、Linux上で作成したものが、当たり前のようにAndroid端末で動いてしまうというのは、何というか、感動するものがありますね。よい時代になったものです。
| 固定リンク
| コメント (0)
| トラックバック (0)
最近のコメント