问题标签 [xlib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2081 浏览

python - python-opencv 网络摄像头 ["noneType"]

几周前,我尝试使用 python 和 opencv 移动鼠标指针......我没有时间去做,今天我偶然发现了一段代码,我的问题是我无法再用 opencv 打开我的网络摄像头......

我正在使用 ubuntu 10.04 ... /dev/video0 正在工作我可以做 luvcview -d /dev/video0

但是当我说 camera = highgui.cvCreateCaptureCamera(0) 并尝试 type(camera) 我得到 noneType ...

我已经 apt-get remove --purge python-opencv 并重新安装了它......但我无法让它工作......不知道几周前它有什么问题,现在......

这是使用 python opencv 和 Xlib 控制鼠标的代码...

不知道该怎么办了...希望有人遇到这个问题并修复...提前谢谢。

0 投票
1 回答
832 浏览

deadlock - xlib/ xcb 死锁或阻塞

我有一个使用 xlib 和 cairo 开发的程序。仅供参考,我确实在 cairo 和 xlib 之间混合调用,尽管我不确定这是否可能是错误的原因。在某些情况下,我会遇到死锁或阻塞。我有三个与 xlib 一起工作的线程。一个是主 UI 线程,它同时调用 xlib 和 cairo,另一个使用它来发送 XClientMessage,第三个调用一些 xlib 调用,如 XCopyArea,最后发送一个 XClientMessage(那些用于某些动画)。我在程序开始时调用了 InitThreads。我还使用 XLockDisplay 保护了所有 xlib 调用(cairo 调用也使用 XLockDisplay 保护)。我正在使用 ubuntu 10.10。堆栈跟踪是:

(gdb)
__kernel_vsyscall () 中的线程 1 0
来自 /lib/tls/i686/cmov/libc.so.6 的 poll () 中的 1
2 在 ?? () 来自 /usr/lib/libxcb.so.1
3 在 ?? () from /usr/lib/libxcb.so.1
4 in xcb_writev () from /usr/lib/libxcb.so.1
5 in _XSend () from /usr/lib/libX11.so.6
6 in _XEventsQueued ()从 /usr/lib/libX11.so.6
7 在 XPending () 从 /usr/lib/libX11.so.6
(gdb) 线程 6
0 在 __kernel_vsyscall ()
1 在 __llll_lock_wait () 从
/lib/tls/i686/ cmov/libpthread.so.0
2 in _L_lock_752 () from /lib/tls/i686/cmov/libpthread.so.0
3 in pthread_mutex_lock () from /lib/tls/i686/cmov/libpthread.so.0
4 in ? ? () 来自 /usr/lib/libX11.so.6
5 在 XLockDisplay () 来自 /usr/lib/libX11.so.6
(gdb) 线程 7
0 在 __kernel_vsyscall ()
1 在 __lll_lock_wait () 来自 /lib/tls/i686/cmov/libpthread.so.0
2 在 _L_lock_752 ( ) 从 /lib/tls/i686/cmov/libpthread.so.0
3 在 pthread_mutex_lock () 从 /lib/tls/i686/cmov/libpthread.so.0
4 在 ?? () 来自 /usr/lib/libX11.so.6
5 在 XLockDisplay () 来自 /usr/lib/libX11.so.6
其中线程 1 是主 ui 线程,当前在事件循环中调用 XPending(它已经调用了 XLockDisplay),thead 7 是仅发送 XClientMessage 的线程,线程 6 是对 XCopyArea 进行了一些调用的线程,现在大约调用 XSendMessage(它与线程 7 一起等待线程 1 完成)。但是线程 1 似乎永远不会从民意调查中返回。我不确定它是否相关(我绝不是 linux 或 libc 方面的专家),但我有另一个线程正在轮询中等待(它是 TCP/IP 网络通信的线程)(gdb)线程 2
0 在__kernel_vsyscall ()
1 in poll () from /lib/tls/i686/cmov/libc.so.6
有没有人遇到过类似的死锁/阻塞?这可能是 xcb 中的错误吗?是否值得尝试在没有 xcb 的情况下编译 xlib?谢谢

0 投票
1 回答
3390 浏览

c++ - Xlib:XGetWindowAttributes 总是返回 1x1?

我想要当前聚焦窗口的宽度和高度。窗口的选择就像一个魅力,而高度和宽度总是返回 1。

这不是“真正的”窗口,而是当前活动的组件(如文本框或按钮?)那么为什么它的大小是 1x1 呢?如果是这种情况,我如何获得包含此控件的应用程序的主窗口?意思是……有点像顶层窗口,除了根窗口之外的最顶层窗口。

PS:不知道是不是真的重要;我使用 Ubuntu 10.04 32 位和 64 位。

0 投票
3 回答
2625 浏览

xlib - 什么方法在Xserver中旋转屏幕

我想知道使用 xrandr 工具将屏幕旋转 90/180/270 度的功能代码/源文件?

xrandr -o 左 xrandr -o 右 xrandr -o 倒置 xrandr -o 正常

什么函数使用上述命令在 Xserver 中调用屏幕旋转?

问候,列文

0 投票
2 回答
860 浏览

c - 使用 Xlib 发现面板的大小

我正在编写一个将停靠栏放在屏幕右侧的应用程序,如下所示:

图片

我可以使用 保留屏幕侧面的空间_NET_WM_STRUT_PARTIAL,这样最大化的窗口就不会与停靠栏重叠。

在图像中,您可以看到有一个顶部面板。问题是码头将与面板重叠。有没有办法找出面板的大小,或者让面板缩小到码头的开放空间?

顺便说一句,我正在使用 Xlib。

0 投票
3 回答
17811 浏览

x11 - X11/Xlib 的全局热键

我的目标是让程序在后台休眠,但可以由用户通过一些“热键”激活。通过挖掘 Xlib 手册和 Xlib O'reilly 手册,我认为正确的方法是使用 XGrabKey。然而,我对这个过程的理解是不正确的,因为简单的概念证明是行不通的。

我的理解是,如果我用根窗口作为grab_window 调用XGrabKey,并且owner_events 为false,那么只要按下我的热键,事件就会只发送根窗口。如果我然后从根窗口中选择 KeyPress 事件,然后监听 X 事件,我应该在按下热键时得到一个按键事件。我在下面粘贴了一个最小的示例。

我期望的是,当程序运行时,无论哪个窗口有焦点,如果按下 Ctrl+Shift+K,我的程序应该输出“按下热键!” 在控制台中,然后终止。

此外,我的理解是,如果 XGrabKey 失败,默认错误处理程序将显示一条消息,因为它没有,我假设调用成功。

显然,我的理解在某种程度上存在缺陷。谁能指出我正确的方向?

0 投票
1 回答
5294 浏览

c++ - 如何将 XImage 保存为位图?


我正在尝试创建将捕获桌面视频(帧)的 JNI C++ 库。第一步是简单地制作桌面截图。代码是:

但是,如何将 img 保存为位图文件?因为目标库是 JNI - 它不能使用第三方库。(据我了解)。
请帮忙。
谢谢你。

0 投票
1 回答
1277 浏览

opengl - 如何使用 xlib 和 glx 创建具有透明背景的支持 OpenGL 的窗口

我想创建一个具有透明背景的窗口,然后使用 OpenGL 在其上渲染一些东西。我不想使用捕获窗口后面的任何内容然后绘制为背景的技巧 - 我想要真正的透明度(我正在运行合成管理器)。我没有使用任何 GUI 库(GTK、QT、...),只使用原始 xlib 和 glx。

有谁知道该怎么做?

0 投票
4 回答
1469 浏览

c++ - Books/resources on learning Xlib ("the Linux Petzold"?)

I have stubbornly decided to learn Xlib programming for Linux GUIs, just for fun & the gained experience. I'm young and have lots of time to read useless stuff. Nobody seems to want people to learn this, though, as everywhere I look, askers are being bombarded with suggestions of using a toolset instead - usually Qt or wxWidgets. This is kind of sad, if nobody learns Xlib, who will continue development of e.g. wxWidgets? I will learn wxWidgets too, though, when I feel comfortable with Xlib.

So - with that out of the way - my question is: Is there a recommended book (or other resources) for learning Xlib programming, preferably with C++, but C is OK too. Windows programming has its Petzold, I was wondering if Xlib had some sort of equivalent.

0 投票
0 回答
119 浏览

pygtk - gnome 窗口开关和密码字段

我为 Ubuntu 编写了一个小型键盘记录器,但我不希望它记录特定的窗口或密码字段(在所有窗口中)。所以我需要一些方法:

  1. 检测新窗口何时获得焦点(以便我可以在需要时停止日志记录)。
  2. 检测用户何时输入密码字段(再次,以便我可以停止记录)。

有任何想法吗?