История изменений
Исправление EXL, (текущая версия) :
Как создать маленькое полупрозрачное окно?
С Qt 5.15, технологией QtQuick и языком программирования QML очень просто.
Код в файле Overlay.qml
:
import QtQuick 2.15
import QtQuick.Window 2.15
Window {
color: Qt.rgba(0.0, 0.0, 0.0, 0.5)
id: window
visible: true
flags: Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint | Qt.WA_TranslucentBackground
Shortcut {
sequence: "Esc"
onActivated: window.close()
}
DragHandler {
id: resizeHandler
onActiveChanged: if (active) {
const p = resizeHandler.centroid.position
let e
if (p.x / width < 0.10) { e |= Qt.LeftEdge }
if (p.x / width > 0.90) { e |= Qt.RightEdge }
if (p.y / height < 0.10) { e |= Qt.TopEdge }
if (p.y / height > 0.90) { e |= Qt.BottomEdge }
if (e) { window.startSystemResize(e) } else { window.startSystemMove() }
}
}
}
Запуск программы:
QT_QPA_PLATFORM=xcb qmlscene Overlay.qml
✔ Простой строкой в консоли создать окно без всяких декораций.
✔ Полупрозрачное по заданному проценту.
✔ Поверх всех окон.
✔ Оно должно перетаскиваться мышой.
✔ Должен изменяться размер.
✔ Выглядит просто как полупрозрачный прямоугольник.
Цвет и полупрозрачность прямоугольника настраивается в функции Qt.rgba(0.0, 0.0, 0.0, 0.5)
, изначально установлена в 50%, первые три компоненты отвечают за цвет в RGB-формате. Таскать окно по экрану можно зажав кнопку мыши в центре окна и перемещая курсор, размер изменяется аналогичным образом но по краям прямоугольника. На клавишу Esc
задан выход. Выглядит всё следующим образом:
При желании можно оформить в отдельный исполняемый файл, но мне лень.
Исправление EXL, :
Как создать маленькое полупрозрачное окно?
С Qt 5.15, технологией QtQuick и языком программирования QML очень просто.
Код в файле Overlay.qml
:
import QtQuick 2.15
import QtQuick.Window 2.15
Window {
color: Qt.rgba(0.0, 0.0, 0.0, 0.5)
id: window
visible: true
flags: Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint | Qt.WA_TranslucentBackground
Shortcut {
sequence: "Esc"
onActivated: window.close()
}
DragHandler {
id: resizeHandler
onActiveChanged: if (active) {
const p = resizeHandler.centroid.position
let e
if (p.x / width < 0.10) { e |= Qt.LeftEdge }
if (p.x / width > 0.90) { e |= Qt.RightEdge }
if (p.y / height < 0.10) { e |= Qt.TopEdge }
if (p.y / height > 0.90) { e |= Qt.BottomEdge }
if (e) { window.startSystemResize(e) } else { window.startSystemMove() }
}
}
}
Запуск программы:
QT_QPA_PLATFORM=xcb qmlscene Rect.qml
✔ Простой строкой в консоли создать окно без всяких декораций.
✔ Полупрозрачное по заданному проценту.
✔ Поверх всех окон.
✔ Оно должно перетаскиваться мышой.
✔ Должен изменяться размер.
✔ Выглядит просто как полупрозрачный прямоугольник.
Цвет и полупрозрачность прямоугольника настраивается в функции Qt.rgba(0.0, 0.0, 0.0, 0.5)
, изначально установлена в 50%, первые три компоненты отвечают за цвет в RGB-формате. Таскать окно по экрану можно зажав кнопку мыши в центре окна и перемещая курсор, размер изменяется аналогичным образом но по краям прямоугольника. На клавишу Esc
задан выход. Выглядит всё следующим образом:
При желании можно оформить в отдельный исполняемый файл, но мне лень.
Исходная версия EXL, :
Как создать маленькое полупрозрачное окно?
С Qt 5.15, технологией QtQuick и языком программирования QML очень просто.
Код в файле Overlay.qml
:
import QtQuick 2.15
import QtQuick.Window 2.15
Window {
color: Qt.rgba(0.0, 0.0, 0.0, 0.5)
id: window
visible: true
flags: Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint | Qt.WA_TranslucentBackground
Shortcut {
sequence: "Esc"
onActivated: window.close()
}
DragHandler {
id: resizeHandler
onActiveChanged: if (active) {
const p = resizeHandler.centroid.position
let e
if (p.x / width < 0.10) { e |= Qt.LeftEdge }
if (p.x / width > 0.90) { e |= Qt.RightEdge }
if (p.y / height < 0.10) { e |= Qt.TopEdge }
if (p.y / height > 0.90) { e |= Qt.BottomEdge }
if (e) { window.startSystemResize(e) } else { window.startSystemMove() }
}
}
}
Запуск программы:
QT_QPA_PLATFORM=xcb qmlscene Rect.qml
✔ Простой строкой в консоли создать окно без всяких декораций.
✔ Полупрозрачное по заданному проценту.
✔ Поверх всех окон.
✔ Оно должно перетаскиваться мышой.
✔ Должен изменяться размер.
✔ Выглядит просто как полупрозрачный прямоугольник.
Цвет и полупрозрачность прямоугольника настраивается в функции Qt.rgba(0.0, 0.0, 0.0, 0.5)
, изначально установлена в 50%, первые три компоненты отвечают за цвет в RGB-формате. Таскать окно по экрану можно зажав кнопку мыши в центре окна и перемещая курсор, размер изменяется аналогичным образом но по краям прямоугольника. На клавишу Esc
задан выход. Выглядит всё следующим образом: