如何从终端控制图形程序?

莎拉

我正在尝试从终端控制Inkscape程序;例如,我想从终端在Inkscape中打开“文件”菜单,“编辑”菜单或“扩展”菜单,而无需从程序本身单击菜单。

我进行了很多搜索,但找不到我的问题的答案。如何从终端控制图形程序?

西尔文·皮诺(Sylvain Pineau)

我非常确定ldtp可以帮助您自动化Inkscape GUI。首先打开一个终端并安装python绑定:

sudo apt-get install python-ldtp

然后启动python解释器:

$ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from ldtp import *
>>> launchapp('inkscape')
25362
>>> GTK Accessibility Module initialized
>>> selectmenuitem('*Inkscape', 'mnuExtensions')

或使用以下代码段创建专用脚本:

#!/usr/bin/env python2

from ldtp import *
import time

launchapp('inkscape')
waittillguiexist('*-Inkscape')
selectmenuitem('*-Inkscape', 'mnuExtensions')
time.sleep(2)
selectmenuitem('*-Inkscape', 'mnuEdit')
time.sleep(2)
selectmenuitem('*-Inkscape', 'mnuFile')
time.sleep(2)
selectmenuitem('*-Inkscape', 'mnuQuit')
waittillguinotexist('*-Inkscape')

由于ldtpeditor不推荐使用所有GUI组件名称,因此有点困难(请参见freedesktop页面freedesktop-ldtp-dev邮件列表上的该线程)。

识别用于使应用程序自动化的控件所要做的最好的工作就是依靠getobjectlist)('<window name>')

示例(设置“ Restack Horizo​​ntal”点和实时预览):

在此处输入图片说明

$ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from ldtp import *
>>> launchapp('inkscape')
11413
>>> GTK Accessibility Module initialized

>>> selectmenuitem('*Inkscape', 'Restack...')
1
>>> getobjectlist('Restack')
['dlgRestack', 'flr8', 'flr9', 'flr4', 'flr5', 'lblHorizontalPoint', 'flr7', 'flr0',
'flr1', 'flr2', 'flr3', 'lblVerticalPoint', 'mnuBottomtoTop(90)', 'mnuTop', 'spr1', 
'mnu8', 'flr11', 'mnu0', 'cboLefttoRight(0)', 'mnuRight', 'mnuRadialInward', 
'mnuMiddle1', 'mnu12', 'lblLivepreview', 'cboTop', 'flr6', 'mnuLefttoRight(0)', 
'btnApply', 'lblAngle', 'chk0', 'mnuRighttoLeft(180)', 'mnuRadialOutward', 'sbtn0', 
'mnuArbitraryAngle', 'lblRestackDirection', 'mnuLeft', 'btnClose', 'mnuMiddle', 
'mnuBottom', 'flr12', 'flr10', 'spr0', 'mnuToptoBottom(270)', 'cboMiddle']
>>> click('dlgRestack', 'mnuMiddle1')
1
>>> click('dlgRestack', 'mnuMiddle')
1
>>> click('dlgRestack', 'chk0')
1
>>> click('dlgRestack', 'btnApply')
1
>>> click('dlgRestack', 'chk0')
1
>>> click('dlgRestack', 'btnApply') 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何控制图形显示的时间?

来自分类Dev

如何控制图形中的子图位置

来自分类Dev

如何使用C ++程序中的gnuplot绘制图形

来自分类Dev

图形前端如何控制守护程序?

来自分类Dev

如何在plotly-dash应用程序内绘制图形

来自分类Dev

文件上传后如何在闪亮的应用程序中绘制图形

来自分类Dev

如何控制图片的大小

来自分类Dev

如何控制图像的亮度?

来自分类Dev

如何使用Boost C ++复制图形?

来自分类Dev

如何使用Boost C ++复制图形?

来自分类Dev

在Rstudio演示文稿中控制图形的大小

来自分类Dev

图形工具:如何访问复制图形的属性

来自分类Dev

如何通过ssh(cmus)控制现有的终端程序

来自分类Dev

如何从终端输出python图形?

来自分类Dev

在WPF应用程序中绘制图形

来自分类Dev

如何使用Matplotlib在Spyder中绘制图形?

来自分类Dev

如何在Matlab中绘制图形的背景?

来自分类Dev

如何修复我的python代码以绘制图形?

来自分类Dev

使用CubicSpline函数时如何绘制图形

来自分类Dev

如何通过两个循环绘制图形

来自分类Dev

从类“ nb”绘制图形-如何更改点颜色?

来自分类Dev

如何在python中针对索引绘制图形

来自分类Dev

在gnuplot中绘制图形时如何跳过COLUMN

来自分类Dev

如何用不同大小的节点绘制图形

来自分类Dev

如何对数据进行分类并绘制图形

来自分类Dev

我如何并排绘制图形以进行比较?

来自分类Dev

如何从大型数组中绘制图形?

来自分类Dev

如何在单个子图中绘制图形列表?

来自分类Dev

如何在R中使用ggplot绘制图形