1

C++/Qt と libxrandr ライブラリを使用して、モニターの解像度と向きを変更するアプリケーションを作成しました。しかし、機能を拡張する必要があります。次のことを行う方法を理解してください。

  1. 接続されているモニターのリストを取得する
  2. それぞれの解像度と向きを変更する
  3. それらを互いに向かい合わせて配置します (たとえば、最初のモニターを左に、右から 2 番目に)。
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 に答える