📜  如何使用 PyGObject 在 Linux 桌面下创建 GUI 应用程序

📅  最后修改于: 2022-05-13 01:54:28.210000             🧑  作者: Mango

如何使用 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

如何使用 PyGObject 在 Linux 桌面下创建 GUI 应用程序

第 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()


代码说明

  1. #!/usr/bin/python3:这一行指定默认的 Python3 解释器路径。
  2. # -*- coding: utf-8 -*-: 在这行代码中,我们已经将默认的 Unicode 指定为 UTF-8。
  3. from gi.repository import Gtk:在这里,我们正在导入 GTK 3 库。
  4. Class ourwindow(Gtk.Window):在这里,我们创建一个名为ourWindow的类,并将类对象类型设置为Gtk.Window。
  5. def __init__(self):在这里,我们定义了主要的窗口组件。
  6. Gtk.Window.__init__(self, title="Demonstration of PyObject GUI Application Creation"):在此我们将标题设置为窗口。
  7. Gtk.Window.set_default_size(self, 400,325):这里我们设置窗口的宽度和宽度。
  8. Gtk.Window.set_position(self, Gtk.WindowPosition.CENTER):在这行代码中,我们将窗口的默认位置设置为CENTER。
  9. button1 = Gtk.Button(“GeeksforGeeks”):在这里,我们创建了一个名为 GeeksforGeeks 的按钮。
  10. button1.connect(“clicked”, self.whenbutton1_clicked):在这里,我们激活了按下按钮时单击的事件。
  11. self.add(button1):在这里,我们在创建的窗口上添加一个按钮。
  12. def whenbutton1_clicked(self, button):在这里,我们定义了名为 whenbutton1_clicked 的函数并将事件代码写入其中。
  13. print(“GeeksforGeeks”):我们正在打印 GeeksforGeeks 消息。
  14. window = ourwindow():在这里,我们正在创建一个全局变量,稍后我们可以在代码中使用它。
  15. window.connect(“delete-event”, Gtk.main_quit):在这里,我们在自动关闭程序窗口后删除所有小部件。
  16. window.show_all():显示窗口。
  17. Gtk.main():运行 Gtk 库。

第 3 步:使用以下命令更改 test.py 文件的权限

sudo chmod 755 test.py

如何使用 PyGObject 在 Linux 桌面下创建 GUI 应用程序

第 4 步:使用以下命令运行 test.py 文件。

./test.py or
python3 test.py

如何使用 PyGObject 在 Linux 桌面下创建 GUI 应用程序

第 5 步:现在,您可以看到应用程序窗口已显示并且按钮在屏幕上可见。所以在点击“GeeksforGeeks”按钮之后。消息被打印在终端上。

如何使用 PyGObject 在 Linux 桌面下创建 GUI 应用程序

因此,通过这种方式,我们可以直接从代码本身创建 GUI 应用程序。

方法二:Glade Designer 方法

在此方法中,我们将使用 Glade Designer 创建 GUI 组件,它提供窗口组件的拖放功能,并控制按钮、标签等组件。因此请按照以下步骤使用 Glade Designer 方法创建应用程序。

第 1 步:使用以下命令在 Linux 环境中安装 Glade 软件包。

sudo apt-get install glade

如何使用 PyGObject 在 Linux 桌面下创建 GUI 应用程序

第 2 步:通过终端本身或浏览 Linux 应用程序上的所有应用程序来启动 Glade Designer 应用程序。

glade

如何使用 PyGObject 在 Linux 桌面下创建 GUI 应用程序

第 3 步:以下屏幕截图显示 Glade 应用程序的 GUI。

第 4 步:现在,我们将创建放置控件对象的窗口。因此,从 Top Levels 选项中选择 Window(GtkWindow)。

如何使用 PyGObject 在 Linux 桌面下创建 GUI 应用程序

第 5 步:现在,将按钮放在“来自控件的窗口”选项上。

如何使用 PyGObject 在 Linux 桌面下创建 GUI 应用程序

第 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()

代码说明

  1. #!/usr/bin/python3:这一行指定默认的 Python3 解释器路径。
  2. # -*- coding: utf-8 -*-: 在这行代码中,我们已经将默认的 Unicode 指定为 UTF-8。
  3. from gi.repository import Gtk:在这里,我们正在导入 GTK 3 库。
  4. class Handler:在这一行中,我们正在创建一个名为 Handler 的新类。
  5. def button1_clicked(self, button):在这里,我们定义了名为 button1_clicked 的函数并将事件代码写入其中。
  6. print(“Hello GeeksForGeeks using Glade”):我们正在使用 Glade 消息打印 Hello GeeksForGeeks。
  7. builder = Gtk.Builder():我们正在创建一个全局变量构建器,用于导入 glade 文件。
  8. builder.add_from_file(“myprogram.glade”):这里我们导入“myprogram.glade”文件,将其用作我们程序的默认 GUI。
  9. builder.connect_signals(Handler()):在这里,我们将 glade 文件与处理程序类连接起来。
  10. ournewbutton.set_label(“Hello, World!”):我们正在使用 Glade 将默认按钮文本设置为 Demo!
  11. window = builder.get_object(“window1”):在这一行中,我们从 .glade 文件中调用了“window1”对象,以便稍后在程序中显示它。
  12. window.connect(“delete-event”, Gtk.main_quit):在这里,我们在自动关闭程序窗口后删除所有小部件。
  13. window.show_all():显示窗口。
  14. Gtk.main():运行 Gtk 库。

如何使用 PyGObject 在 Linux 桌面下创建 GUI 应用程序

第 9 步:使用以下命令更改 glademethod.py 文件的权限。

sudo chmod 755 glademethod.py

如何使用 PyGObject 在 Linux 桌面下创建 GUI 应用程序

第 10 步:使用以下命令运行 glademethod.py 文件。您将看到打开的窗口并显示创建的按钮。

python3 glademethod.py

第十一步:点击窗口上的按钮后,终端上会显示消息。

如何使用 PyGObject 在 Linux 桌面下创建 GUI 应用程序

因此,通过这种方式,我们可以使用 Glade Designer 方法创建 GUI 应用程序,只需拖放组件即可。