{"id":15486002,"url":"https://github.com/deuteronomy-works/soloman","last_synced_at":"2025-04-22T17:21:30.670Z","repository":{"id":43386710,"uuid":"252294180","full_name":"deuteronomy-works/soloman","owner":"deuteronomy-works","description":"For the love of Artificial Intelligence, Python and QML","archived":false,"fork":false,"pushed_at":"2022-03-06T18:34:14.000Z","size":73426,"stargazers_count":4,"open_issues_count":11,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-19T09:19:59.889Z","etag":null,"topics":["artificial-intelligence","data-science","data-visualisation","image-recognition","machine-learning","opencv","python","qml"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/deuteronomy-works.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-04-01T21:49:05.000Z","updated_at":"2024-01-12T14:47:04.000Z","dependencies_parsed_at":"2022-09-19T10:10:33.828Z","dependency_job_id":null,"html_url":"https://github.com/deuteronomy-works/soloman","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deuteronomy-works%2Fsoloman","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deuteronomy-works%2Fsoloman/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deuteronomy-works%2Fsoloman/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deuteronomy-works%2Fsoloman/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deuteronomy-works","download_url":"https://codeload.github.com/deuteronomy-works/soloman/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250285743,"owners_count":21405299,"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":["artificial-intelligence","data-science","data-visualisation","image-recognition","machine-learning","opencv","python","qml"],"created_at":"2024-10-02T06:05:35.172Z","updated_at":"2025-04-22T17:21:30.642Z","avatar_url":"https://github.com/deuteronomy-works.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# soloman    [![Downloads](https://pepy.tech/badge/soloman/month)](https://pepy.tech/project/soloman)\nFor the love of Artificial Intelligence, Python and QML\n\n\n[refer to milestone](https://github.com/deuteronomy-works/soloman/milestone/12)\n\n\n\n## Installation\n    pip install soloman\n\n\n\n## Python Usage\n\n\n\n### Play audio\n```python\nfrom soloman import Audio\n\n\naud = Audio()\naud.play('/path/to/music.mp3')\n```\n\n## Qml Usage\nexample.py\n```python\nimport soloman\n...\nengine = QQmlApplicationEngine()\n...\nengine.load('example.qml')\n\n```\n\n### Play audio\n*example.qml*\n\n\n**Qt6**\n```qml\nimport QtQuick\n...\nimport soloman\n\nSAudio {\n    id: aud\n}\n\nButton {\n    text: \"Play\"\n    onClicked: aud.play('path/to/music.mp3')\n}\n\n```\n\n\n**Qt5**\n```qml\nimport QtQuick 2.15\n...\nimport soloman 3.0\n\nSAudio {\n    id: aud\n}\n\nButton {\n    text: \"Play\"\n    onClicked: aud.play('path/to/music.mp3')\n}\n\n```\n\n### Play videos\n*example.qml*\n\n#### Play a video file\n\n**Qt6**\n\n```qml\nimport QtQuick\n...\nimport soloman\n\nSVideo {\n    id: vid\n}\n\nButton {\n    text: \"Play video\"\n    onClicked: vid.play('path/to/video.mp4')\n}\n```\n\n**Qt5**\n\n```qml\nimport QtQuick 2.15\n...\nimport soloman 3.0\n\nSVideo {\n    id: vid\n}\n\nButton {\n    text: \"Play video\"\n    onClicked: vid.play('path/to/video.mp4')\n}\n```\n\n### Play stills\n\n##### Option one\n\n```qml\n...\n    onClicked: vid.play('path/to/video_stills_01.jpg') # possibly the first image\n...\n```\n\n##### Option two\n\n```qml\n...\n    onClicked: vid.play('path/to/') # make sure folder contains only stills\n...\n```\n\n\n\n\n### Show cv2 frame\n\nexample.py\n\n```python\nimport sys\nimport cv2\nimport threading\nfrom time import sleep\n\nfrom PyQt5.QtGui import QGuiApplication\nfrom PyQt5.QtQml QQmlApplicationEngine\nimport soloman\n\napp = QGuiApplication(sys.argv)\n\n# Create a QML engine.\nengine = QQmlApplicationEngine()\nengine.quit.connect(app.quit)\nengine.load(QUrl('example.qml'))\n\n# Get SVideo\nvid = soloman.Video(engine)\nvid.get_SVideo('screen_01')  # objectName goes here\n\n# Capture\ncapture = cv2.VideoCapture(0)  # capture camera\n\ndef start_capt():\n    # start thread\n    o_thread = threading.Thread(target=_start_capt)\n    o_thread.daemon = True\n    o_thread.start()\n\ndef _start_capt():\n\n    while True:\n\n        ret, frame = capture.read()\n\n        if not ret:\n            break\n\n        vid.show_frame(frame)\n        sleep(1/24)\n\n# Call to start capturing\nstart_capt()\n\n# Run the app\nret_value = app.exec_()\ncapture.release()\nsys.exit(0)\n```\n\nexample.qml\n\n**Qt6**\n\n```qml\nimport QtQuick\nimport QtQuick.Controls.Basic\nimport solomon\n\nApplicationWindow {\n\tvisible: true\n\twidth: 800\n\theight: 500\n\n    SVideo {\n        objectName: \"screen_01\"  // declare objectName to be used in python\n    }\n    \n}\n```\n\n**Qt5**\n\n```qml\nimport QtQuick 2.15\nimport QtQuick.Controls 2.15\nimport solomon 3.0\n\nApplicationWindow {\n\tvisible: true\n\twidth: 800\n\theight: 500\n\n    SVideo {\n        objectName: \"screen_01\"  // declare objectName to be used in python\n    }\n    \n}\n```\n\n\n\n\n\n## Wiki\n\nThe wiki can be located [here](https://github.com/deuteronomy-works/soloman/wiki)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeuteronomy-works%2Fsoloman","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeuteronomy-works%2Fsoloman","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeuteronomy-works%2Fsoloman/lists"}