TouchGFXを使おう3~導入編2~の続きです。
今回はTouchGFXで画面遷移をします。
TouchGFX入門:画面遷移と性能
STマイクロエレクトロニクスが製作しているYoutubeも参照ください。
なるべく近い構成となるように調整しています。
Interactionで遷移する
Interaction を使用して 画面遷移 をしてみます。
2つのScreenを作成し、Screen2にボタンでScreen1に戻るようにします。
最初にScreenを2つ作成し Interacytions⇒+ を クリック し Integration を追加します。
Trigger:Button is clicked
Choose clicked source:button1
Action:Change screen
Choose Screen:Screen1
とします。
この段階でScreen2のボタンをクリックするとScreen1に戻るプログラムになりました。
プログラムで遷移する
プログラムを使用して自動的に画面遷移を行います。
Screen1に Action を 追加 します。
+ Add Custom Action を クリック します。
Actionの名前を今回は、action1 にします。
Interacytion を追加します。
Trigger:action1 is called
Action:Change screen
Choose Screen:Screen2
コード追加
コード生成 し Screen1View.hpp に handleTickEvent を 追加 します。
今回は VisualStudioCode を使用していますが、STM32CubeIDE等 でも 可能 です。
Generate Code または Run Simulator で コードを生成し Files から 生成されたコード を開きます。
ファイル⇒フォルダーを開く からフォルダーを指定して開きます。
フォルダはプロジェクト名とおなじn
今回は、Screen1View.hpp と Screen1View.cpp に コード を 追加 します。
- gui⇒include_gui⇒Screen1_screen⇒Screen1View.hpp
- gui⇒src⇒Screen1_screen⇒Screen1View.cpp
Screen1View.hpp
最初に、Screen1View.hpp に handleTickEvent を 追加 します。
TouchGFXProjects\MyApplication\gui\include\gui\screen1_screen\Screen1View.hpp を開き
virtual void handleTickEvent();
int tickCounter = 0;
を追加し以下のような形にします。
public:
Screen1View();
virtual ~Screen1View() {}
virtual void setupScreen();
virtual void tearDownScreen();
virtual void handleTickEvent();
protected:
int tickCounter = 0;
Screen1View.cpp
次に、Screen1View.cpp に 動作内容 を 追加 します。
Screen1View.cpp に tickCounter が 60 になると動作するようにします。
TouchGFXProjects\MyApplication\gui\src\screen1_screen\Screen1View.cpp を開き
void Screen1View::handleTickEvent()
{
if(tickCounter >= 60) action1();
tickCounter++;
}
を追加します。
以上で 60カウント でスクリーンScreen1からScreen2に変化するプログラムになりました。
TouchGFXを使おう4~アニメーション~に続きます。