[英]Popup widget in qt
創建小部件,不要放置任何布局,將其父級設置為按鈕的父級(我們稱之為“主機”),將 window 標志設置為Qt::Window | Qt::FramelessWindowHint
Qt::Window | Qt::FramelessWindowHint
mPopup = new QWidget(this);
mPopup->setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
覆蓋主機的resizeEvent
和moveEvent
並使用按鈕的幾何形狀調整彈出窗口的幾何形狀。
void Host::adjustPopup() {
if (!mPopup->isVisible()) {
return;
}
QRect rect = mButton->geometry();
QPoint bottomLeft = this->mapToGlobal(rect.bottomLeft());
mPopup->setGeometry(QRect(bottomLeft, QSize(rect.width(),200)));
}
void Host::resizeEvent(QResizeEvent *event)
{
QWidget::resizeEvent(event);
adjustPopup();
}
void Host::moveEvent(QMoveEvent *event)
{
QWidget::moveEvent(event);
adjustPopup();
}
完整來源:按鈕彈出
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.