Ventana sin marco y transparente qt5

Soy bastante nuevo en qt y c ++ y he encontrado un problema que parece que no puedo resolver. Estoy deseando abrir una ventana sin marco y transparente cuando hago clic en un botón en la interfaz de usuario principal. Tengo el código funcionando para abrir una nueva ventana cuando presiono un botón en la interfaz de usuario principal, pero parece que no puedo hacer que la parte transparente y sin marco funcione.

Aquí están los códigos fuente del pequeño programa que escribí para aprender esto.

main.cpp

#include "learnwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    LearnWindow w;
    w.show();

    return a.exec();
}

Aquí está el LearnWindow.h

#ifndef LEARNWINDOW_H
#define LEARNWINDOW_H

#include <QMainWindow>
#include <transwindow.h>

namespace Ui {
class LearnWindow;
}

class LearnWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit LearnWindow(QWidget *parent = 0);
    ~LearnWindow();

private slots:
    void on_pushButton_clicked();

private:
    Ui::LearnWindow *ui;
    TransWindow *winTrans;

public slots:
    void openTrans();
};

#endif // LEARNWINDOW_H

Aquí está learnwindow.cpp

#include "learnwindow.h"
#include "ui_learnwindow.h"

LearnWindow::LearnWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::LearnWindow)
{
    ui->setupUi(this);
}

LearnWindow::~LearnWindow()
{
    delete ui;
}

void LearnWindow::openTrans()
{
    winTrans = new TransWindow (this);
    //winTrans->setWindowTitle("NewWin");
   // winTrans->setWindowFlags(Qt::FramelessWindowHint | Qt::X11BypassWindowManagerHint);
    //winTrans->setAttribute(Qt::WA_TranslucentBackground,true);
    //winTrans->setAutoFillBackground(false);
    //winTrans->setStyleSheet("background:transparent;");
    winTrans->show();
}

void LearnWindow::on_pushButton_clicked()
{
    openTrans();
}

Aquí está el transwindow.h

#ifndef TRANSWINDOW_H
#define TRANSWINDOW_H

#include <QDialog>

namespace Ui {
class TransWindow;
}

class TransWindow : public QDialog
{
    Q_OBJECT

public:
    explicit TransWindow(QWidget *parent = 0);

    //setWindowFlags(windowFlags()| Qt::FramelessWindowHint);

    ~TransWindow();

private:
    Ui::TransWindow *ui;
};

#endif // TRANSWINDOW_H

Y aquí está transwindow.cpp

#include "transwindow.h"
#include "ui_transwindow.h"

TransWindow::TransWindow(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::TransWindow)
{
    //setWindowTitle("NewWin");
    //setWindowFlags(Qt::FramelessWindowHint);
    //setAttribute(Qt::WA_TranslucentBackground,true);
    ui->setupUi(this);
}

TransWindow::~TransWindow()
{
    delete ui;
}

En los diferentes códigos fuente verás líneas comentadas que son las diferentes cosas que he probado. En su mayor parte, el problema es que si anulo los comentarios de cualquiera de las líneas que intentan establecer "Qt :: FramlessWindowHint", el programa se ejecuta normalmente pero nunca abre una nueva ventana cuando hago clic en el botón en la interfaz de usuario principal.

Si elimino el comentario de cualquiera de las líneas donde configuro "Qt :: WA_TranslucentBackground", la nueva ventana se abrirá cuando se presione el botón en la interfaz de usuario principal, pero el fondo de la nueva ventana es negro, no transparente.

Otra información que puede ser pertinente: linux: ubunto 12.04 qt 5.0.2 (64 bits) qt creator 2.7.1

Respuestas a la pregunta(1)

Su respuesta a la pregunta