slint/docs/quickstart/cpp/src/creating_the_tiles_from_cpp.md
2024-04-04 13:26:24 +02:00

1.3 KiB

Creating The Tiles From C++

This step places the game tiles randomly.

Change the main function and includes in src/main.cpp to the following:

{{#include main_tiles_from_cpp.cpp:main}}

The code takes the list of tiles, duplicates it, and shuffles it, accessing the memory_tiles property through the C++ code.

For each top-level property, Slint generates a getter and a setter function. In this case get_memory_tiles and set_memory_tiles. Since memory_tiles is a Slint array, it's represented as a std::shared_ptr<slint::Model>.

You can't change the model generated by Slint, but you can extract the tiles from it and put them in a slint::VectorModel which inherits from Model. VectorModel lets you make changes and you can use it to replace the static generated model.

Running this code opens a window that now shows a 4 by 4 grid of rectangles, which show or hide the icons when a player clicks on them.

There's one last aspect missing now, the rules for the game.