Armadilloフォーラム

LCDタッチ時の×マークを非表示にしたい

hanakin

2015年6月30日 15時37分

お世話になります。
柴田です。

現在、Armadillo-440のボードでLCDの動作確認をしているのですが、
タッチした時に×マークが表示されており、これを非表示にしたいと
思っており、知恵をお借りできれば幸いです。
カーソルは削除できたのですが、×マークがどうしても消せません。

どこをいじれば良いのか、ご教授いただきたいです。

開発環境:ATDE4 Qtにてアプリを開発中

コメント

at_takashi.sasayama

2015年7月2日 13時07分

笹山です。

> カーソルは削除できたのですが、×マークがどうしても消せません。

Qtアプリの場合は setCursorVisible 関数でカーソルを非表示にできますが、
この設定を行うと×マークが表示されるのでしょうか?

サンプルアプリの samegame でカーソルを非表示にしてみましたが、
×マークは表示されませんでした。

atmark-dist-qt-20121105/vendors/AtmarkTechno/Armadillo-440.Qt/samegame/src/main.cpp

#include <QDeclarativeView>
#include <QDeclarativeEngine>
#include <QDeclarativeItem>
#include <QApplication>
#include <QDesktopWidget>
#include <QWSServer>   /* この行を追加します */
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
 
    QDeclarativeView view;
    view.setSource(QUrl("qrc:/qml/samegame.qml"));
    QWSServer::setCursorVisible(false); /* この行を追加します */
    QDesktopWidget *screen = app.desktop();
    QDeclarativeItem *rootObj =
            qobject_cast<QDeclarativeItem *> (view.rootObject());
    rootObj->setProperty("width", screen->screenGeometry(-1).width());
    rootObj->setProperty("height", screen->screenGeometry(-1).height());
 
    view.showFullScreen();
 
    return app.exec();
}

仮にQtアプリではなく、x-window-system 環境で表示される ×マークを消す方法は、
以下が参考になると思います。

[Armadillo:08679] 液晶表示の×マークについて
http://lists.atmark-techno.com/pipermail/armadillo/2013-March/008682.ht…

■参考情報

Howto : Armadillo-440でQt! 第2回
http://armadillo.atmark-techno.com/howto/armadillo-440-qt-2

Qt Documentation: QWSServer Class
http://doc.qt.io/qt-4.8/qwsserver.html#setCursorVisible

> Qtアプリの場合は setCursorVisible 関数でカーソルを非表示にできますが、
> この設定を行うと×マークが表示されるのでしょうか?
> サンプルアプリの samegame でカーソルを非表示にしてみましたが、
> ×マークは表示されませんでした。
上記、試してみましたが、バツマークは表示されました。

> atmark-dist-qt-20121105/vendors/AtmarkTechno/Armadillo-440.Qt
ちなみに、上記と同じルートファイルシステムを使用しております。

at_takashi.sasayama

2015年7月2日 16時45分

笹山です。

> 上記、試してみましたが、バツマークは表示されました。

こちらでも再現してみたいのですが、
再現手順、再現用のソースコードなどをいただくことは可能でしょうか?

お手数ですが、どうぞよろしくお願いいたします。

再現するかわかりませんが、手順を下記に記述します。
基本的には、Howto : Armadillo-440でQt! 第2回を参考にしています。

①Windows7(32bit)上でVMWareからATDE4を起動

②Qt! 第2回の「Appendix1. AtmarkDistとの統合」を参考にして
  atmark-dist-qt-20121105.tar.gzとlinux-2.6.26-at16.tar.gzをダウンロードして展開。

③CANを使用したいので、atmark-dist #make menuconfigでCANドライバーとcan-utilsを設定。
  http://armadillo.atmark-techno.com/files/downloads/armadillo-guide/docu… を参考
  make してlinux.tar.gzとromfs.img.gzが出来たのを確認。

④SDブートをしたいので、下記を参考にmicroSDをフォーマットしてlinux.tar.gzとromfs.img.gzを構築し、
  SDブート設定にして起動できることを確認。
  http://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_soft…

⑤Qt Creatorにてアプリケーションを作成し、Armadilloにlftpで転送して、実行権をつけて実行。

行った手順として、上記となります。

以上、よろしくお願いいたします。

at_takashi.sasayama

2015年7月3日 9時04分

笹山です。

再現手順のご連絡有難うございました。
もう一点教えていただけないでしょうか?

samegame でも同じく×マークが表示されているか確認していただけないでしょうか?

atmark-dist-qt-20121105.tar.gz をお使いですので、
samegame はデフォルトでユーザーランドイメージに含まれています。
以下のコマンドを実行すると確認ができると思います。

[armadillo ~]# export QWS_MOUSE_PROTO=tslib:/dev/input/event1
[armadillo ~]# samegame -qws

可能でしたらデフォルトのものと、先に記載したカーソルを非表示にするバージョン
両方を確認していただけると有難いです。

どうぞよろしくお願いいたします。

■参考情報

Howto : Armadillo-440でQt! 第1回
http://armadillo.atmark-techno.com/howto/armadillo-440-qt-1

> samegame でも同じく×マークが表示されているか確認していただけないでしょうか?
> 可能でしたらデフォルトのものと、先に記載したカーソルを非表示にするバージョン
> 両方を確認していただけると有難いです。
両方で確認しましたが、どちらとも×マークは消えませんでした。

> 両方で確認しましたが、どちらとも×マークは消えませんでした。

どんな画像なのか見せていただくことは可能ですか?

# fbcat /dev/fb0 > screenshot.ppm

とか。

at_takashi.sasayama

2015年7月7日 15時35分

笹山です。

×マークが表示される現象ですが x-window-system が動作していると
再現することがわかりました。

お使いの環境では Xfbdev が動作していると思われますので、これを kill すれば、
×マークが表示されなくなることを確認できると思います。

[root@armadillo440-0 (ttymxc1) ~]# ps |grep Xfbdev
 1331 root       2404 S   /usr/bin/Xfbdev -s 0 -mouse tslib,,device=/dev/input/
[root@armadillo440-0 (ttymxc1) ~]# kill 1331

本現象が発生するケースですが、ATDE4 と atmark-dist-qt-20121105.tar.gz 環境においては、
デフォルトで x-window-system は無効となっており、
仮に有効にしてもビルドエラーになる為、通常ではユーザーランドイメージに
x-window-system が含まれることはありません。

推測の域は出ませんが、x-window-system 有効の Armadillo-440 ユーザーランドが
既にSDに書き込まれていて、これを上書きする形で Qt 対応のユーザーランドを
展開すると本現象が発生する可能性があります。

ユーザーランドの展開前に、SDカードがフォーマットされているかを確認してみてください。

■参考情報

8.2.2. ファイルシステムの作成
http://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_soft…

Xfbdev を無効にして動作したところ、×マークは表示されなくなりました。
問題解決です。
ありがとうございました。

> 本現象が発生するケースですが、ATDE4 と atmark-dist-qt-20121105.tar.gz 環境においては、
> デフォルトで x-window-system は無効となっており、
> 仮に有効にしてもビルドエラーになる為、通常ではユーザーランドイメージに
> x-window-system が含まれることはありません。
>
> 推測の域は出ませんが、x-window-system 有効の Armadillo-440 ユーザーランドが
> 既にSDに書き込まれていて、これを上書きする形で Qt 対応のユーザーランドを
> 展開すると本現象が発生する可能性があります。
>
> ユーザーランドの展開前に、SDカードがフォーマットされているかを確認してみてください。
上記、ATDE3のイメージを以前、テストとして使用したこともあります。
その後、リンクにあるパーティション作成から手順通りに行っており、
上書きをしたつもりはないのですが。
フォーマット後、実際にSD内のフォルダやファイルは消えていました。
この件に関しては別件の話なので、何かわかればご連絡ください。