//關鍵部分代碼如下
//設置異形窗體 //setWindowOpacity(0.5);//設置窗體透明度 0完全透明,1完全不透明 this->setWindowFlag(Qt::FramelessWindowHint);//無邊框,隱藏標題欄,但工具欄,狀態欄還在 ui->centralWidget->setStyleSheet(QString("#centralWidget{background-image: url(:/Image/image/mask1.png); " "background-repeat: no-repeat;}")); this->setAttribute(Qt::WA_TranslucentBackground); this->resize(QPixmap(":/Image/image/mask1.png").size());//顯示窗口跟圖像大小一致 //異形按鈕 QPixmap btnImg; btnImg.load(":/Image/image/up.png"); ui->btn_up->resize(btnImg.size()); ui->btn_up->setMask(btnImg.mask()); ui->btn_up->setStyleSheet("background: transparent;background-image: url(:/Image/image/up.png);");
設置Frameless,使用透明圖像作為圖像掩碼,后面再處理下事件。效果如下: