问题标签 [zenity]
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.
linux - 带有 Zenity 的 Shell 脚本
使用 Zenity 可以添加按钮,更改字体,除了默认选项之外的任何其他内容?如果没有,还有另一个允许更多自定义的 sh 对话框?
python - What's the simplest cross-platform way to pop up graphical dialogs in Python?
I want the simplest possible way to pop up simple dialogs in Python scripts. Ideally, the solution would:
- Work on Windows, OS X, Gnome, KDE
- Look like a native dialog on any OS
- Require minimal code
To pop up a simple standard dialog should require only minimal code. Essentially you're just saying "Pop up a standard dialog with this text", or "Pop up a dialog with question x and feed response into variable y".
This is for simple scripts that would otherwise run on the command line. I don't want to know about GUI frameworks or have to set up code that says "start a GUI thread, register an event handler, configure some window properties, run a loop", etc. I don't want to have to set up a window or close the window afterward. I give it the text to put in the window and/or buttons and/or checkboxes, it returns what the user clicked on. Everything else should be taken care of automatically. For example:
for a standard dialog box with an "Ok" button, or
for a system tray popup balloon, or
and they press one of the two buttons, and then format
equals 'JPG'
, or
and after they type in the box and press Ok, response
now equals 'bananas.txt'
. No other code required. No ugly command line prompts for the poor user.
I've listed Zenity and EasyGUI as example answers, since they're similar to what I want, but not perfect.
shell - 我的 shell 脚本如何控制 zenity 窗口的位置?
当我zenity
的垃圾邮件过滤器守护程序过滤一组邮件时,我会发布一个简单的通知。目前,此消息发布在屏幕中间,显得突兀。我想把它贴到左上角。但是,zenity
它不-geometry
支持所有 X 应用程序的标准选项,其文档提供了用于控制窗口高度和宽度的选项,但不提供位置。
有没有办法控制zenity
发布窗口的 (x,y) 坐标?
如果没有,有没有办法通过修补 X 资源或窗口管理器(我正在使用fvwm
)来解决这个问题?
编辑:以下不适用于~/.fvwm2rc
(fvwm
版本 2.5.26):
正如手册页中所建议的,它们也不适用于-0 -0
丢弃的内容。(窗口标题为zenity --info
“信息”。)
有趣的zenity
是,忽略了我之前的窗口管理器指令,即默认情况下应手动放置窗口。
编辑:
在许多其他有趣的信息中,xprop(1)
报告了有关zenity
窗口的信息:
尽管这个明显令人鼓舞的报告,窗口实际上并没有张贴在位置 0,0 :-(
我知道Style
命令正在生效,因为我添加了!Borders
选项,果然zenity
窗口没有边框……但仍然在该死的屏幕中央!
bash - 如何使用 Zenity 在文件的每一行旁边显示带有复选框的文件内容
我试图为我拥有的文件列表提供视觉输出。我想要做的是在文件的每一行旁边显示一个复选框
我将以下 zenity 命令放在一起,但我的主要问题是我的文件列表可能很长。从下面的命令中,我通过 TRUE "" 或 FALSE "" 定义值
我的问题是我可以阅读内容并将它们放在以下命令(或类似的命令)中,而不必发出很长的命令
问候
保罗
git - git stderr 输出无法通过管道传输
我正在为带有 bash 和 zenity 的 git:// 链接编写一个图形 URI 处理程序,并且我正在使用 zenity 'text-info' 对话框来显示 git 在运行时使用 FIFO 管道的克隆输出。该脚本大约有 90 行长,所以我不会在这里发布它,但这里是最重要的几行:
我使用 FIFO 而不是直接管道来允许它们异步运行并允许在 zenity 窗口关闭时杀死 git。
问题是,从 git 的输出中出现的唯一一行是第一行:
带有计数对象等的其他行不显示或显示在终端上。
当前原因
目前关于为什么这不起作用的共识似乎cat
是非阻塞并在第一行之后退出,仅将其传递给 zenity 而不是其余的。我的目标是强制阻止阅读,并让 zenity 的文本信息对话框逐步显示所有输出。
git
在 stderr 上输出进度消息(除了“初始化”消息之外的任何内容),但是当我尝试将 stderr 传输到文件或与 stdout 合并时,消息消失了。
修复尝试 1
我尝试用 C 语言编写 cat 函数的两个阻塞版本,bread 和 bwrite,如下所示:
它们工作得很好,因为它们会阻塞并且不会在 EOF 上退出,但它还没有完全解决问题。目前,使用其中一个、另一个或两者在理论上有效,但在实践中,zenity 现在根本没有显示任何东西。
修复尝试 2
@mvds 建议使用常规文件,结合tail -f
而不是cat
,可以做到这一点。对如此简单的解决方案感到惊讶(谢谢!)我试过了,但不幸的是,只有第一行出现在 zenity 中,没有别的。
修复尝试 3
在做了一些 strace'ing 并检查了 git 的源代码之后,我意识到 git 在 stderr 上输出了它的所有进度信息(任何超出“初始化”消息的内容),事实上这是第一行,我假设这是因为 cat在 EOF 早期退出是一个巧合/错误的假设(git 直到程序结束才 EOF)。
情况似乎变得简单多了,因为我不应该对原始代码进行任何更改(在问题的开头),它应该可以工作。然而,奇怪的是,stderr 输出在重定向时会“消失”——这只是 git 中发生的事情。
测试用例?试试这个,看看你是否在文件中看到任何东西(你不会):
这与我所知道的关于标准错误和重定向的一切背道而驰;我什至编写了一个在 stderr 和 stdout 上输出的小 C 程序,以向自己证明重定向对 git 不起作用。
修复尝试 4
根据 Jakub Narębski 的回答,以及对我发送到 git 邮件列表的电子邮件的回复,--progress
是我需要的选项。请注意,此选项仅在命令之后有效,而在clone
.
成功!
非常感谢您的帮助。这是固定线路:
zenity - zenity 列表和 for 循环
我尝试使用 zenity 创建一个清单,我的问题是 $select 总是空的。我尝试用其他几种方式来做到这一点,比如这个:
通过这种方式, $select 变量不是空的,但是如果某个变量中有空格(例如 $x),zenity 将其拆分为 2(或更多)列。
我需要其他解决方案或对我的代码进行任何修复吗?
谢谢!
bash - Bash,没有取消的zenity进度条
目前正在开发一个小型 bash 脚本,我的需求是一个不带取消按钮的进度条。我一直在研究 zenity 进度条,但还没有找到摆脱取消按钮的方法。
取消按钮的不存在至关重要,因为它会完全破坏进度条的方式。我看到了一个基于终端的进度条,但由于我在所有其他情况下都使用 zenity 对话框,所以我也想将它用于进度条。
任何想法如何解决我的问题?周围还有其他进度条,还是可以摆脱取消按钮?
非常感谢任何帮助,谢谢!
php - 从 PHP 写入标准输入?
在 linux 中,我想从 PHP 运行一个 gnome zenity 进度条窗口。zenity 的工作原理是这样的:
所以第一个命令会在 0% 处打开 zenity 进度条。Zenity 然后将标准输入数字作为进度条百分比(因此当您输入这些数字时,它将从 10% 变为 50% 再到 100%)。
我不知道如何让 PHP 输入这些数字,但我尝试过:
和:
和:
但是它们都没有更新进度条。我可以通过什么方式模仿标准输入在 linux shell 上的效果来获得 zenity 来更新其进度条?
linux - 更新 zenity 窗口的内容
我正在尝试为一个名为 showbf 的程序制作一个小型监视器,该程序每隔一定时间打印一次更新。
我最好的尝试是以下
我真的不喜欢它,因为它会将结果附加到预览中。它变得非常混乱。我想使用 zenity --list 之类的东西(结果是 2 列,可用的 proc 数量和 walltime)。但是一旦 zenity 读取数据,它就不会更新其内容。有任何想法吗??
使用 while 循环重新创建窗口不是我想要的,因为新窗口被替换在屏幕的中心。
非常感谢萨尔瓦多
bash - 在终端外运行时,Bash 脚本不起作用
此脚本在以图形方式启动时(通过双击脚本图标并选择运行)无法正常运行,但是,如果从终端调用,则运行良好;不会保存文件或从现有文件加载内容。请帮忙!谢谢你。