TSI_Config/singlerelay.h
2025-04-17 20:33:26 +08:00

63 lines
1.4 KiB
C++

#ifndef SINGLERELAY_H
#define SINGLERELAY_H
#include <QDialog>
#include <QTextEdit>
#include <QMimeData>
#include <QDrag>
#include <QDragEnterEvent>
#include <QDebug>
namespace Ui {
class SingleRelay;
}
class SingleRelay : public QDialog {
Q_OBJECT
public:
explicit SingleRelay(QWidget *parent = nullptr);
~SingleRelay();
private slots:
void on_pushButton_cancel_clicked();
private:
Ui::SingleRelay *ui;
};
class DropTextEdit : public QTextEdit {
public:
DropTextEdit(QWidget *parent = nullptr) : QTextEdit(parent) {
setAcceptDrops(true);
setReadOnly(false); // 确保不是只读的
}
protected:
void dragEnterEvent(QDragEnterEvent *event) override {
qDebug() << "dragEnterEvent" << event->mimeData()->formats();
if (event->mimeData()->hasText()) {
event->acceptProposedAction();
} else {
event->ignore();
}
}
void dragMoveEvent(QDragMoveEvent *event) override {
if (event->mimeData()->hasText()) {
event->acceptProposedAction();
} else {
event->ignore();
}
}
void dropEvent(QDropEvent *event) override {
if (event->mimeData()->hasText()) {
insertPlainText(event->mimeData()->text());
event->acceptProposedAction();
} else {
event->ignore();
}
}
};
#endif // SINGLERELAY_H