前提・実現したいこと
Raspberry pi,pythonともに初心者です。
GUIのボタンまたは、GPIOからの物理スイッチで
PDFアプリのevinceを起動と終了をしたいと思いっております。
evinceは立ち上がるんですが、終了でKillしたいのですが
方法がわかりません。
どなたか、ご指導お願い致します。
該当のソースコード
# -*- coding: utf-8 -*- import RPi.GPIO as GPIO import sys,os,time import subprocess import tkinter as tk def STR_procss (event): path = ("evince") evince_GO = subprocess.Popen(path) def END_procss(event): print("end") evince_GO.kill() GPIO.setmode(GPIO.BCM) GPIO16 = 16 GPIO21 = 21 GPIO.setup(GPIO16, GPIO.IN, pull_up_down = GPIO.PUD_UP)#プルアップ抵抗 有効 GPIO.setup(GPIO21, GPIO.IN, pull_up_down = GPIO.PUD_UP)#プルアップ抵抗 有効 GPIO.add_event_detect(GPIO16, GPIO.RISING, callback=STR_procss, bouncetime=200) GPIO.add_event_detect(GPIO21, GPIO.RISING, callback=END_procss, bouncetime=200) #Tkinter root = tk.Tk() root.title("TEST Launcher") root.geometry("300x120+10+10") #ボタンを作る button1 = tk.Button(root, text="evince起動", bg="YELLOW",bd=5,font=("","14"),command= lambda : STR_procss(button1)) button1.pack(side="top") button2 = tk.Button(root, text="evince終了", bg="RED",bd=5,font=("","14"),command= lambda : END_procss(button2)) button2.pack(side="bottom") root.mainloop() try: while True: time.sleep(1) except KeyboardInterrupt:#Ctrl+Cで終了 GPIO.remove_event_detect() GPIO.cleanup()
補足情報(FW/ツールのバージョンなど)
Rsapberry Pi4
Python3
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/26 23:47
2021/10/27 02:21
2021/10/27 03:04