📜  PyGTK-入门课程(1)

📅  最后修改于: 2023-12-03 14:45:44.766000             🧑  作者: Mango

PyGTK-入门课程

PyGTK 是一个基于 Gtk+ 的 Python 编程库,可以用来开发 Linux 和 Unix 系统的 GUI 应用程序。它是一个开放源代码项目,使用 LGPL 授权协议。

安装 PyGTK

要使用 PyGTK,必须先安装它。PyGTK 可以通过以下命令在 Ubuntu 系统上安装:

sudo apt-get install python-gtk2
编写第一个 PyGTK 程序

下面是一个简单的 PyGTK 程序,它将创建一个窗口并显示文本标签。

import gtk

class HelloWorld:

  def __init__(self):
    # 创建一个窗口
    self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
    self.window.set_title("Hello World")
    self.window.connect("destroy", gtk.main_quit)

    # 创建一个文本标签
    self.label = gtk.Label("Hello, World!")

    # 将文本标签添加到窗口中
    self.window.add(self.label)

    # 显示窗口和文本标签
    self.label.show()
    self.window.show()

  def main(self):
    # 主循环
    gtk.main()

if __name__ == "__main__":
  hello = HelloWorld()
  hello.main()
创建 PyGTK 控件

PyGTK 提供了多种控件,如文本标签、按钮、输入框、下拉框等等。使用这些控件可以创建复杂的 GUI 界面。

文本标签
import gtk

class HelloWorld:

  def __init__(self):
    # 创建一个窗口
    self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
    self.window.set_title("Hello World")
    self.window.connect("destroy", gtk.main_quit)

    # 创建一个文本标签
    self.label = gtk.Label("Hello, World!")

    # 将文本标签添加到窗口中
    self.window.add(self.label)

    # 显示窗口和文本标签
    self.label.show()
    self.window.show()

  def main(self):
    # 主循环
    gtk.main()

if __name__ == "__main__":
  hello = HelloWorld()
  hello.main()
按钮
import gtk

class HelloWorld:

  def __init__(self):
    # 创建一个窗口
    self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
    self.window.set_title("Hello World")
    self.window.connect("destroy", gtk.main_quit)

    # 创建一个按钮
    self.button = gtk.Button("Click me!")
    self.button.connect("clicked", self.on_button_clicked)

    # 将按钮添加到窗口中
    self.window.add(self.button)

    # 显示窗口和按钮
    self.button.show()
    self.window.show()

  def on_button_clicked(self, widget):
    print "Hello, World!"

  def main(self):
    # 主循环
    gtk.main()

if __name__ == "__main__":
  hello = HelloWorld()
  hello.main()
输入框
import gtk

class HelloWorld:

  def __init__(self):
    # 创建一个窗口
    self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
    self.window.set_title("Hello World")
    self.window.connect("destroy", gtk.main_quit)

    # 创建一个输入框
    self.entry = gtk.Entry()
    self.entry.connect("activate", self.on_entry_activated)

    # 将输入框添加到窗口中
    self.window.add(self.entry)

    # 显示窗口和输入框
    self.entry.show()
    self.window.show()

  def on_entry_activated(self, widget):
    text = widget.get_text()
    print "You typed:", text

  def main(self):
    # 主循环
    gtk.main()

if __name__ == "__main__":
  hello = HelloWorld()
  hello.main()
下拉框
import gtk

class HelloWorld:

  def __init__(self):
    # 创建一个窗口
    self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
    self.window.set_title("Hello World")
    self.window.connect("destroy", gtk.main_quit)

    # 创建一个下拉框
    self.combo = gtk.combo_box_new_text()
    self.combo.connect("changed", self.on_combo_changed)
    self.combo.append_text("Item 1")
    self.combo.append_text("Item 2")
    self.combo.append_text("Item 3")

    # 将下拉框添加到窗口中
    self.window.add(self.combo)

    # 显示窗口和下拉框
    self.combo.show()
    self.window.show()

  def on_combo_changed(self, widget):
    index = widget.get_active()
    model = widget.get_model()
    item = model[index][0]
    print "Selected item:", item

  def main(self):
    # 主循环
    gtk.main()

if __name__ == "__main__":
  hello = HelloWorld()
  hello.main()
总结

通过 PyGTK,可以轻松地创建 Linux 和 Unix 系统的 GUI 应用程序。PyGTK 提供了多种控件,可以用来创建复杂的 GUI 界面。为了使用 PyGTK,必须先安装它。