Tôi đã có cùng một vấn đề và tìm thấy cuộc thảo luận này.
Giải pháp của tôi cho X11 (trình quản lý cửa sổ hộp diêm) với qt5 như sau.
Tôi tùy chọn không tắt hoàn toàn màn hình mà thay vào đó là giảm độ sáng. Nhưng tôi vẫn muốn tránh việc nhấp chuột đầu tiên vào ứng dụng, vì màn hình mờ có phần tối và người dùng có thể không nhìn thấy những gì anh ta chạm vào.
Đầu tiên, tôi có một tập lệnh chờ sự kiện màn hình cảm ứng trong một thời gian nhất định (cùng thời gian với trình bảo vệ màn hình). Nếu thời gian trôi qua, độ sáng của màn hình sẽ giảm và một hình ảnh động được bắt đầu sẽ thoát ra nếu có ai đó nhấn vào màn hình cảm ứng. Nếu ứng dụng đó thoát, độ sáng được đặt thành giá trị ban đầu.
Thứ hai, ứng dụng hoạt hình là ứng dụng Qt5 QuickScript Qml.
Đầu tiên: tập lệnh chạy trong nền:
thiết bị = / dev / input / mouse0
thời gian chờ = $ screentime
trong khi [1]; làm
đọc -t $ thời gian chờ -n 1 <$ thiết bị
chưa đọc = $?
if [$ notread == 0]; sau đó
echo $ độ sáng> / sys / lớp / đèn nền / pwm-đèn nền / độ sáng
khác
echo không ai chạm vào màn hình, đặt màn hình tối hơn
echo $ dark> / sys / class / backlight / pwm-backlight / độ sáng
/ usr / bin / qt5 / qml /usr/local/bin/darkshow.qml
fi
làm xong
Thứ hai - tập lệnh darkshow.qml:
nhập QtQuick 2.2
nhập QtQuick.Window 2.1
Mục {
Cửa sổ {id: luồng gió chính
chiều rộng: 1024
chiều cao: 600
hiển thị: đúng
khả năng hiển thị: Window.Maximized
độ mờ đục: 0,5
phương thức: Qt.ApplicationModal
// nếu cần ở trên đầu: flags: Qt.SplashScreen
ChuộtArea {
onClicky: Qt.quito ();
neo.fill: cha mẹ
}
onActiveChanged: {
console.log ("onActiveChanged");
if (active == 0) Qt.quito ();
}
AnimatedSprite {
id: sprite
chiều rộng: 1024
chiều cao: 600
neoors.centerIn: cha mẹ
nguồn: "nội dung / awibuben_spritesheet.png"
khung hình: 5
khungSync: đúng
khung hình: 1024
khung cao: 600
}
}
}