c24fb83460
pressing
75 lines
1.9 KiB
C++
75 lines
1.9 KiB
C++
/*
|
||
* Copyright (C) 2019~2022 偕臧 All rights reserved.
|
||
*
|
||
* Author: XMuli xmulitech@gmail.com
|
||
*
|
||
* GitHub: https://github.com/XMuli
|
||
* Blog: https://ifmet.cn
|
||
* CSDN: https://blog.csdn.net/qq_33154343
|
||
*/
|
||
#include "widget.h"
|
||
|
||
#include <QApplication>
|
||
#include <QDesktopWidget>
|
||
#include <QKeyEvent>
|
||
#include <QRect>
|
||
#include <QDebug>
|
||
#include <QPainter>
|
||
|
||
Widget::Widget(QWidget *parent)
|
||
: QWidget(parent)
|
||
{
|
||
setFocusPolicy(Qt::StrongFocus);
|
||
|
||
QDesktopWidget *desktop = QApplication::desktop(); // 获取桌面的窗体对象
|
||
const QRect geom = desktop->geometry(); // 多屏的矩形取并集
|
||
setWindowFlags(Qt::FramelessWindowHint /*| Qt::WindowStaysOnTopHint */| windowFlags()); // 去掉标题栏 + 置顶
|
||
|
||
// setAttribute(Qt::WA_ShowWithoutActivating,true);
|
||
// setFocusPolicy(Qt::StrongFocus);
|
||
// setFixedSize(QSize(geom.size().width() / 4, geom.size().height()));
|
||
setFixedSize(QSize(512, geom.size().height()));
|
||
setMouseTracking(true);
|
||
}
|
||
|
||
Widget &Widget::instance()
|
||
{
|
||
static Widget m_instance;
|
||
return m_instance;
|
||
}
|
||
|
||
void Widget::getScrnShots()
|
||
{
|
||
// QWidget::setFocus();
|
||
show();
|
||
}
|
||
|
||
Widget::~Widget()
|
||
{
|
||
}
|
||
|
||
void Widget::keyPressEvent(QKeyEvent *event)
|
||
{
|
||
if (event->key() == Qt::Key_Escape) {
|
||
qDebug() << "Key_Escape";
|
||
hide();
|
||
//close(); // 销毁会有问题,已经排查:1. tray 有关,改用 qpushbutton 和 close即可; 2.单例有关,该市建议修改为 new 指针的比较合适
|
||
} else if (event->key() == Qt::Key_A) {
|
||
qDebug() << "Key_A";
|
||
}
|
||
}
|
||
|
||
void Widget::mouseMoveEvent(QMouseEvent *event)
|
||
{
|
||
m_pos = event->globalPos();
|
||
|
||
update();
|
||
}
|
||
|
||
void Widget::paintEvent(QPaintEvent *event)
|
||
{
|
||
QPainter pa(this);
|
||
pa.drawText(100, 200, QString("m_pos(%1, %2)").arg(m_pos.x()).arg(m_pos.y()));
|
||
}
|
||
|