- 论坛徽章:
- 0
|
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();
} |
|