Прозрачный фон окна/виджета

вопросы по созданию программ с использованием возможностей библиотеки PHPQt5

Moderator: ArtMares

rinart73
User avatar
 
Posts: 36
Skype: art7emw
Пробовал разные способы из гугла, чтобы сделать фон окна прозрачным. Не работают.
Прошу кинуть подсказку.
Почетный страдалец фигней
Пилю load_ui_file :good2:

WxMaper
User avatar
Администратор
 
Posts: 92
Code:
class MainWindow extends QWidget {
// или extends QMainWindow
// или любой другой виджет вообще, хоть QLabel, хоть QPushButton...

    private $widget;

    public function __construct() {
        parent::__construct();
        
        // полностью прозрачное и "безтельное" окно, без рамок
        // (некликабельное, может быть растянуто на весь экран,
        // но другие элементы рабочего стола перекрывать не будет)
        $this->setAttribute(Qt::WA_TranslucentBackground); 
        $this->setWindowFlags(Qt::WindowStaysOnTopHint // всегда сверху
                              | Qt::FramelessWindowHint // без рамки
                             );

        if( false ) { // защита от дурака :)
            // тоже самое без отображения на панели задач
            // (закрыть можно либо через диспетчер задач,
            // либо вызвав каким-то событием  qApp::quit();
            $this->setAttribute(Qt::WA_TranslucentBackground);
            $this->windowFlags = Qt::WindowStaysOnTopHint 
                                 | Qt::FramelessWindowHint 
                                 | Qt::Tool; // не показывать в пуске
        }

        // так тоже можно:
        $this->widget = new QWidget;
        $this->setAttribute(Qt::WA_TranslucentBackground);
        $this->setWindowFlags(Qt::WindowStaysOnTopHint
                              | Qt::FramelessWindowHint 
                             );
    }
}

$mainWindow = new MainWindow;
$mainWindow->show();

qApp::exec();
-


Вернуться в Вопрошайка

Who is online
Users browsing this forum: Semrush [Bot] and 1 guest