1 Star 3 Fork 0

GXDE / GXDE 一言屏保

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
main.cpp 1.58 KB
一键复制 编辑 原始数据 按行查看 历史
gfdgd xi 提交于 2024-04-14 08:36 . 补充.h
#include "mainwindow.h"
#include "commandlinemanager.h"
#include <QApplication>
#include <QFile>
#include <QStringList>
#include <QWindow>
#include <QDebug>
#include <X11/Xlib.h>
int main(int argc, char *argv[])
{
auto envType = qEnvironmentVariable("XDG_SESSION_TYPE");
if (envType.contains("wayland")) {
qInfo() << QDateTime::currentDateTime().toString() << "notes:change wayland to xcb for QT_QPA_PLATFORM.";
qputenv("QT_QPA_PLATFORM", "xcb");
}
QApplication a(argc, argv);
CommandLineManager::instance()->process(a.arguments());
if (CommandLineManager::instance()->isSet("window-id")) {
QString windowId = CommandLineManager::instance()->value("window-id");
WId windowHwnd = WId(windowId.toULongLong());
QWindow *window = QWindow::fromWinId(windowHwnd);
if (!window) {
qDebug() << "Error:not found QWindow by window id:" << windowId;
return -1;
}
MainWindow w;
w.setProperty("_q_embedded_native_parent_handle", QVariant(windowHwnd));
w.winId();
w.windowHandle()->setParent(window);
Display *display = XOpenDisplay(nullptr);
if (!display) {
qWarning() << "can not connect xservice.";
return -1;
}
Window windowXID(windowHwnd);
XWindowAttributes attr;
XGetWindowAttributes(display, windowXID, &attr);
w.setGeometry(QRect(0, 0, attr.width, attr.height));
w.show();
return a.exec();
}
else {
MainWindow w;
w.show();
return a.exec();
}
}
C++
1
https://gitee.com/GXDE-OS/gxde-time-screensaver.git
git@gitee.com:GXDE-OS/gxde-time-screensaver.git
GXDE-OS
gxde-time-screensaver
GXDE 一言屏保
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891