こんにちは!
GUI Guiderバージョン2のテストを始め、いくつかの問題(まずは空のテンプレート、Windowsシミュレータ)に気づきました。
トップレイヤーの内容を定義し、画像ボタンを入れ、ボタンを長押ししたときに状態を切り替えるイベントハンドラを作成し始めました。
生成されたコードには、次のようなエラーがあります。
gg_event_layer_top.c:
静的虚無 lv_layer_top()_event_handler(lv_event_t * e) {
...
}
(括弧は構文解析エラーの原因となります)
括弧を手動で削除すると、以下のエラーが発生します。
.../generated/events/gg_event_layer_top.c:59:38: エラー:「gg_layer_top_t」に「lv_layer_top」という名前のメンバーがいません
(gg_layer_top_t の定義にはそのメンバーは含まれていません)
これらの関数を正しく生成するために必要な定義が何か見落とされているのでしょうか?
こんにちは、 @poldo さん。
この問題を再現するにはどうすればよいか教えていただけますか?
BR
ハリー
こんにちは、 @Harry_Zhang さん、ご返信ありがとうございます。
私がやったことはこうです。
- layer_top にクリック可能なフラグを追加しましたが、これは必要でしょうか?ボタン用のコンテナを作成しました(クリック可能なフラグは追加していません)
- コンテナ内で画像ボタンを作成しました(クリック可能なフラグが追加されました)
- 「Long Pressed」というイベントをボタンに付けました
生成されたコードには上記の構文エラーが含まれています。
// In gg_event_layer_top.c
static void lv_layer_top()_event_handler(lv_event_t * e)
{
gg_ui_t * ui = lv_event_get_user_data(e);
lv_event_code_t code = lv_event_get_code(e);
switch(code) {
default:
break;
}
}
void gg_event_init_layer_top(gg_ui_t * ui)
{
lv_obj_add_event_cb(ui->layer_top.lv_layer_top(), lv_layer_top()_event_handler, LV_EVENT_ALL, ui);
lv_obj_add_event_cb(ui->layer_top.Keypad_btnEnable, Keypad_btnEnable_event_handler, LV_EVENT_ALL, ui);
}括弧を削除すると、構文エラーはメンバーlv_layer_topが存在しないことに関するものです。
// In custom.h
typedef struct {
lv_obj_t * Keypad;
lv_obj_t * Keypad_btnEnable;
} gg_layer_top_t;BR
ポルド
こんにちは、 @poldo さん。
この問題を再現しようと試みました。
生成されたコードは正しいです。
私が何か見逃した点があれば教えていただけますか?
BR
ハリー
こんにちは、 @Harry_Zhang さん。
問題は、最上層にオブジェクトを作成する場合です。レビューとテストのためにファイルを添付します。
こんにちは、 @poldo さん。
プロジェクトをありがとうございます。この問題を再現できました。
これはバグです。
次期バージョンで修正します。
ご理解いただきありがとうございます。
BR
ハリー
これはバグであり、修正方法は簡単です。guiguiderファイルを見つけて、テキストモードで開いてください。event_list を見つけて、不要なコンテンツを削除してから、ガイドを使用してプロジェクトを再読み込みしてください。生成されたコードは正常に戻ります。
ハリー・チャンさん、ありがとうございます。
アップデートを待つ間に使える回避策はありますか?
BR