利用QML实现透明窗口[qt5]

来源:互联网 发布:python swf反编译 编辑:程序博客网 时间:2024/05/22 17:04

<p>mainwindow.h</p>
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QDeclarativeView>class MainWindow: public QDeclarativeView{    Q_OBJECTpublic:    MainWindow(QWidget * p=0);    ~MainWindow();};#endif

mainwindow.cpp

#include "mainwindow.h"MainWindow::MainWindow(QWidget *p)    :QDeclarativeView(p){    // transparent background    this->setAttribute(Qt::WA_TranslucentBackground);    this->setStyleSheet("background: transparent;");    // no window decorations    setWindowFlags(Qt::FramelessWindowHint);    // set QML    setSource(QUrl("main.qml"));}MainWindow::~MainWindow(){}


main.pro

QT += core gui widgets declarative TARGET = mainTEMPLATE = appSOURCES += main.cpp\            mainwindow.cppHEADERS += mainwindow.hOTHER_FILES += main.qml


main.qml

import QtQuick 1.0Rectangle{    id: root    width: 250    height: 250    // // completely transparent background    color: "#00FFFFFF"    border.color: "#F00"    border.width: 2    Rectangle{        id: ball        height: 50        width: 50        x: 100        color: "#990000FF"        radius: height / 2    }    SequentialAnimation{        running: true        loops: Animation.Infinite        NumberAnimation{            target: ball; property: "y"; to: root.height-ball.height;            duration:1000            easing.type: Easing.OutBounce        }        PauseAnimation{ duration: 1000}        NumberAnimation { target: ball; property: "y"; to: 0; duration: 700 }        PauseAnimation { duration: 1000 }    }}

main.cpp

//ref: http://stackoverflow.com/questions/7613125/how-to-make-a-transparent-window-with-qt-quick//#include <QtGui/QApplication>#include <QApplication>#include "mainwindow.h"int main(int argc, char *argv[]){    QApplication a(argc, argv);    MainWindow w;    w.show();    return a.exec();}


qt5 下编译不通过:How to make a transparent window with Qt Quick?



0 0