Python中使用gi.repository.Gdk来操作图形界面
发布时间:2023-12-24 14:21:56
Python中使用gi.repository.Gdk可以方便地操作图形界面,包括创建窗口、绘制图形、响应鼠标、键盘事件等。以下是一个使用gi.repository.Gdk操作图形界面的例子:
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, Gdk
# 创建一个窗口
window = Gtk.Window()
window.connect("delete-event", Gtk.main_quit)
window.set_default_size(400, 300)
# 创建一个绘图区域
drawing_area = Gtk.DrawingArea()
window.add(drawing_area)
# 绘制图形
def draw(widget, ctx):
ctx.set_source_rgb(1, 0, 0) # 设置绘制颜色为红色
ctx.rectangle(50, 50, 200, 100) # 绘制矩形
ctx.fill() # 填充矩形
drawing_area.connect("draw", draw)
# 响应鼠标事件
def button_press(widget, event):
if event.type == Gdk.EventType.BUTTON_PRESS and event.button == 1:
print("Left button pressed")
elif event.type == Gdk.EventType.BUTTON_PRESS and event.button == 3:
print("Right button pressed")
drawing_area.add_events(Gdk.EventMask.BUTTON_PRESS_MASK)
drawing_area.connect("button-press-event", button_press)
# 响应键盘事件
def key_press(widget, event):
if event.type == Gdk.EventType.KEY_PRESS:
keyname = Gdk.keyval_name(event.keyval)
print("Key {} pressed".format(keyname))
drawing_area.add_events(Gdk.EventMask.KEY_PRESS_MASK)
drawing_area.connect("key-press-event", key_press)
window.show_all()
Gtk.main()
以上代码创建了一个简单的窗口,并在窗口中添加了一个绘图区域。在绘图区域中绘制了一个红色的矩形,并且添加了响应鼠标点击和键盘按键的事件。
当左键点击绘图区域时,会输出"Left button pressed";当右键点击绘图区域时,会输出"Right button pressed";而当键盘按下任意键时,会输出相应的按键信息。
这只是使用gi.repository.Gdk的一个简单示例,gi.repository.Gdk还提供了许多其他功能,如绘制图像、管理窗口、处理输入设备事件等。详细的使用方法可以参考相关文档。
