{"id":76941,"date":"2025-12-18T13:16:00","date_gmt":"2025-12-18T12:16:00","guid":{"rendered":"https:\/\/fhi.nl\/nieuws\/how-to-select-the-ideal-touchgfx-object-for-gui-builder-use-by-winstar\/"},"modified":"2025-12-18T13:17:57","modified_gmt":"2025-12-18T12:17:57","slug":"how-to-select-the-ideal-touchgfx-object-for-gui-builder-use-by-winstar","status":"publish","type":"news","link":"https:\/\/fhi.nl\/en\/news\/how-to-select-the-ideal-touchgfx-object-for-gui-builder-use-by-winstar\/","title":{"rendered":"How to Select the Ideal TouchGFX Object for GUI Builder Use \u2013 by Winstar"},"content":{"rendered":"<header id=\"header\" class=\"header header--high header--branch\">\n\n\t\t\t\t\t\t\t\t\t\t<div class=\"header__background header__background--high\">\n\t\t\t\t\t<img decoding=\"async\" class=\"header__background-image\" src=\"https:\/\/fhi.nl\/app\/uploads\/2025\/12\/Fig-25-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg\" alt=\"\">\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\n\t\n\t<div class=\"container\">\n\t\t<div class=\"header__content\">\n\t\t\t<div class=\"header__first\">\n\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<h1 class=\"header__title\" >\n\t\t\t\t\tHow to Select the Ideal TouchGFX Object for GUI Builder Use \u2013 by Winstar\t\t\t\t<\/h1>\n\n\t\t\t\t<div class=\"header__dots-line\">\n\t\t\t\t\t<svg width=\"431\" height=\"9\" viewbox=\"0 0 431 9\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M430.799 4.192a1.136 1.136 0 1 1-2.272-.001 1.136 1.136 0 0 1 2.272 0Zm-27.272 0a1.135 1.135 0 1 1-2.27 0 1.135 1.135 0 0 1 2.27 0Zm-27.27 0a1.136 1.136 0 1 1-2.272-.001 1.136 1.136 0 0 1 2.272 0Zm-27.272 0a1.39 1.39 0 1 1-2.78 0 1.39 1.39 0 0 1 2.78 0Zm-27.78 0a1.645 1.645 0 1 1-3.29 0 1.645 1.645 0 0 1 3.29 0Zm-28.29 0a1.9 1.9 0 1 1-3.799 0 1.9 1.9 0 0 1 3.799 0Zm-28.799 0a2.154 2.154 0 1 1-4.308 0 2.154 2.154 0 0 1 4.308 0Zm-29.308 0a2.41 2.41 0 1 1-4.819 0 2.41 2.41 0 0 1 4.819 0Zm-29.819 0a2.663 2.663 0 1 1-5.326.001 2.663 2.663 0 0 1 5.326-.001Zm-30.327 0a2.919 2.919 0 1 1-5.837 0 2.919 2.919 0 0 1 5.837 0Zm-30.837 0a3.173 3.173 0 1 1-6.345.001 3.173 3.173 0 0 1 6.345 0Zm-31.346 0a3.428 3.428 0 1 1-6.856 0 3.428 3.428 0 0 1 6.856 0Zm-31.856 0a3.683 3.683 0 1 1-7.365 0 3.683 3.683 0 0 1 7.365 0Zm-32.365 0a3.937 3.937 0 1 1-7.875 0 3.937 3.937 0 0 1 7.875 0Zm-32.874 0a4.192 4.192 0 1 1-8.384 0 4.192 4.192 0 0 1 8.384 0Z\" fill=\"#FFF960\"\/><\/svg>\t\t\t\t<\/div>\n\n\t\t\t\t\n\t\t\t\t\n\t\t\t<\/div>\n\n\t\t\t\t\t\t\t<div class=\"header__second\">\n\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"header__branch-logos\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/fhi.nl\/app\/uploads\/2024\/02\/Industriele-elektronica.svg\" class=\"header__branch-logo\" alt=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t<\/div>\n<\/header>\n\n\t<div class=\"header__meta\">\n\t<div class=\"container\">\n\t\t<div class=\"header__meta__category\">\n\n\t\t\t\t\t\t\t<div class=\"header__meta__detail\">\n\t\t\t\t\t<div>Branch<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/fhi.nl\/en\/kennishub\/?_branches_kennishub=industriele-elektronica\" class=\"header__meta__detail--branch\">\n\t\t\t\t\t\t\t\tIndustrial Electronics\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t\t<div class=\"header__meta__detail\">\n\t\t\t\t\t<div>Subject<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/fhi.nl\/en\/kennishub\/?_onderwerp_kennishub=industriele-elektronica\" class=\"header__meta__detail--categorie\">\n\t\t\t\t\t\t\t\tIndustrial Electronics\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n<div class=\"text bg--white\">\n\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"text__content text__content--1-col\">\n\t\t\t<p>TouchGFX is a graphic user interface (GUI) development framework provided by STMicroelectronics, designed for embedded system development targeting STM32 microcontroller (MCU) chips. It offers the capability to design object context displays, assisting STM MCU users in constructing smooth, beautiful, and various UI pages.<\/p>\r\n<p>The following example uses TouchGFX version 4.23.2 as a reference:<\/p>\r\n<div id=\"attachment_42751\" class=\"wp-caption alignnone\"><img decoding=\"async\" class=\"wp-image-42751\" src=\"https:\/\/www.nijkerk-ne.com\/wp-content\/uploads\/Fig-1-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg.webp\" alt=\"\" width=\"877\" height=\"572\" aria-describedby=\"caption-attachment-42751\" \/>\r\n<p id=\"caption-attachment-42751\" class=\"wp-caption-text\">Figure 1: TouchGFX startup screen showing options like Example, Demo, Create Board chip, etc.<\/p>\r\n<\/div>\r\n<h3>Overview of TouchGFX Structure<\/h3>\r\n<p>The TouchGFX program architecture adopts the Model-View-Presenter (MVP) pattern, as illustrated in Figure 2, with the following advantages:<\/p>\r\n<p><strong>Separation of Concerns:<\/strong>\u00a0Code maintenance varies across different stages, facilitating users to write interfaces and communicate with lower layers, resulting in clear and understandable structures with high reusability.<\/p>\r\n<p><strong>Unit Testing:<\/strong>\u00a0The upper-layer view can directly interact with the code generated by GFX, making it easier to validate results independently.<\/p>\r\n<div id=\"attachment_42754\" class=\"wp-caption alignnone\"><img decoding=\"async\" class=\"size-full wp-image-42754\" src=\"https:\/\/www.nijkerk-ne.com\/wp-content\/uploads\/Fig-2-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg.webp\" alt=\"\" width=\"800\" height=\"600\" aria-describedby=\"caption-attachment-42754\" \/>\r\n<p id=\"caption-attachment-42754\" class=\"wp-caption-text\">Figure 2: Relationship diagram of TouchGFX components (MVP)<\/p>\r\n<\/div>\r\n<p><strong>View:<\/strong>\u00a0The main display page generated by GFX, designed for interface representation. Typically, it acts as the passive end of the MVP&#039;s upper layer, handling all design information for the UI interface, and displays corresponding screens based on the properties of the used objects.<\/p>\r\n<p><strong>Model:<\/strong>\u00a0Serves as the core location for processing and sending data. Some communication packets are judged or processed and then sent to the View via the Presenter to change the currently displayed content and object status.<\/p>\r\n<p><strong>Presenter:<\/strong>\u00a0Acts as the communication channel between View and Model, allowing data requests from the Model so that functions can be reused.<\/p>\r\n<p>Due to the FW design philosophy, which emphasizes the Model as the command processing hub, a diagram can be illustrated (Figure 3).<\/p>\r\n<p>Through lower-level processing for different interfaces (eg, CAN bus, RS485, UART, Bluetooth, Wi-Fi), data is forwarded to the Model for communication and then relayed to the View via the Presenter, achieving object status switching.<\/p>\r\n<div id=\"attachment_42757\" class=\"wp-caption alignnone\"><img decoding=\"async\" class=\"wp-image-42757 size-full\" src=\"https:\/\/www.nijkerk-ne.com\/wp-content\/uploads\/Fig-3-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg.webp\" alt=\"\" width=\"800\" height=\"600\" aria-describedby=\"caption-attachment-42757\" \/>\r\n<p id=\"caption-attachment-42757\" class=\"wp-caption-text\">Figure 3: Communication between multiple interfaces and the MVP architecture<\/p>\r\n<\/div>\r\n<p>Two examples can illustrate the data exchange method:<\/p>\r\n<p><strong>Sample 1:<\/strong>\u00a0Suppose the Host sends a CANopen command to the Device (Figure 4).<\/p>\r\n<p>CANopen receives packets through the IF port, possibly decrypts the packet data through the CAN task, and then forwards the content to the Model. After the Model updates the database and executes the corresponding command, it sends the result back to the View via the Presenter to refresh the page.<\/p>\r\n<div id=\"attachment_42760\" class=\"wp-caption alignnone\"><img decoding=\"async\" class=\"size-full wp-image-42760\" src=\"https:\/\/www.nijkerk-ne.com\/wp-content\/uploads\/Fig-4-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg.webp\" alt=\"\" width=\"800\" height=\"600\" aria-describedby=\"caption-attachment-42760\" \/>\r\n<p id=\"caption-attachment-42760\" class=\"wp-caption-text\">Figure 4: Example of Host sending a command<\/p>\r\n<\/div>\r\n<p><strong>Sample 2:<\/strong>\u00a0If a user touches a UI object on the device, a touch event packet is reported back to the Host (Figure 5).<\/p>\r\n<p>When a user clicks on an interactive object, the View generates a click event, which is then passed to the Model via a User Event through the Presenter. The Model responds based on the currently used interface, sending the code back to the CAN task, and finally sends a TX packet to notify the Host.<\/p>\r\n<div id=\"attachment_42763\" class=\"wp-caption alignnone\"><img decoding=\"async\" class=\"wp-image-42763 size-full\" src=\"https:\/\/www.nijkerk-ne.com\/wp-content\/uploads\/Fig-5-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg.webp\" alt=\"\" width=\"800\" height=\"600\" aria-describedby=\"caption-attachment-42763\" \/>\r\n<p id=\"caption-attachment-42763\" class=\"wp-caption-text\">Figure 5: User touch event sent back to the Host<\/p>\r\n<\/div>\r\n<h3>Overview of View Page Knowledge<\/h3>\r\n<p>In the TouchGFX software interface, designing N pages will generate N corresponding sets of View and Presenter, but only one Model will control all view pages.<\/p>\r\n<p>When a user designs a UI scenario, including graphics, appearance, coordinates, and text display, pressing \u201cGenerate Code\u201d will produce code in the corresponding named view page.<\/p>\r\n<p>The generated folders are divided into ..\\generated\\ and ..\\gui\\, where ..\\generated\\ contains the basic code for the designed page display, and ..\\gui\\ contains the logic for object interactions.<\/p>\r\n<p>We can use this information to pull objects onto their respective pages and refer to the usable code.<\/p>\r\n<p>Here&#039;s a simple step-by-step explanation of the above description:<\/p>\r\n<p><strong>For example:<\/strong><\/p>\r\n<p>1. Open a blank project and press \u201cCreate New\u201d to establish a Project (Figure 6).<\/p>\r\n<div id=\"attachment_42766\" class=\"wp-caption alignnone\"><img decoding=\"async\" class=\"wp-image-42766\" src=\"https:\/\/www.nijkerk-ne.com\/wp-content\/uploads\/Fig-6-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg.webp\" alt=\"\" width=\"878\" height=\"464\" aria-describedby=\"caption-attachment-42766\" \/>\r\n<p id=\"caption-attachment-42766\" class=\"wp-caption-text\">Figure 6: TouchGFX project opening screen<\/p>\r\n<\/div>\r\n<p>2. In TouchGFX, a default Screen1 will be available. We add a new button object, select the desired image, and execute \u201cGenerate Code\u201d (Figure 7).<\/p>\r\n<div id=\"attachment_42769\" class=\"wp-caption alignnone\"><img decoding=\"async\" class=\"wp-image-42769\" src=\"https:\/\/www.nijkerk-ne.com\/wp-content\/uploads\/Fig-7-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg.webp\" alt=\"\" width=\"869\" height=\"527\" aria-describedby=\"caption-attachment-42769\" \/>\r\n<p id=\"caption-attachment-42769\" class=\"wp-caption-text\">Figure 7: Create Button demonstration<\/p>\r\n<\/div>\r\n<p>3. Next, switching to the project path will show two new folders: gui and generated (Figure 8):<\/p>\r\n<div id=\"attachment_42772\" class=\"wp-caption alignnone\"><img decoding=\"async\" class=\"size-full wp-image-42772\" src=\"https:\/\/www.nijkerk-ne.com\/wp-content\/uploads\/Fig-8-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg.webp\" alt=\"\" width=\"759\" height=\"277\" aria-describedby=\"caption-attachment-42772\" \/>\r\n<p id=\"caption-attachment-42772\" class=\"wp-caption-text\">Figure 8: Project folder content<\/p>\r\n<\/div>\r\n<p>The generated folder contains the basic code related to Screen1 components, which is auto-generated by TouchGFX and cannot be modified directly. If the object state on the page changes and code is rebuilt, the code in the generated folder will update.<\/p>\r\n<p>Similarly, after executing \u201cGenerate Code,\u201d GFX will create Screen1ViewBase.cpp in ..\\generated\\gui_generated\\src\\screen1_screen (Figure 9).<\/p>\r\n<div id=\"attachment_42775\" class=\"wp-caption alignnone\"><img decoding=\"async\" class=\"size-full wp-image-42775\" src=\"https:\/\/www.nijkerk-ne.com\/wp-content\/uploads\/Fig-9-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg.webp\" alt=\"\" width=\"766\" height=\"92\" aria-describedby=\"caption-attachment-42775\" \/>\r\n<p id=\"caption-attachment-42775\" class=\"wp-caption-text\">Figure 9: Location of Screen1ViewBase.cpp<\/p>\r\n<\/div>\r\n<p>If we open Screen1ViewBase.cpp with Notepad++ (Figure 10), we can see the properties and content related to the Screen1 page and button data:<\/p>\r\n<p>\u2013 Set Button coordinates:<br \/>button1.setXY(63, 109);<\/p>\r\n<p>\u2013 Set Button image ID:<br \/>button1.setBitmaps(TouchGfx::Bitmap(BITMAP_BUTTON_00_00_ID),TouchGfx::Bitmap(BITMAP_BUTTON_00_00_ID));<\/p>\r\n<p>\u2013 Add the button object to the page:<br \/>Add(button1);<\/p>\r\n<div id=\"attachment_42778\" class=\"wp-caption alignnone\"><img decoding=\"async\" class=\"wp-image-42778\" src=\"https:\/\/www.nijkerk-ne.com\/wp-content\/uploads\/Fig-10-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg.webp\" alt=\"\" width=\"878\" height=\"506\" aria-describedby=\"caption-attachment-42778\" \/>\r\n<p id=\"caption-attachment-42778\" class=\"wp-caption-text\">Figure 10: Content of Screen1ViewBase.cpp<\/p>\r\n<\/div>\r\n<p>The code with the XXXBase.cpp name will be rebuilt during \u201cGenerate Code,\u201d and any changes to the attribute data will be reflected. Thus, if we adjust the button&#039;s position, image, etc., the functions may change as well.<\/p>\r\n<p>As for the gui folder, it is where TouchGFX allows users to write program logic (Figure 8). Therefore, the MVP architecture is also constructed here (Figures 11 and 12), enabling us to plan our own MVP code communication methods to realize UI design directions.<\/p>\r\n<div id=\"attachment_42781\" class=\"wp-caption alignnone\"><img decoding=\"async\" class=\"size-full wp-image-42781\" src=\"https:\/\/www.nijkerk-ne.com\/wp-content\/uploads\/Fig-11-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg.webp\" alt=\"\" width=\"638\" height=\"138\" aria-describedby=\"caption-attachment-42781\" \/>\r\n<p id=\"caption-attachment-42781\" class=\"wp-caption-text\">Figure 11: Path of the Model<\/p>\r\n<\/div>\r\n<p>\u00a0<\/p>\r\n<div id=\"attachment_42784\" class=\"wp-caption alignnone\"><img decoding=\"async\" class=\"size-full wp-image-42784\" src=\"https:\/\/www.nijkerk-ne.com\/wp-content\/uploads\/Fig-12-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg.webp\" alt=\"\" width=\"780\" height=\"115\" aria-describedby=\"caption-attachment-42784\" \/>\r\n<p id=\"caption-attachment-42784\" class=\"wp-caption-text\">Figure 12: Paths of Presenter and View<\/p>\r\n<\/div>\r\n<p>4. Designing a Simple Scenario for GUI\/Generated Design Explanation<\/p>\r\n<p>\u2013 Write a logical control for interaction between a button and text.<br \/>\u2013 When the button is clicked once, the text value increases.<\/p>\r\n<p>Here&#039;s how to implement this functionality:<\/p>\r\n<p><strong>Step 1:<\/strong><br \/>Drag two objects, a button (button1) and a text area (textArea1) (Figure 13).<\/p>\r\n<div id=\"attachment_42787\" class=\"wp-caption alignnone\"><img decoding=\"async\" class=\"wp-image-42787\" src=\"https:\/\/www.nijkerk-ne.com\/wp-content\/uploads\/Fig-13-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg.webp\" alt=\"\" width=\"865\" height=\"363\" aria-describedby=\"caption-attachment-42787\" \/>\r\n<p id=\"caption-attachment-42787\" class=\"wp-caption-text\">Figure 13: UI design project with Button control<\/p>\r\n<\/div>\r\n<p><strong>Step 2:<\/strong><br \/>Select the interaction action on the right side, add a Button click Event, and choose to call the function add_number when this action is executed (Figure 14).<\/p>\r\n<div id=\"attachment_42790\" class=\"wp-caption alignnone\"><img decoding=\"async\" class=\"wp-image-42790\" src=\"https:\/\/www.nijkerk-ne.com\/wp-content\/uploads\/Fig-14-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg.webp\" alt=\"\" width=\"873\" height=\"391\" aria-describedby=\"caption-attachment-42790\" \/>\r\n<p id=\"caption-attachment-42790\" class=\"wp-caption-text\">Figure 14: Adding Interaction1 Event<\/p>\r\n<\/div>\r\n<p><strong>Step 3:<\/strong><br \/>Observe Screen1ViewBase.cpp (Figure 15) to find the relevant property code for creating button1 and textArea1.<\/p>\r\n<p>Due to the newly added interactions, buttonCallbackHandler is generated to handle the button1 touch event. When clicked, it will call the function named add_number via the callback function.<\/p>\r\n<div id=\"attachment_42793\" class=\"wp-caption alignnone\"><img decoding=\"async\" class=\"size-full wp-image-42793\" src=\"https:\/\/www.nijkerk-ne.com\/wp-content\/uploads\/Fig-15-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg.webp\" alt=\"\" width=\"865\" height=\"852\" aria-describedby=\"caption-attachment-42793\" \/>\r\n<p id=\"caption-attachment-42793\" class=\"wp-caption-text\">Figure 15: Screen1ViewBase.cpp<\/p>\r\n<\/div>\r\n<p>Content of Screen1ViewBase.hpp (Figure 16).<\/p>\r\n<div id=\"attachment_42796\" class=\"wp-caption alignnone\"><img decoding=\"async\" class=\"size-full wp-image-42796\" src=\"https:\/\/www.nijkerk-ne.com\/wp-content\/uploads\/Fig-16-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg.webp\" alt=\"\" width=\"739\" height=\"931\" aria-describedby=\"caption-attachment-42796\" \/>\r\n<p id=\"caption-attachment-42796\" class=\"wp-caption-text\">Figure 16: Content of Screen1ViewBase.hpp<\/p>\r\n<\/div>\r\n<p><strong>Step 4:<\/strong><br \/>In the gui section, add Screen1View.cpp and Screen1View.hpp.<br \/>Add the add_number program to utilize the count parameter for accumulation (Figures 17 and 18).<\/p>\r\n<p>Use Unicode: snprintf(textArea1Buffer, TEXTAREA1_SIZE, \u201c%02d\u201d, count); to refresh the updated count into textArea1.<\/p>\r\n<p>Then use textArea1.invalidate() to refresh the data.<\/p>\r\n<div id=\"attachment_42799\" class=\"wp-caption alignnone\"><img decoding=\"async\" class=\"size-full wp-image-42799\" src=\"https:\/\/www.nijkerk-ne.com\/wp-content\/uploads\/Fig-17-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg.webp\" alt=\"\" width=\"659\" height=\"441\" aria-describedby=\"caption-attachment-42799\" \/>\r\n<p id=\"caption-attachment-42799\" class=\"wp-caption-text\">Figure 17: Content of Screen1View.cpp<\/p>\r\n<\/div>\r\n<p>\u00a0<\/p>\r\n<div id=\"attachment_42802\" class=\"wp-caption alignnone\"><img decoding=\"async\" class=\"size-full wp-image-42802\" src=\"https:\/\/www.nijkerk-ne.com\/wp-content\/uploads\/Fig-18-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg.webp\" alt=\"\" width=\"551\" height=\"350\" aria-describedby=\"caption-attachment-42802\" \/>\r\n<p id=\"caption-attachment-42802\" class=\"wp-caption-text\">Figure 18: Content of Screen1View.hpp<\/p>\r\n<\/div>\r\n<p>After running the simulator, it can be confirmed that each time button1 is touched, textArea1 (count value) will start adding from 0 (Figure 19).<\/p>\r\n<div id=\"attachment_42805\" class=\"wp-caption alignnone\"><img decoding=\"async\" class=\"wp-image-42805\" src=\"https:\/\/www.nijkerk-ne.com\/wp-content\/uploads\/Fig-19-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg.webp\" alt=\"\" width=\"842\" height=\"551\" aria-describedby=\"caption-attachment-42805\" \/>\r\n<p id=\"caption-attachment-42805\" class=\"wp-caption-text\">Figure 19: Simulator result display<\/p>\r\n<\/div>\r\n<p>This confirms that the definition of object properties is generally established in the generated path, while the user writes logic execution code under the gui section.<\/p>\r\n<h3>TouchGFX and Builder Object Property Examples<\/h3>\r\n<p>The Smart Display GUI Builder provided by Winstar is a drag-and-drop interface design tool for UI\/UX, offering customers a no-code development service tailored for rapid development and design of ST MCU-based products. Built as an extension of the TouchGFX framework, the GUI Builder incorporates the original widget functionalities of TouchGFX, with its primary distinction being the support for multiple system interfaces and communication protocols. This allows users to directly observe how commands affect widget control and changes.<\/p>\r\n<p>Here is the introduction to the Builder:<br \/>https:\/\/www.winstar.com.tw\/video\/play\/142.html<\/p>\r\n<p>The design philosophy of Smartdisplay is related to the functionality of TouchGFX setting, including the firmware written using STM32 MCU as the foundation of MVP. The objects inside are designed using existing items combined with logic.<\/p>\r\n<p>Therefore, among the objects opened up by the GUI Builder, some items can be implemented using existing TouchGFX UI components to achieve corresponding display results.<\/p>\r\n<p>*Supplementary Explanation Segment<\/p>\r\n<p>Here&#039;s a simple example using the Builder slider (Figure 20):<\/p>\r\n<div id=\"attachment_42808\" class=\"wp-caption alignnone\"><img decoding=\"async\" class=\"wp-image-42808\" src=\"https:\/\/www.nijkerk-ne.com\/wp-content\/uploads\/Fig-20-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg.webp\" alt=\"\" width=\"882\" height=\"570\" aria-describedby=\"caption-attachment-42808\" \/>\r\n<p id=\"caption-attachment-42808\" class=\"wp-caption-text\">Figure 20: Builder slider property page<\/p>\r\n<\/div>\r\n<p><strong>The properties of the Builder Slider are as follows:<\/strong><\/p>\r\n<p>Size:<br \/>\u2013 Width: 618<br \/>\u2013 Height: 20<\/p>\r\n<p>Positions:<br \/>\u2013 Background Position (X): 0<br \/>\u2013 Background Position (Y): 4<\/p>\r\n<p>Indicator Position:<br \/>\u2013 Min: 0<br \/>\u2013 Max: 580<br \/>\u2013 Pos: 0<\/p>\r\n<p>These parameters correspond to the Slider Component settings in TouchGFX (Figure 21).<\/p>\r\n<div id=\"attachment_42811\" class=\"wp-caption alignnone\"><img decoding=\"async\" class=\"wp-image-42811\" src=\"https:\/\/www.nijkerk-ne.com\/wp-content\/uploads\/Fig-21-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg.webp\" alt=\"\" width=\"882\" height=\"560\" aria-describedby=\"caption-attachment-42811\" \/>\r\n<p id=\"caption-attachment-42811\" class=\"wp-caption-text\">Figure 21: Properties of TouchGFX Slider<\/p>\r\n<\/div>\r\n<p><strong>The properties of TouchGFX Slider are as follows:<\/strong><\/p>\r\n<p>Location:<br \/>\u2013 Width: 618<br \/>\u2013 Height: 20<\/p>\r\n<p>Positions:<br \/>\u2013 Background Position (X): 0<br \/>\u2013 Background Position (Y): 4<\/p>\r\n<p>Indicator Position:<br \/>\u2013 Min: 0<br \/>\u2013 Max: 580<br \/>\u2013 Y: 0<\/p>\r\n<p>Users can adjust the Start value in GFX to simulate the results in Builder (Figure 22).<\/p>\r\n<p>If the value is set to 100, it can simulate the same result in Builder (Figure 23).<\/p>\r\n<div id=\"attachment_42814\" class=\"wp-caption alignnone\"><img decoding=\"async\" class=\"wp-image-42814\" src=\"https:\/\/www.nijkerk-ne.com\/wp-content\/uploads\/Fig-22-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg.webp\" alt=\"\" width=\"872\" height=\"527\" aria-describedby=\"caption-attachment-42814\" \/>\r\n<p id=\"caption-attachment-42814\" class=\"wp-caption-text\">Figure 22: Adjusting Start = 100 in TouchGFX<\/p>\r\n<\/div>\r\n<p>\u00a0<\/p>\r\n<div id=\"attachment_42817\" class=\"wp-caption alignnone\"><img decoding=\"async\" class=\"wp-image-42817\" src=\"https:\/\/www.nijkerk-ne.com\/wp-content\/uploads\/Fig-23-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg.webp\" alt=\"\" width=\"884\" height=\"613\" aria-describedby=\"caption-attachment-42817\" \/>\r\n<p id=\"caption-attachment-42817\" class=\"wp-caption-text\">Figure 23: Adjusting Test Value = 100 in Builder<\/p>\r\n<\/div>\r\n<p>If we look at the Screen1ViewBase.cpp generated by GFX (Figure 24):<\/p>\r\n<div id=\"attachment_42820\" class=\"wp-caption alignnone\"><img decoding=\"async\" class=\"wp-image-42820\" src=\"https:\/\/www.nijkerk-ne.com\/wp-content\/uploads\/Fig-24-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg.webp\" alt=\"\" width=\"876\" height=\"319\" aria-describedby=\"caption-attachment-42820\" \/>\r\n<p id=\"caption-attachment-42820\" class=\"wp-caption-text\">Figure 24: Function in Screen1ViewBase.cpp<\/p>\r\n<\/div>\r\n<p>We can understand how the parameters mentioned above can be used and modified in code. Such numbers are directly related to the design of the GFX project. When the Builder uploads the project and resets the initial parameters for the Device Slider.<\/p>\r\n<p>If the Host sends a command to change the Slider&#039;s value, it will execute slider1.setValue() in the view to complete the object&#039;s change (Figure 25).<\/p>\r\n<div id=\"attachment_42823\" class=\"wp-caption alignnone\"><img decoding=\"async\" class=\"size-full wp-image-42823\" src=\"https:\/\/www.nijkerk-ne.com\/wp-content\/uploads\/Fig-25-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg.webp\" alt=\"\" width=\"800\" height=\"600\" aria-describedby=\"caption-attachment-42823\" \/>\r\n<p id=\"caption-attachment-42823\" class=\"wp-caption-text\">Figure 25: Host sends slider command<\/p>\r\n<\/div>\r\n<p>This is a simple explanation of the relationship between Builder and TouchGFX objects.<\/p>\r\n<h3>Future Extensions and Development Evaluation of Builder Objects<\/h3>\r\n<p>With the recent update to TouchGFX version 4.24.0, new objects and functionalities are available. If we need to evaluate whether Builder can be integrated, we can first try using the default examples from GFX for demos and research (Figure 26):<\/p>\r\n<div id=\"attachment_42826\" class=\"wp-caption alignnone\"><img decoding=\"async\" class=\"wp-image-42826\" src=\"https:\/\/www.nijkerk-ne.com\/wp-content\/uploads\/Fig-26-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg.webp\" alt=\"\" width=\"825\" height=\"625\" aria-describedby=\"caption-attachment-42826\" \/>\r\n<p id=\"caption-attachment-42826\" class=\"wp-caption-text\">Figure 26: Various example projects<\/p>\r\n<\/div>\r\n<p>Since version 4.24.0 supports new objects like QR code, we can evaluate the parameters and functions that can be used if Builder is integrated.<\/p>\r\n<p><strong>Example Using QR Code:<\/strong><\/p>\r\n<p>1. Select BlankUI.<br \/>2. Drag into the QR code Container.<br \/>3. Observe the configurable properties (Figure 27):<br \/>Location: (X, Y)<br \/>Configuration:<br \/>\u2013 QRVersion<br \/>\u2013 Scale<br \/>\u2013 Text<br \/>\u2013 Error Correction Code\u2026<\/p>\r\n<div id=\"attachment_42829\" class=\"wp-caption alignnone\"><img decoding=\"async\" class=\"size-full wp-image-42829\" src=\"https:\/\/www.nijkerk-ne.com\/wp-content\/uploads\/Fig-27-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg.webp\" alt=\"\" width=\"847\" height=\"641\" aria-describedby=\"caption-attachment-42829\" \/>\r\n<p id=\"caption-attachment-42829\" class=\"wp-caption-text\">Figure 27: QR code property screen<\/p>\r\n<\/div>\r\n<p>These parameters about the QR code can be referenced from the official website (Figure 28).<\/p>\r\n<div id=\"attachment_42832\" class=\"wp-caption alignnone\"><img decoding=\"async\" class=\"size-full wp-image-42832\" src=\"https:\/\/www.nijkerk-ne.com\/wp-content\/uploads\/Fig-28-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg.webp\" alt=\"\" width=\"857\" height=\"702\" aria-describedby=\"caption-attachment-42832\" \/>\r\n<p id=\"caption-attachment-42832\" class=\"wp-caption-text\">Figure 28: Official website explanation<\/p>\r\n<\/div>\r\n<p>In the generated function of Screen1ViewBase.cpp, confirm the available parameters and settings (Figure 29):<\/p>\r\n<p>1. Set coordinates: qrCode1.setXY(208, 224);<br \/>2. Set QR code version: qrCode1.setQRCodeVersion(3);<br \/>3. Set QR scale: qrCode1.setScale(5);<br \/>4. Input text to generate the QR code:<br \/>qrCode1.convertStringToQRCode(\u201chttps:\/\/www. winstar.com.tw\/zh-tw\/\u201d);<\/p>\r\n<div id=\"attachment_42835\" class=\"wp-caption alignnone\"><img decoding=\"async\" class=\"size-full wp-image-42835\" src=\"https:\/\/www.nijkerk-ne.com\/wp-content\/uploads\/Fig-29-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg.webp\" alt=\"\" width=\"675\" height=\"551\" aria-describedby=\"caption-attachment-42835\" \/>\r\n<p id=\"caption-attachment-42835\" class=\"wp-caption-text\">Figure 29: Generated code in Screen1ViewBase.cpp<\/p>\r\n<\/div>\r\n<p>If the QR code function is integrated into Builder in the future, it will allow users to set these adjustable parameters.<\/p>\r\n<p>If you want more information or if you have any questions, please\u00a0<a href=\"https:\/\/www.nijkerk-ne.com\/contact\/\">contact Nijkerk Electronics<\/a>!<\/p>\t\t<\/div>\n\t<\/div>\n<\/div>\r\n\t<div class=\"articles bg--offwhite automatic\">\r\n\t\t<div class=\"container\">\r\n\t\t\t<div class=\"articles__header\">\r\n\t\t\t\t\t\t\t\t\t<div class='heading-wrapper'><svg width=\"13\" height=\"13\" viewbox=\"0 0 13 13\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><circle cx=\"6.394\" cy=\"6.5\" r=\"6.394\" fill=\"#000\"\/><\/svg><h2>Related articles<\/h2><\/div>\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"\/en\/profiel\/nijkerk-electronics\/\" class=\"button button--outline\">view profile<\/a>\r\n\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t<div class=\"post-grid post-grid--no-padding\">\r\n\t\t\t\t\n<a class=\"single-item single-item__articles\" href=\"https:\/\/fhi.nl\/en\/news\/glow-wire-tests-for-safety-testing-household-appliances\/\" data-id=\"31561\">\n\t<div class=\"single-item__articles-icon\">\n\t\t<svg width=\"35\" height=\"35\" viewbox=\"0 0 35 35\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<mask id=\"mask0_1182_5532\" style=\"mask-type:luminance\" maskunits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"35\" height=\"35\">\n<path d=\"M0 0H35V35H0V0Z\" fill=\"white\"\/>\n<\/mask>\n<g mask=\"url(#mask0_1182_5532)\">\n<path d=\"M5.12695 9.22852H1.02539V31.9238H10.4299C12.2868 31.9238 14.0678 32.6615 15.3809 33.9746H19.6191C20.9322 32.6615 22.7132 31.9238 24.5701 31.9238H33.9746V11.2793H29.873\" stroke=\"#2A5CEE\" stroke-width=\"2\" stroke-miterlimit=\"10\"\/>\n<path d=\"M17.5 9.22852H18.1426C20.0088 7.89544 22.2237 7.17773 24.5615 7.17773H29.873V27.8223H24.5615C22.2237 27.8223 20.0088 28.54 18.1426 29.873H16.8574C14.9912 28.54 12.7763 27.8223 10.4385 27.8223H5.12695V5.12695H9.22852\" stroke=\"#2A5CEE\" stroke-width=\"2\" stroke-miterlimit=\"10\"\/>\n<path d=\"M9.22852 1.02539V21.6699C13.759 21.6699 17.5 25.3425 17.5 29.873V9.22852C17.5 4.698 13.759 1.02539 9.22852 1.02539Z\" stroke=\"#2A5CEE\" stroke-width=\"2\" stroke-miterlimit=\"10\"\/>\n<\/g>\n<\/svg>\n\t<\/div>\n\t<div class=\"single-item__articles-title\"><div class='heading-wrapper'><h3>Glow Wire Tests for Safety Testing Household Appliances<\/h3><\/div><\/div>\n\t<div class=\"single-item__articles-terms\">\n\t\t\n\t\t\n\t\t\t\t\t\t<span class=\"button button--outline single-item__articles-term--branche single-item__articles-term\">Industrial Electronics<\/span>\n\t\t\t\t\t\t\t\t<span class=\"button button--outline single-item__articles-term--branche single-item__articles-term\">Design Automation &amp; Embedded Systems Event<\/span>\n\t\t\t\t\t\t\t\t<span class=\"button button--outline single-item__articles-term--branche single-item__articles-term\">Active components<\/span>\n\t\t\t\t\t\t\t\t<span class=\"button button--outline single-item__articles-term--branche single-item__articles-term\">Antenna Design Service<\/span>\n\t\t\t\t\t<\/div>\n\t<div class=\"single-item__articles-author-date-wrapper\">\n\t\t\t\t\t<div class=\"single-item__articles-author\">\n\t\t\t\tW\u00fcrth Elektronik NL BV\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"single-item__articles-date\">\n\t\t\t\tApril 18, 2024\t\t\t<\/div>\n\t\t\t<\/div>\n<\/a>\n\n<a class=\"single-item single-item__articles\" href=\"https:\/\/fhi.nl\/en\/news\/oscilloscope-based-double-pulse-test-speeds-up-validation-time-of-sic-and-gan\/\" data-id=\"33144\">\n\t<div class=\"single-item__articles-icon\">\n\t\t<svg width=\"35\" height=\"35\" viewbox=\"0 0 35 35\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<mask id=\"mask0_1182_5532\" style=\"mask-type:luminance\" maskunits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"35\" height=\"35\">\n<path d=\"M0 0H35V35H0V0Z\" fill=\"white\"\/>\n<\/mask>\n<g mask=\"url(#mask0_1182_5532)\">\n<path d=\"M5.12695 9.22852H1.02539V31.9238H10.4299C12.2868 31.9238 14.0678 32.6615 15.3809 33.9746H19.6191C20.9322 32.6615 22.7132 31.9238 24.5701 31.9238H33.9746V11.2793H29.873\" stroke=\"#2A5CEE\" stroke-width=\"2\" stroke-miterlimit=\"10\"\/>\n<path d=\"M17.5 9.22852H18.1426C20.0088 7.89544 22.2237 7.17773 24.5615 7.17773H29.873V27.8223H24.5615C22.2237 27.8223 20.0088 28.54 18.1426 29.873H16.8574C14.9912 28.54 12.7763 27.8223 10.4385 27.8223H5.12695V5.12695H9.22852\" stroke=\"#2A5CEE\" stroke-width=\"2\" stroke-miterlimit=\"10\"\/>\n<path d=\"M9.22852 1.02539V21.6699C13.759 21.6699 17.5 25.3425 17.5 29.873V9.22852C17.5 4.698 13.759 1.02539 9.22852 1.02539Z\" stroke=\"#2A5CEE\" stroke-width=\"2\" stroke-miterlimit=\"10\"\/>\n<\/g>\n<\/svg>\n\t<\/div>\n\t<div class=\"single-item__articles-title\"><div class='heading-wrapper'><h3>Oscilloscope-based double pulse test speeds up validation time of SiC and GaN<\/h3><\/div><\/div>\n\t<div class=\"single-item__articles-terms\">\n\t\t\n\t\t\n\t\t\t\t\t\t<span class=\"button button--outline single-item__articles-term--branche single-item__articles-term\">Industrial Electronics<\/span>\n\t\t\t\t\t\t\t\t<span class=\"button button--outline single-item__articles-term--branche single-item__articles-term\">Design Automation &amp; Embedded Systems Event<\/span>\n\t\t\t\t\t\t\t\t<span class=\"button button--outline single-item__articles-term--branche single-item__articles-term\">Communication technology<\/span>\n\t\t\t\t\t\t\t\t<span class=\"button button--outline single-item__articles-term--branche single-item__articles-term\">Oscilloscopes<\/span>\n\t\t\t\t\t<\/div>\n\t<div class=\"single-item__articles-author-date-wrapper\">\n\t\t\t\t\t<div class=\"single-item__articles-author\">\n\t\t\t\tCN Rood\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"single-item__articles-date\">\n\t\t\t\tJune 21, 2023\t\t\t<\/div>\n\t\t\t<\/div>\n<\/a>\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"featured_media":76942,"template":"","branches":[13],"events":[9],"secretariat":[],"categories":[57],"themes_tax":[511],"content_types":[514],"class_list":["post-76941","news","type-news","status-publish","has-post-thumbnail","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How to Select the Ideal TouchGFX Object for GUI Builder Use \u2013 by Winstar<\/title>\n<meta name=\"description\" content=\"TouchGFX is a graphic user interface (GUI) development framework provided by STMicroelectronics, designed for embedded system development targeting STM32 microcontroller (MCU) chips.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.nijkerk-ne.com\/how-to-select-the-ideal-touchgfx-object-for-gui-builder-use-by-winstar\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Select the Ideal TouchGFX Object for GUI Builder Use \u2013 by Winstar\" \/>\n<meta property=\"og:description\" content=\"TouchGFX is a graphic user interface (GUI) development framework provided by STMicroelectronics, designed for embedded system development targeting STM32 microcontroller (MCU) chips.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.nijkerk-ne.com\/how-to-select-the-ideal-touchgfx-object-for-gui-builder-use-by-winstar\/\" \/>\n<meta property=\"og:site_name\" content=\"FHI, federatie van technologiebranches\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-18T12:17:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fhi.nl\/app\/uploads\/2025\/12\/Fig-25-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"600\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fhi.nl\/nieuws\/how-to-select-the-ideal-touchgfx-object-for-gui-builder-use-by-winstar\/\",\"url\":\"https:\/\/www.nijkerk-ne.com\/how-to-select-the-ideal-touchgfx-object-for-gui-builder-use-by-winstar\/\",\"name\":\"How to Select the Ideal TouchGFX Object for GUI Builder Use \u2013 by Winstar\",\"isPartOf\":{\"@id\":\"https:\/\/fhi.nl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.nijkerk-ne.com\/how-to-select-the-ideal-touchgfx-object-for-gui-builder-use-by-winstar\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.nijkerk-ne.com\/how-to-select-the-ideal-touchgfx-object-for-gui-builder-use-by-winstar\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fhi.nl\/app\/uploads\/2025\/12\/Fig-25-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg\",\"datePublished\":\"2025-12-18T12:16:00+00:00\",\"dateModified\":\"2025-12-18T12:17:57+00:00\",\"description\":\"TouchGFX is a graphic user interface (GUI) development framework provided by STMicroelectronics, designed for embedded system development targeting STM32 microcontroller (MCU) chips.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.nijkerk-ne.com\/how-to-select-the-ideal-touchgfx-object-for-gui-builder-use-by-winstar\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.nijkerk-ne.com\/how-to-select-the-ideal-touchgfx-object-for-gui-builder-use-by-winstar\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.nijkerk-ne.com\/how-to-select-the-ideal-touchgfx-object-for-gui-builder-use-by-winstar\/#primaryimage\",\"url\":\"https:\/\/fhi.nl\/app\/uploads\/2025\/12\/Fig-25-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg\",\"contentUrl\":\"https:\/\/fhi.nl\/app\/uploads\/2025\/12\/Fig-25-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg\",\"width\":800,\"height\":600},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.nijkerk-ne.com\/how-to-select-the-ideal-touchgfx-object-for-gui-builder-use-by-winstar\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/fhi.nl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Nieuws\",\"item\":\"https:\/\/fhi.nl\/nieuws\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"How to Select the Ideal TouchGFX Object for GUI Builder Use \u2013 by Winstar\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fhi.nl\/#website\",\"url\":\"https:\/\/fhi.nl\/\",\"name\":\"FHI, federatie van technologiebranches\",\"description\":\"Nederlandse branchevereniging voor technologiebranches\",\"publisher\":{\"@id\":\"https:\/\/fhi.nl\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fhi.nl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/fhi.nl\/#organization\",\"name\":\"FHI, federatie van technologiebranches\",\"url\":\"https:\/\/fhi.nl\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/fhi.nl\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/fhi.nl\/app\/uploads\/2024\/06\/3-e1722349014385.png\",\"contentUrl\":\"https:\/\/fhi.nl\/app\/uploads\/2024\/06\/3-e1722349014385.png\",\"width\":732,\"height\":136,\"caption\":\"FHI, federatie van technologiebranches\"},\"image\":{\"@id\":\"https:\/\/fhi.nl\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.linkedin.com\/company\/fhi-federation-of-technology-branches\",\"https:\/\/www.instagram.com\/fhi_nl\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Select the Ideal TouchGFX Object for GUI Builder Use \u2013 by Winstar","description":"TouchGFX is a graphic user interface (GUI) development framework provided by STMicroelectronics, designed for embedded system development targeting STM32 microcontroller (MCU) chips.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.nijkerk-ne.com\/how-to-select-the-ideal-touchgfx-object-for-gui-builder-use-by-winstar\/","og_locale":"en_GB","og_type":"article","og_title":"How to Select the Ideal TouchGFX Object for GUI Builder Use \u2013 by Winstar","og_description":"TouchGFX is a graphic user interface (GUI) development framework provided by STMicroelectronics, designed for embedded system development targeting STM32 microcontroller (MCU) chips.","og_url":"https:\/\/www.nijkerk-ne.com\/how-to-select-the-ideal-touchgfx-object-for-gui-builder-use-by-winstar\/","og_site_name":"FHI, federatie van technologiebranches","article_modified_time":"2025-12-18T12:17:57+00:00","og_image":[{"width":800,"height":600,"url":"https:\/\/fhi.nl\/app\/uploads\/2025\/12\/Fig-25-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/fhi.nl\/nieuws\/how-to-select-the-ideal-touchgfx-object-for-gui-builder-use-by-winstar\/","url":"https:\/\/www.nijkerk-ne.com\/how-to-select-the-ideal-touchgfx-object-for-gui-builder-use-by-winstar\/","name":"How to Select the Ideal TouchGFX Object for GUI Builder Use \u2013 by Winstar","isPartOf":{"@id":"https:\/\/fhi.nl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.nijkerk-ne.com\/how-to-select-the-ideal-touchgfx-object-for-gui-builder-use-by-winstar\/#primaryimage"},"image":{"@id":"https:\/\/www.nijkerk-ne.com\/how-to-select-the-ideal-touchgfx-object-for-gui-builder-use-by-winstar\/#primaryimage"},"thumbnailUrl":"https:\/\/fhi.nl\/app\/uploads\/2025\/12\/Fig-25-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg","datePublished":"2025-12-18T12:16:00+00:00","dateModified":"2025-12-18T12:17:57+00:00","description":"TouchGFX is a graphic user interface (GUI) development framework provided by STMicroelectronics, designed for embedded system development targeting STM32 microcontroller (MCU) chips.","breadcrumb":{"@id":"https:\/\/www.nijkerk-ne.com\/how-to-select-the-ideal-touchgfx-object-for-gui-builder-use-by-winstar\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.nijkerk-ne.com\/how-to-select-the-ideal-touchgfx-object-for-gui-builder-use-by-winstar\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.nijkerk-ne.com\/how-to-select-the-ideal-touchgfx-object-for-gui-builder-use-by-winstar\/#primaryimage","url":"https:\/\/fhi.nl\/app\/uploads\/2025\/12\/Fig-25-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg","contentUrl":"https:\/\/fhi.nl\/app\/uploads\/2025\/12\/Fig-25-How-to-Select-the-Ideal-TouchGFX-Object-for-GUI-Builder-Use-by-Winstar.jpg","width":800,"height":600},{"@type":"BreadcrumbList","@id":"https:\/\/www.nijkerk-ne.com\/how-to-select-the-ideal-touchgfx-object-for-gui-builder-use-by-winstar\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fhi.nl\/"},{"@type":"ListItem","position":2,"name":"Nieuws","item":"https:\/\/fhi.nl\/nieuws\/"},{"@type":"ListItem","position":3,"name":"How to Select the Ideal TouchGFX Object for GUI Builder Use \u2013 by Winstar"}]},{"@type":"WebSite","@id":"https:\/\/fhi.nl\/#website","url":"https:\/\/fhi.nl\/","name":"FHI, federation of technology industries","description":"Dutch trade association for technology industries","publisher":{"@id":"https:\/\/fhi.nl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fhi.nl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/fhi.nl\/#organization","name":"FHI, federation of technology industries","url":"https:\/\/fhi.nl\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/fhi.nl\/#\/schema\/logo\/image\/","url":"https:\/\/fhi.nl\/app\/uploads\/2024\/06\/3-e1722349014385.png","contentUrl":"https:\/\/fhi.nl\/app\/uploads\/2024\/06\/3-e1722349014385.png","width":732,"height":136,"caption":"FHI, federatie van technologiebranches"},"image":{"@id":"https:\/\/fhi.nl\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/company\/fhi-federation-of-technology-branches","https:\/\/www.instagram.com\/fhi_nl\/"]}]}},"_links":{"self":[{"href":"https:\/\/fhi.nl\/en\/wp-json\/wp\/v2\/news\/76941","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fhi.nl\/en\/wp-json\/wp\/v2\/news"}],"about":[{"href":"https:\/\/fhi.nl\/en\/wp-json\/wp\/v2\/types\/news"}],"version-history":[{"count":0,"href":"https:\/\/fhi.nl\/en\/wp-json\/wp\/v2\/news\/76941\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fhi.nl\/en\/wp-json\/wp\/v2\/media\/76942"}],"wp:attachment":[{"href":"https:\/\/fhi.nl\/en\/wp-json\/wp\/v2\/media?parent=76941"}],"wp:term":[{"taxonomy":"branches","embeddable":true,"href":"https:\/\/fhi.nl\/en\/wp-json\/wp\/v2\/branches?post=76941"},{"taxonomy":"events","embeddable":true,"href":"https:\/\/fhi.nl\/en\/wp-json\/wp\/v2\/events?post=76941"},{"taxonomy":"secretariat","embeddable":true,"href":"https:\/\/fhi.nl\/en\/wp-json\/wp\/v2\/secretariat?post=76941"},{"taxonomy":"categories","embeddable":true,"href":"https:\/\/fhi.nl\/en\/wp-json\/wp\/v2\/categories?post=76941"},{"taxonomy":"themes","embeddable":true,"href":"https:\/\/fhi.nl\/en\/wp-json\/wp\/v2\/themes_tax?post=76941"},{"taxonomy":"content_types","embeddable":true,"href":"https:\/\/fhi.nl\/en\/wp-json\/wp\/v2\/content_types?post=76941"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}