Files
nekoray/ui/widget/FloatCheckBox.h
arm64v8a d769723b23 fix ui
2023-05-15 11:09:01 +09:00

34 lines
801 B
C++

#pragma once
#include <QEvent>
#include <QCheckBox>
class FloatCheckBox : public QCheckBox {
public:
QWidget *parent;
QWidget *window;
void refresh() {
setFixedSize(24, 24);
auto pos = parent->rect().topRight();
pos = parent->mapTo(window, pos);
pos.setX(pos.x() - 48); // ?
move(pos);
raise();
setVisible(parent->isVisible());
};
bool eventFilter(QObject *obj, QEvent *e) override {
if (obj != window || e->type() != QEvent::Resize) return false;
refresh();
return false;
};
explicit FloatCheckBox(QWidget *parent, QWidget *window) : QCheckBox(window) {
this->parent = parent;
this->window = window;
window->installEventFilter(this);
refresh();
};
};