[原创] 【STM32MP135F-DK】6-使用GTK建立桌面应用程序

manhuami2007   2023-12-17 16:41 楼主
这次尝试使用python+gtk建立一个简单的桌面程序,去控制开发板上的LED。
首先使用vi在目录里建立一个hello.py的文件,代码如下:
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
win = Gtk.Window()
win.connect("destroy", Gtk.main_quit)
win.show_all()
Gtk.main()

 

使用 python3 hello.py 运行这个python脚本,可以看到如下图的显示效果
IMG_20231217_152138.jpg

 

下一步就是在界面上添加按键和按键的执行函数,代码如下
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
import gpiod
from gpiod.line import Direction, Value
class MyWindow(Gtk.Window):
    def __init__(self):
        super().__init__(title="CTRL LED")
        self.button = Gtk.Button(label="LED")
        self.button.connect("clicked", self.on_button_clicked)
        self.add(self.button)
        self.init_led()
        self.led_state = 0
    def init_led(self):
        self.led_request = gpiod.request_lines(
            "/dev/gpiochip9",
            consumer="ctrl-led",
            config={
                14:gpiod.LineSettings(
                    direction=Direction.OUTPUT,output_value=Value.ACTIVE
                )
            },
        )
    def on_button_clicked(self, widget):
        if self.led_state == 0:
            self.led_state = 1
            self.led_request.set_value(14,Value.ACTIVE)
        else:
            self.led_state = 0
            self.led_request.set_value(14,Value.INACTIVE)
win = MyWindow()
win.connect("destroy", Gtk.main_quit)
win.show_all()
Gtk.main()

 

运行效果如下图所示,当点击按键的时候,下方的绿色LED点亮或者熄灭。
ezgif.com-crop.gif 点击上图查看Gif动图
 

 

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复