nic-segawa
2017年9月26日 16時35分
お世話になっております。
Qt Creatorにて作成したアプリケーションをArmadillo上で実行しています。
その際に、Qt Creator上でのフォントサイズとArmadillo上でのフォントサイズにズレが生じます。
Qt Creator上の方が大きく表示されます。使用しているフォントはDejaVuSans-Boldです。
Qt Creator上での画面設計が行いにくいのですが、同じ大きさで表示させることはできるでしょうか?
よろしくお願い致します。
コメント
nic-segawa
花田様
ご回答ありがとうございます。
ご提案頂いた方法を試す前に一点確認させて頂いてよろしいでしょうか?。
Armadilloが参照するフォントファイルとQt Creatorが参照するフォントファイルの場所が正しいか確認しておきたいです。Linux 2.6.26とATDE4を使用していますが、それぞれ以下の保存場所で正しいでしょうか?
Armadillo:
/romfs/usr/local/Trolltech/Qt-4.8.3-qws-armel/lib/fonts/DejaVuSans-Bold.ttf
Qt Creator:
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf
これが間違っているのであれば、思っているものと違うフォントを参照していることが原因かと思います。
よろしくお願い致します。
at_hanada
花田です。
> Armadillo:
> /romfs/usr/local/Trolltech/Qt-4.8.3-qws-armel/lib/fonts/DejaVuSans-Bold.ttf
>
> Qt Creator:
> /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf
/usr/share/fonts下がシステムフォントディレクトリ、/usr/local/Trolltech/Qt-4.8.3-qws-armel/lib/fonts下がQt専用のフォントディレクトリとなっており、Qtからはどちらにあっても探してくれる…はずではあります。
システムフォントであればちゃんと認識しているかどうかfc-listコマンドで簡単に調べることもできるのですが、標準のAtmark Distにはfontconfigパッケージが入っておらず、このコマンドもなく。参考までに、私の手元で環境を作ったArmadilloでのfc-list結果の当該行を示します。
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf: DejaVu Sans:style=Bold
フォントファミリが「DejaVu Sans」でboldが有効の場合のみ「DejaVuSans-Bold.ttf」が使用される状況になっています。
これを踏まえて、一旦そちらのArmadilloでのフォントファイル配置でもQtから認識できているという前提で…
Qt Creatorでのフォント指定はどこで行っていますか? コード内に記述することも可能ですが、フォームエディタでの指定でしょうか?
もしそうでしたら、当該リソースのソース(.ui)には下記のような記述がされているはずです。
<property name="font"> <font> <family>DejaVu Sans</family> <weight>75</weight> <bold>true</bold> </font> </property>
前述のフォントファミリ名とbold=trueが一致しています。そのようになっているでしょうか?
(たとえばboldがfalseになっていた場合「DejaVuSans.ttf」の方を探しに行き、ない場合は意図しない代替フォントになるという仕組みです)
この点が正確なようでしたら、フォントファイルが正しく認識できていないか、私の推測とは違う原因ということになります…
(あえてDejaVuSans.ttfなど他のファイルも同じディレクトリに入れてみて、それぞれ異なるフォント&スタイルを指定したいくつかボタンを作って差異が出るかどうかを判別してみるのが、原因追及の助けになるかもしれません)
推測の域を出ない形の調査になりますが、この辺りの確認をお願いします。
nic-segawa
nic-segawa
お世話になっております。
回答が遅れてしまいましたが、調査した結果を記載させて頂きます。
フォント自体は指定したフォントが選択されていますが、フォントサイズの指定方法で表示サイズに差が出るようです。
フォームエディタではptでのサイズ指定となります。ptでサイズ指定した場合はPCとArmadilloに接続している液晶で表示サイズに差が出ていました。
そのため、stylesheetで以下のようにpxでのフォントサイズ指定を行うようにしました。
font: bold 20px "DejaVu Sans";
結果、表示されるサイズは同じになりました。pxで指定する方がハード依存無く使用できるようです。
この方法で進めようと思います。アドバイス頂きありがとうございました。
at_hanada
2017年9月29日 14時42分
花田です。
> Qt Creatorにて作成したアプリケーションをArmadillo上で実行しています。
> その際に、Qt Creator上でのフォントサイズとArmadillo上でのフォントサイズにズレが生じます。
> Qt Creator上の方が大きく表示されます。使用しているフォントはDejaVuSans-Boldです。
> Qt Creator上での画面設計が行いにくいのですが、同じ大きさで表示させることはできるでしょうか?
Armadillo側にDejaVuフォントが根本的に入っていないのではないかと推察します。
名称で指定されたフォントが存在しない場合は(Armadillo内に)インストールされている別のフォントファイルで代替されてしまうので、この差異でズレが生じます。
以前Atmark Dist用にDejaVuを含めたフォントを選択インストールできるようにするパッチを作っていましたので、これを現在のdistで使えるように修正したものを添付します。
Distの存在するディレクトリで、以下のような手順で適用してください。
(パッチを当てる→不要になる2つのディレクトリを消す→再配置&追加フォントを展開する…という内容です)
これで、Atmark DistのUserlandコンフィギュレーションからFontを選択できるようになります。
元々の状態ではBitstream VeraフォントとX11フォントが入っていましたので、これを活かしたままDejaVuSans-Boldを追加する場合こんな感じです。
再ビルド後、romfs下にはこのような形でフォントがインストールされます。
Armadilloのシステム内で「DejaVuSans-Bold.ttf」が見つけられるようになれば、ATDEとの表示差異はなくなるはず…なのですが。お試しください。