Làm thế nào để tạo Form trong suốt với Qt
Mình mới tự học về Qt được khoảng 2 ngày
Mình thử tạo một cái đồng hồ có nền trong suốt giống như hướng dẫn ở đây :
http://www.codeprogress.com/cpp/libraries/qt/showQtExample.php?index=191&key=QMainWindowTransparentBg
File mainwindow.cpp
[code]#include “mainwindow.h”
#include “ui_mainwindow.h”
#include
#include
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->setAttribute( Qt::WA_TranslucentBackground );
this->setWindowTitle(QString::fromUtf8("QMainWindow Transparent Background"));
this->resize(800, 250);
QLCDNumber *number = new QLCDNumber();
number->setFixedSize(800, 245);
number->setDigitCount(12);
number->display(QTime::currentTime().toString(QString("hh:mm:ss.zzz")));
this->setCentralWidget(number);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
}[/code]
Kết quả khi chay chương trình
Khi mình thử chạy chương trình thì nó ra một cái nền đen xì rất chi là xấu ,chứ không có trong suốt như trong demo hướng dẫn
Mình đã thử Google và làm thêm vài cách nữa nhưng vẫn cái nền đen xì đó !
Bạn nào biết lỗi này là gì không và hướng dẫn mình fix với
Thanks trước cả nhà
http://www.codeprogress.com/cpp/libraries/qt/showQtExample.php?key=QMainWindowPartialTransparent&index=145
[code]#include “mainwindow.h”
#include “ui_mainwindow.h”
#include
#include
#include
#include
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->setMask((new QBitmap(“E:/white.png”))->mask());
QPalette *palette = new QPalette();
palette->setBrush(QPalette::Background, QBrush(QPixmap(“E:/white.png”)));
this->setPalette(*palette);
this->setAttribute( Qt::WA_TranslucentBackground );
this->setWindowFlags(Qt::FramelessWindowHint);
this->setCentralWidget(lcd);
}
MainWindow::~MainWindow()
{
delete ui;
}
[/code]
Thử coppy lại code của u mà bị lỗi
Nhưng k quan trong lắm ! Tại tôi chỉ cần cái nền trong suốt là đc thui.Còn lại hum nào nghịch sau !
Thanks ha