如何使用 PyGObject 在 Linux 桌面下创建 GUI 应用程序
在 Linux 中创建应用程序可以通过各种方法完成。但是,在 Linux 中创建 GUI 应用程序的最有效方法可以通过Python中的 PyGObject 来完成。 PyGObject 是Python中 PyGTK 库的下一代,我们可以说 PyGObject = Python + GTK3。因此,在本文中,我们将使用 PyGObject 在 Linux 环境下创建一个 GUI 应用程序。
注意:确保您已经在 Linux 机器上安装了Python 。
在 Linux 中创建 GUI 应用程序有两种方法。
- 纯代码方法
- 林间设计方法
方法 1:仅代码方法
在这种方法中,我们将直接通过程序代码创建 GUI 组件,而不是使用任何拖放方法。因此,请按照以下步骤使用纯代码方法创建应用程序。
第 1 步:使用文本编辑器创建 test.py 文件。
nano test.py
第 2 步:在 test.py 文件中编写以下代码。
Python3
#!/usr/bin/python3
# -*- coding: utf-8 -*-
from gi.repository import Gtk
class ourwindow(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="Demonstration\
of PyObject GUI Application Creation")
Gtk.Window.set_default_size(self, 400,325)
Gtk.Window.set_position(self, Gtk.WindowPosition.CENTER)
button1 = Gtk.Button("GeeksforGeeks")
button1.connect("clicked", self.whenbutton1_clicked)
self.add(button1)
def whenbutton1_clicked(self, button):
print("GeeksforGeeks")
window = ourwindow()
window.connect("delete-event", Gtk.main_quit)
window.show_all()
Gtk.main()
Python3
#!/usr/bin/python
# -*- coding: utf-8 -*-
from gi.repository import Gtk
class Handler:
def button_1clicked(self, button):
print("Hello GeeksForGeeks using Glade")
builder = Gtk.Builder()
builder.add_from_file("myprogram.glade")
builder.connect_signals(Handler())
ournewbutton = builder.get_object("button1")
ournewbutton.set_label("Demo using Glade!")
window = builder.get_object("window1")
window.connect("delete-event", Gtk.main_quit)
window.show_all()
Gtk.main()
代码说明:
- #!/usr/bin/python3:这一行指定默认的 Python3 解释器路径。
- # -*- coding: utf-8 -*-: 在这行代码中,我们已经将默认的 Unicode 指定为 UTF-8。
- from gi.repository import Gtk:在这里,我们正在导入 GTK 3 库。
- Class ourwindow(Gtk.Window):在这里,我们创建一个名为ourWindow的类,并将类对象类型设置为Gtk.Window。
- def __init__(self):在这里,我们定义了主要的窗口组件。
- Gtk.Window.__init__(self, title="Demonstration of PyObject GUI Application Creation"):在此我们将标题设置为窗口。
- Gtk.Window.set_default_size(self, 400,325):这里我们设置窗口的宽度和宽度。
- Gtk.Window.set_position(self, Gtk.WindowPosition.CENTER):在这行代码中,我们将窗口的默认位置设置为CENTER。
- button1 = Gtk.Button(“GeeksforGeeks”):在这里,我们创建了一个名为 GeeksforGeeks 的按钮。
- button1.connect(“clicked”, self.whenbutton1_clicked):在这里,我们激活了按下按钮时单击的事件。
- self.add(button1):在这里,我们在创建的窗口上添加一个按钮。
- def whenbutton1_clicked(self, button):在这里,我们定义了名为 whenbutton1_clicked 的函数并将事件代码写入其中。
- print(“GeeksforGeeks”):我们正在打印 GeeksforGeeks 消息。
- window = ourwindow():在这里,我们正在创建一个全局变量,稍后我们可以在代码中使用它。
- window.connect(“delete-event”, Gtk.main_quit):在这里,我们在自动关闭程序窗口后删除所有小部件。
- window.show_all():显示窗口。
- Gtk.main():运行 Gtk 库。
第 3 步:使用以下命令更改 test.py 文件的权限
sudo chmod 755 test.py
第 4 步:使用以下命令运行 test.py 文件。
./test.py or
python3 test.py
第 5 步:现在,您可以看到应用程序窗口已显示并且按钮在屏幕上可见。所以在点击“GeeksforGeeks”按钮之后。消息被打印在终端上。
因此,通过这种方式,我们可以直接从代码本身创建 GUI 应用程序。
方法二:Glade Designer 方法
在此方法中,我们将使用 Glade Designer 创建 GUI 组件,它提供窗口组件的拖放功能,并控制按钮、标签等组件。因此请按照以下步骤使用 Glade Designer 方法创建应用程序。
第 1 步:使用以下命令在 Linux 环境中安装 Glade 软件包。
sudo apt-get install glade
第 2 步:通过终端本身或浏览 Linux 应用程序上的所有应用程序来启动 Glade Designer 应用程序。
glade
第 3 步:以下屏幕截图显示 Glade 应用程序的 GUI。
第 4 步:现在,我们将创建放置控件对象的窗口。因此,从 Top Levels 选项中选择 Window(GtkWindow)。
第 5 步:现在,将按钮放在“来自控件的窗口”选项上。
第 6 步:确保单击信号选项卡中的 clicked 选项,并将处理程序的名称命名为 button1_clicked。
第 7 步:单击保存选项并将文件保存为 myprogram.glade。
第 8 步:现在,使用文本编辑器创建一个新的Python文件,并将以下代码行添加到其中。确保在程序代码中添加 .glade 文件的文件名。
nano glademethod.py
Python3
#!/usr/bin/python
# -*- coding: utf-8 -*-
from gi.repository import Gtk
class Handler:
def button_1clicked(self, button):
print("Hello GeeksForGeeks using Glade")
builder = Gtk.Builder()
builder.add_from_file("myprogram.glade")
builder.connect_signals(Handler())
ournewbutton = builder.get_object("button1")
ournewbutton.set_label("Demo using Glade!")
window = builder.get_object("window1")
window.connect("delete-event", Gtk.main_quit)
window.show_all()
Gtk.main()
代码说明:
- #!/usr/bin/python3:这一行指定默认的 Python3 解释器路径。
- # -*- coding: utf-8 -*-: 在这行代码中,我们已经将默认的 Unicode 指定为 UTF-8。
- from gi.repository import Gtk:在这里,我们正在导入 GTK 3 库。
- class Handler:在这一行中,我们正在创建一个名为 Handler 的新类。
- def button1_clicked(self, button):在这里,我们定义了名为 button1_clicked 的函数并将事件代码写入其中。
- print(“Hello GeeksForGeeks using Glade”):我们正在使用 Glade 消息打印 Hello GeeksForGeeks。
- builder = Gtk.Builder():我们正在创建一个全局变量构建器,用于导入 glade 文件。
- builder.add_from_file(“myprogram.glade”):这里我们导入“myprogram.glade”文件,将其用作我们程序的默认 GUI。
- builder.connect_signals(Handler()):在这里,我们将 glade 文件与处理程序类连接起来。
- ournewbutton.set_label(“Hello, World!”):我们正在使用 Glade 将默认按钮文本设置为 Demo!
- window = builder.get_object(“window1”):在这一行中,我们从 .glade 文件中调用了“window1”对象,以便稍后在程序中显示它。
- window.connect(“delete-event”, Gtk.main_quit):在这里,我们在自动关闭程序窗口后删除所有小部件。
- window.show_all():显示窗口。
- Gtk.main():运行 Gtk 库。
第 9 步:使用以下命令更改 glademethod.py 文件的权限。
sudo chmod 755 glademethod.py
第 10 步:使用以下命令运行 glademethod.py 文件。您将看到打开的窗口并显示创建的按钮。
python3 glademethod.py
第十一步:点击窗口上的按钮后,终端上会显示消息。
因此,通过这种方式,我们可以使用 Glade Designer 方法创建 GUI 应用程序,只需拖放组件即可。