pyenvをGUIで管理するアプリを作っていきます。
まずはpyenvでインストールしているPythonのバージョンを取得し、Textウィジェットに反映させます。
試してみたらsubprocess.PIPEはPopen()関数だけでなく、run()関数でも使えました。
import subprocess,datetime,os
import tkinter as tk
import tkinter.font as font
from tkinter import ttk
# 色
# #EDFFBE #C2EEFF #7B3CFF
proc = subprocess.run("pyenv versions", shell=True, stdout= subprocess.PIPE, stderr = subprocess.PIPE)
print(proc.stdout)
# こちらでも可能
# proc = subprocess.check_output("pyenv versions", shell=True)
# print(proc)
# ウィンドウ設定
root = tk.Tk()
root.title("PYENV MANAGER v0.0.1")
root.geometry("345x300")
root.configure(bg='#EDFFBE')
style = ttk.Style()
style.theme_use('classic')
style.configure("MyWidget.TButton", gripcount=0,
background="#7B3CFF", foreground="#EEFFFF",darkcolor='#7B3CFF', lightcolor="LightGreen",
troughcolor="gray", bordercolor="gray", arrowcolor="white")
# フォント設定
my_font = font.Font(root,family="System",size=18,weight="normal")
my_font2 = font.Font(root,family="System",size=16,weight="normal")
# Frame設定
frame = tk.Frame(root,background = '#EDFFBE')
frame.grid(row=0,column=0, sticky=tk.NSEW, padx=5, pady=10)
# Text設定
text = tk.Text(frame,height=20,width=30,background = '#C2EEFF',foreground = '#8b0000')
text.grid(row=0,column=0,sticky=tk.W)
# Button設定
btnA = ttk.Button(frame, text="Python確認",command=lambda:text.insert(tk.END,proc.stdout),width=8,style= 'MyWidget.TButton')
btnA.grid(row=0,column=1,padx=10,sticky=tk.N)
root.mainloop()