{"id":17703777,"url":"https://github.com/shen-po-heng/cpp_gui_lab","last_synced_at":"2026-04-28T00:31:24.657Z","repository":{"id":258885107,"uuid":"868254389","full_name":"Shen-po-heng/Cpp_GUI_lab","owner":"Shen-po-heng","description":"This repository is to practice GUI implementation of c++","archived":false,"fork":false,"pushed_at":"2024-10-27T17:04:26.000Z","size":12821,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-31T04:18:24.404Z","etag":null,"topics":["calculator-application","cpp","cpp-programming","gui","qt6","qtcreator","qtdesigner"],"latest_commit_sha":null,"homepage":"","language":"CMake","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Shen-po-heng.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-05T22:01:25.000Z","updated_at":"2024-10-28T09:22:07.000Z","dependencies_parsed_at":"2025-02-06T08:45:01.025Z","dependency_job_id":"2d8ff35b-cf36-4fdd-b6d4-1202a55dc0ab","html_url":"https://github.com/Shen-po-heng/Cpp_GUI_lab","commit_stats":null,"previous_names":["shen-po-heng/cpp_gui_lab"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Shen-po-heng/Cpp_GUI_lab","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shen-po-heng%2FCpp_GUI_lab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shen-po-heng%2FCpp_GUI_lab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shen-po-heng%2FCpp_GUI_lab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shen-po-heng%2FCpp_GUI_lab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Shen-po-heng","download_url":"https://codeload.github.com/Shen-po-heng/Cpp_GUI_lab/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shen-po-heng%2FCpp_GUI_lab/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262003914,"owners_count":23243345,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["calculator-application","cpp","cpp-programming","gui","qt6","qtcreator","qtdesigner"],"created_at":"2024-10-24T21:05:54.826Z","updated_at":"2026-04-28T00:31:24.624Z","avatar_url":"https://github.com/Shen-po-heng.png","language":"CMake","funding_links":[],"categories":[],"sub_categories":[],"readme":"# C++ GUI lab\n![Static Badge](https://img.shields.io/badge/Qt%20Version-QT6-green)\n\nThis repository is to practice GUI implementation of c++, so maybe each folder is not a big project, just a small scale project for practice. If you think it's helpful for you, you can just download them and welcome to leave any comments to suggest (or criticize) or ask me questions. I will answer you when I am available. \n\n## Project 1 : Basic Calculator\n![Static Badge](https://img.shields.io/badge/build-passing-brightgreen) \u0026nbsp;\u0026nbsp; ![Static Badge](https://img.shields.io/badge/test-passing-brightgreen) \n### Design Idea\nThe basic calculator is designed to perform arithmetic operations such as addition, subtraction, multiplication, and division, as well as advanced mathematical functions like square roots and factorials. It takes user input in a simple string format and evaluates the expression while ensuring correct operator precedence and error handling for invalid inputs. The user interface features buttons for digits and operators, allowing for a straightforward interaction.\n\n### Function\n1. **Basic Operations**: \n   - Addition (`+`)\n   - Subtraction (`-`)\n   - Multiplication (`*` or `x`)\n   - Division (`/`)\n2. **Advanced Operations**:\n   - Square root (`√`)\n   - Factorial (`!`)\n   - Power (`^`)\n3. **Error Handling**: \n   - Detects invalid expressions (e.g., missing operators, invalid characters).\n   - Provides user feedback when an error occurs.\n\n### Parameters\n1. **Input Parameters**:\n   - `QString expression`: A string containing the mathematical expression to be evaluated (e.g., `\"8 + 5\"` or `\"√ 4 + 3!\"`).\n\n2. **Output Parameters**:\n   - `double result`: The calculated result of the evaluated expression. If the expression is invalid, an error message is returned instead.\n\n3. **Auxiliary Parameters** (if applicable):\n   - `bool isError`: A flag to indicate whether an error occurred during evaluation, useful for handling error feedback.\n\n### Example Usage\n1. **Valid Input**: \n   - Input: `\"7 + 3 * 2\"`\n   - Output: `13`\n   \n2. **Invalid Input**: \n   - Input: `\"5 +\"`\n   - Output: `\"Invalid expression: Expected a number after operator at position 2\"`\n\n### Demo\n![Example video of BasicCalculator](/assets/Demo_calculator.gif)\n![Test of BasicCalculator](/assets/Test_calculator.jpg)\n\n## Project 2 :Timer\n![Static Badge](https://img.shields.io/badge/planning-working-red)\n### Design Idea\n\n### Function\n\n### Parameters\n\n### Demo\n\n## Project 3 : Personal To-Do list with Calender, memo\n![Static Badge](https://img.shields.io/badge/planning-working-red)\n### Design Idea\n\n### Function\n\n### Parameters\n\n### Demo\n\n\n---\n## Try Project : TextFinder\n![Static Badge](https://img.shields.io/badge/build-passing-brightgreen) \n\nThis is just a source code from [QT getStarted tutorial](https://doc.qt.io/qtcreator/creator-writing-program.html). \n(I just wanted to give it a try, and also shared here for lazy humans like me.)\n### Demo\n![Example video of TextFinder](/assets/Demo_textFinder.gif)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshen-po-heng%2Fcpp_gui_lab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshen-po-heng%2Fcpp_gui_lab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshen-po-heng%2Fcpp_gui_lab/lists"}