Xlib 기능으로 Qt 윈도우의 속성을 수정하고 싶습니다.Qt 내에서 Xlib 사용
QX11Info를 사용하여 디스플레이를 가져오고 QWidget :: winId를 사용하여 창을 가져 왔습니다.
Display *display = QX11Info::display();
int window = QWidget::winId();
XMoveResizeWindow(display, window, 100, 100, 400, 400);
하지만 작동하지 않았습니다. 아마도 윈도우 QWidget::winId()
반환 응용 프로그램의 주요 하나가 아니라고 생각. 그래서 부모를 수정하여 올바른 창인지 확인하려고했습니다.
Display *display = QX11Info::display();
int window = QWidget::winId();
unsigned int nbChildren;
Window root,parent,*children;
XQueryTree(display, window, &root, &parent, &children, &nbChildren);
XMoveResizeWindow(display, parent, 100, 100, 400, 400);
하지만 작동하지 않았습니다. 두 예제 모두 XStoreName(display, window, "test Qt");
도 시도했습니다. 문제는 윈도우가 복원 할 수 없다는 것일 수 있습니다.
Qt를 사용하여 이런 종류의 작업을 직접 수행해야하지만 올바른 창 ID를 얻을 수 있는지 쉽게 확인할 수 있습니다. 내 목표는 세관 xlib 인턴 원자를 사용하여 창 속성을 변경하는 것입니다.
내가 뭘 잘못하고 있는지 알고 싶습니다.
감사합니다.
창 관리자를 실행하지 않고 다시 시도하십시오. 대부분의 WM은 모든 최상위 오버라이드 리디렉션 윈도우 이동/크기 조정 요청을 무시합니다. –