gstpreview01
This commit is contained in:
51
poc005/src/main.rs
Normal file
51
poc005/src/main.rs
Normal file
@@ -0,0 +1,51 @@
|
||||
// file: poc-qt/poc005/src/main.rs
|
||||
|
||||
mod bridge;
|
||||
|
||||
use cxx_qt_lib::{QGuiApplication, QQmlApplicationEngine, QString, QUrl};
|
||||
use std::env;
|
||||
use std::path::PathBuf;
|
||||
|
||||
fn main() {
|
||||
let mut app = QGuiApplication::new();
|
||||
let mut engine = QQmlApplicationEngine::new();
|
||||
|
||||
let current_dir = match env::current_dir() {
|
||||
Ok(v) => v,
|
||||
Err(err) => {
|
||||
eprintln!("failed to get current_dir: {err}");
|
||||
return;
|
||||
}
|
||||
};
|
||||
|
||||
let qml_path: PathBuf = current_dir.join("qml/main.qml");
|
||||
let qml_path = match qml_path.canonicalize() {
|
||||
Ok(v) => v,
|
||||
Err(err) => {
|
||||
eprintln!("failed to resolve qml/main.qml: {err}");
|
||||
return;
|
||||
}
|
||||
};
|
||||
|
||||
let qml_path_str = match qml_path.to_str() {
|
||||
Some(v) => v.to_string(),
|
||||
None => {
|
||||
eprintln!("qml path is not valid UTF-8: {}", qml_path.display());
|
||||
return;
|
||||
}
|
||||
};
|
||||
|
||||
println!("loading qml from: {}", qml_path_str);
|
||||
|
||||
if let Some(engine_ref) = engine.as_mut() {
|
||||
let url = QUrl::from_local_file(&QString::from(qml_path_str));
|
||||
engine_ref.load(&url);
|
||||
} else {
|
||||
eprintln!("failed to create QQmlApplicationEngine");
|
||||
return;
|
||||
}
|
||||
|
||||
if let Some(app_ref) = app.as_mut() {
|
||||
app_ref.exec();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user