Qt创建置顶、悬浮容器并实现拖动通用代码
Qt创建置顶、悬浮容器并实现拖动效果通用代码:
SmallSuspendWindow::SmallSuspendWindow(QWidget *parent,Qt::WFlags f)
{
this->setWindowFlags(Qt::WindowStaysOnTopHint|Qt::CustomizeWindowHint|Qt::Tool);
this->setFixedSize(50,50);
this->setAcceptDrops(true);
this->setBackgroundRole(QPalette::Shadow);
}
void SmallSuspendWindow::paintEvent(QPaintEvent *event)
{
QStylePainter painter(this);
this->pixmap = QPixmap(tr(":/images/errormessages.png"));
painter.drawPixmap(0,0,this->pixmap);
}
/***************
desktop DragEvent
*******************/
void SmallSuspendWindow::mousePressEvent(QMouseEvent *event)
{
if(event->button()==Qt::LeftButton){
this->last = event->globalPos();
this->pos0 = event->globalPos()-event->pos();
}
}
void SmallSuspendWindow::mouseMoveEvent(QMouseEvent *event)
{
if(event->buttons()!=Qt::LeftButton) return;
QPoint movePos = this->pos0 + event->globalPos() - this->last;
this->move(movePos);
}
void SmallSuspendWindow::dragEnterEvent(QDragEnterEvent *event)
{
event->acceptProposedAction();
}
void SmallSuspendWindow::dropEvent(QDropEvent *event)
{
const QMimeData *mimeData = event->mimeData();
if(mimeData->hasUrls()) {
QList<QUrl> urlList = mimeData->urls();
QString text;
if(urlList.size()>0) {
QString urlString = urlList.at(0).toString();
qDebug()<<qPrintable(QString("urlString:%1").arg(urlString));
}
}
event->acceptProposedAction();
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
![扫码二维码加入Web技术交流群](/public/img/jiaqun_03.jpg)
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论