Сначала я создаю контейнер виджетов, используя QWidget :: createWindowContainer (QQuickView, QWidget).
Во-вторых, я делаю прозрачное окно x11. (XCreateWindow)
Когда я создаю окно x11, родительским объектом которого является DefaultRootwindow, окно x11 получается совершенно прозрачным.
Однако, когда я устанавливаю это окно x11 на QWidet, прозрачность не работает.
Цвет фона - черный.
Кроме того, когда я устанавливаю цвет фона окна x11 на другой цвет, например красный, розовый, желтый, он получается идеально, но непрозрачность не работает.
Я думаю, что когда я устанавливаю родителя окна x11 в Qwidget,
только прозрачная область, заполненная черным пикселем.
Я хочу сделать прозрачность окна x11 и видеть под областью содержимого QWidget.
Вы знаете, как я могу решить эту проблему?
Почему область прозрачности x11 должна быть областью черного пикселя? Что это за слой?
[пример кода]
ParentWidget = QWidget::createWindowContainer(QWindow window, QWidget parent);
p_window = window->winId();
XColor color, color_exact;
Colormap colormap;
unsigned int transparent;
colormap = DefaultColormap(xdisplay, 0);
XAllocNamedColor(xdisplay, colormap, "transparent", &color, &color_exact);
transparent = color.pixel;
XVisualInfo vInfo;
XSetWindowAttributes attr;
XMatchVisualInfo(xdisplay, DefaultScreen(xdisplay), 32, TrueColor, &vInfo);
attr.colormap = XCreateColormap(xdisplay, p_window, vInfo.visual, AllocNone);
attr.border_pixel = transparent;
attr.background_pixel = transparent;
XMainWindow = XCreateWindow(xdisplay, p_window, x, y, width, height, 0, vInfo.depth, InputOutput, vInfo.visual, CWColormap | CWBorderPixel | CWBackPixel, &attr);