【发布时间】:2021-10-22 13:18:26
【问题描述】:
我发现this question相关,但没有直接回答我的问题,即:
如何在 C++ 中获得所有连接到 Linux 机器的显示器的组合分辨率? (所有显示器周围的矩形,以放置者为准)
我对 C++ 知之甚少,但我已经编写了这段代码,不确定它是否正确地完成了这项工作,因为我没有多个显示器布局,我只是在编写一些必须考虑的东西所有连接的显示器。
我的代码摘录如下:
#include <X11/Xlib.h>
#include <iostream>
Display * my_display = XOpenDisplay(NULL);
Screen * my_screen = XDefaultScreenOfDisplay(my_display);
const int screen_width = my_screen->width;
const int screen_height = my_screen->height;
if (x_coord >= screen_width)
{
std::cerr
<< "X coord bigger than the screen width\n";
return 1;
}
if (y_coord >= screen_height)
{
std::cerr
<< "Y coord bigger than the screen height\n";
return 1;
}
谢谢。
【问题讨论】:
-
假设我有一台高清显示器和一台 4K 显示器,您如何定义它们的组合分辨率?
-
@n.1.8e9-where's-my-sharem。所有显示器周围的矩形,无论放置哪个(我引用我的问题)
-
这并没有提供明确的定义。
-
顺便说一下,“显示”、“屏幕”和“监视器”是 X11 世界中三个不同的实体。您获得的屏幕分辨率是由 xrandr 管理的所有显示器的组合分辨率。
标签: c++ linux x11 screen-resolution