LINUX.ORG.RU

список окон QT

 


0

1

хочу получить список окно, но получается segmentatio fault.

подскажите что делать?

Перемещено shell-script из general



Последнее исправление: mixa (всего исправлений: 3)

Ответ на: комментарий от mixa
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <X11/Xlib.h>
#include <X11/XKBlib.h>
#include <X11/Xutil.h>

static Display * dpy;
static Window root;
char **name = NULL;
int param;
int main(int argc, char ** argv)
{
  dpy = XOpenDisplay (NULL);
  assert (dpy);
  root = DefaultRootWindow (dpy);
  assert (root);

  Window rw, pw, *cw;
  unsigned int nchildren, i;


  assert (XQueryTree (dpy, root, &rw, &pw, &cw, &nchildren));
  for (i = 0; i < nchildren; i++)
  {
        XFetchName(dpy,cw[i],name);
	//Xutf8TextPropertyToTextList(dpy,&text,&name,&param);
	printf("%s\n",name[i]);
  }

}
mixa
() автор топика

это вообще не так делается..

anonymous
()
Ответ на: комментарий от mixa

А где вы пишете name?

Он как был нулевой указатель, так и остался.

Qt тут ни при чем и такого функционала не предоставляет.

a1batross ★★★★★
()
Ответ на: комментарий от mixa
Syntax

Status XFetchName(display, w, window_name_return)
      Display *display;
      Window w;
      char **window_name_return;

Arguments
display 	Specifies the connection to the X server.
w 	Specifies the window.
window_name_return 	Returns the window name, which is a null-terminated string. 

window_name_return Returns the window name, which is a null-terminated string.

а у тебя

char **name = NULL;
...
        XFetchName(dpy,cw[i],name);
	//Xutf8TextPropertyToTextList(dpy,&text,&name,&param);
	printf("%s\n",name[i]);

matrixd
()
Последнее исправление: matrixd (всего исправлений: 1)

Судя по коду, вопрос не имеет отношения не только к QT, но и к Qt. Правильные теги - x11, xlib.

hobbit ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.