For the love of Artificial Intelligence, Python and QML
Project description
soloman
For the love of Artificial Intelligence, Python and QML
Installation
pip install soloman
Python Usage
Play audio
from soloman import Audio
aud = Audio()
aud.play('/path/to/music.mp3')
Qml Usage
example.py
import soloman
...
engine = QQmlApplicationEngine()
...
engine.load('example.qml')
Play audio
example.qml
Qt6
import QtQuick
...
import soloman
SAudio {
id: aud
}
Button {
text: "Play"
onClicked: aud.play('path/to/music.mp3')
}
Qt5
import QtQuick 2.15
...
import soloman 3.0
SAudio {
id: aud
}
Button {
text: "Play"
onClicked: aud.play('path/to/music.mp3')
}
Play videos
example.qml
Play a video file
Qt6
import QtQuick
...
import soloman
SVideo {
id: vid
}
Button {
text: "Play video"
onClicked: vid.play('path/to/video.mp4')
}
Qt5
import QtQuick 2.15
...
import soloman 3.0
SVideo {
id: vid
}
Button {
text: "Play video"
onClicked: vid.play('path/to/video.mp4')
}
Play stills
Option one
...
onClicked: vid.play('path/to/video_stills_01.jpg') # possibly the first image
...
Option two
...
onClicked: vid.play('path/to/') # make sure folder contains only stills
...
Show cv2 frame
example.py
import sys
import cv2
import threading
from time import sleep
from PyQt5.QtGui import QGuiApplication
from PyQt5.QtQml QQmlApplicationEngine
import soloman
app = QGuiApplication(sys.argv)
# Create a QML engine.
engine = QQmlApplicationEngine()
engine.quit.connect(app.quit)
engine.load(QUrl('example.qml'))
# Get SVideo
vid = soloman.Video(engine)
vid.get_SVideo('screen_01') # objectName goes here
# Capture
capture = cv2.VideoCapture(0) # capture camera
def start_capt():
# start thread
o_thread = threading.Thread(target=_start_capt)
o_thread.daemon = True
o_thread.start()
def _start_capt():
while True:
ret, frame = capture.read()
if not ret:
break
vid.show_frame(frame)
sleep(1/24)
# Call to start capturing
start_capt()
# Run the app
ret_value = app.exec_()
capture.release()
sys.exit(0)
example.qml
Qt6
import QtQuick
import QtQuick.Controls.Basic
import solomon
ApplicationWindow {
visible: true
width: 800
height: 500
SVideo {
objectName: "screen_01" // declare objectName to be used in python
}
}
Qt5
import QtQuick 2.15
import QtQuick.Controls 2.15
import solomon 3.0
ApplicationWindow {
visible: true
width: 800
height: 500
SVideo {
objectName: "screen_01" // declare objectName to be used in python
}
}
Wiki
The wiki can be located here
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
soloman-3.1.1.tar.gz
(15.0 kB
view details)
Built Distribution
soloman-3.1.1-py3-none-any.whl
(15.9 kB
view details)
File details
Details for the file soloman-3.1.1.tar.gz
.
File metadata
- Download URL: soloman-3.1.1.tar.gz
- Upload date:
- Size: 15.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/33.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d9ace5b4c7d6a01916ab8e798c5a4a215f82a5d178b40245191054bb8c23e590 |
|
MD5 | bf0bb9481d5aebef23db66cddf018f30 |
|
BLAKE2b-256 | 13b33cd404f88cf7a1a8d7faf33b1b9415e340ba072ffc618d1fc9f4553ce41f |
File details
Details for the file soloman-3.1.1-py3-none-any.whl
.
File metadata
- Download URL: soloman-3.1.1-py3-none-any.whl
- Upload date:
- Size: 15.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/33.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3373a9fce70b8dd45168f701e980c1af9974f14223d0d6412012de57c272650f |
|
MD5 | e3383bc4d19944bb35999522506f76cd |
|
BLAKE2b-256 | 135907500fa099dda365360dc1f9e48745980c9767c808c138da534e73c0de09 |