You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:Linux Mint 19.3环境下QT GUI无法获取选中文本

解决Linux Mint 19.3下无法提取QT窗口选中文本的问题

嘿,我来帮你搞定这个头疼的问题!你用xsel读不到QT程序里的选中内容,其实核心原因是X11系统里的两个剪贴板缓冲区在搞鬼——QT程序默认会把选中的文本放到CLIPBOARD(剪贴板),而xsel不加参数的话默认读取的是PRIMARY(主选择),这俩可不是一回事儿!

给你几个实用的解决方案:

1. 直接读取CLIPBOARD缓冲区

修改你的Python代码,指定读取剪贴板内容:

import os
# 加上-b参数读取CLIPBOARD缓冲区
selected_text = os.popen('xsel -b').read()
print(selected_text)

先试试手动复制QT窗口里的文本(Ctrl+C),再运行这段代码,应该就能拿到内容了。

2. 验证xsel是否正常工作

先在终端里直接执行命令测试:
xsel -b
如果能输出你刚才复制的QT文本,说明代码修改后肯定没问题。要是提示命令不存在,先安装xsel:
sudo apt install xsel

3. 读取未复制的选中文本(鼠标选中但没Ctrl+C)

有些QT程序不会自动把选中内容同步到PRIMARY缓冲区,这时候可以试试用xclip工具,它的兼容性更好:
先安装xclip:
sudo apt install xclip
然后修改代码:

import os
# 读取剪贴板内容
selected_text = os.popen('xclip -selection clipboard -o').read()
# 或者如果要读取主选择(比如终端里鼠标选中的文本)用这个:
# selected_text = os.popen('xclip -selection primary -o').read()
print(selected_text)

如果还是不行,检查下QT程序的设置,有些软件里有“选中即复制”的选项,打开它就能让选中内容同步到PRIMARY缓冲区,这样直接用xsel不加参数也能读到了。

内容的提问来源于stack exchange,提问作者Felipe Mello Fonseca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 18:27:39