1

我使用 C++/Qt 和 libxrandr 库编写了一个应用程序来更改显示器的分辨率和方向。但我必须扩展功能。请帮助我了解如何执行以下操作:

  1. 获取连接的监视器列表
  2. 改变它们每个的分辨率和方向
  3. 将它们彼此相对放置(例如,左侧的第一台显示器,右侧的第二台显示器)
4

1 回答 1

2

问题解决了

XRROutputInfo *output_first_info = XRRGetOutputInfo(dpy, sr, sr->outputs[X]);
XRRSetCrtcConfig(dpy, sr, output_first_info->crtc, CurrentTime, XM, YM, sr->modes[M].id, R, &sr->outputs[X], 1);

其中 X - 要配置的监视器数量 XM, YM - 虚拟屏幕中的坐标 M - 模式数量

获取已连接监视器的模式列表:

     

 

int jj = 0;
        for (int i = 0; i < sr->noutput; i++)
        {
            XRROutputInfo *output_info = XRRGetOutputInfo (dpy, sr, sr->outputs[i]);
            XRRCrtcInfo *crtc_info = XRRGetCrtcInfo(dpy, sr, output_info->crtc);

            for (int j = jj; j < output_info->nmode; j++)
            {
                qDebug() << output_info->name << sr->modes[j].name << j;

                jj++;
            }
        }
于 2013-03-06T08:25:59.787 回答