我对 Linux 还很陌生,了解的不多。我正在用 Quickly 创建自己的应用程序,我想有一个按钮来启动硬件信息应用程序“Hardinfo”。我是个新手,我真的什么都不知道,任何帮助都将不胜感激。提前致谢!
更新:我不是在寻找键盘快捷键,我指的按钮是 glade 内的 gtk 按钮。如何设置它,以便单击时它会将我带到应用程序“hardinfo”。如果这不可能,那么我如何设置按钮以在 glade 内单击后模拟键盘快捷键,谢谢!
更新 2:我正在寻找一个一步一步的、完全了解 glade 的人来告诉我如何做到这一点,因为我不知道代码是如何工作的,也不知道应该把它们放在哪里 :/
答案1
好的,我们来举一个清晰简洁的例子:
quickly create ubuntu-application test
cd test
quickly design
- 使用 Glade 在某处添加一个按钮(默认情况下它被称为“button1”)
- 保存并关闭 Glade
quickly edit
然后转到 TestWindow.py在文件顶部添加以下内容:
from multiprocessing import Process import subprocess
将以下内容添加到文件末尾并确保其正确缩进(专业提示:在 Gedit 中选择文本块并按 Tab 键缩进整个块):
def on_button1_clicked(self, widget, data=None): p = Process(target=self.launch_hardinfo) p.start() def launch_hardinfo(self): subprocess.call(["hardinfo"])
这两个函数协同工作。 Process.start() 在新线程中调用 TestWindow.launch_hardinfo(即 Process 构造函数的 target= 参数),以便 subprocess.call() 不会阻塞应用程序。
保存 TestWindow.py
quickly run
并点击按钮。
我遇到了一个小问题,因为我试图在 Glade 中分配信号,但你甚至不需要这样做。Quickly 库实际上允许你执行 on_button1_click() 之类的操作,这意味着“当名为 button1 的控件被单击时”。就这么简单!希望这能让你入门。
也可以看看:快速创建 Ubuntu 应用程序
答案2
为此必须在虚拟机中启动 Ubuntu,我不使用 Unity ;)
您可以通过打开启动器(左上角的按钮)并转到“键盘”来设置自定义按键绑定。从那里,您可以转到“快捷方式”选项卡并创建自定义快捷方式。将其命名为您想要的任何名称,但请将命令改为“hardinfo”(不带引号)。完成后,单击刚刚添加的行右侧以设置您的按键。
答案3
你想要这样的东西。我无法在 Python 中做到这一点,只能在 Perl 中做到这一点,但在 Python 中看起来会很相似。
sub startapp {
system "/usr/bin/name_of_application &";
}
$button = Gtk2::Button->new("Start application");
$button->signal_connect(clicked => \&startapp, $window);
$button->show;