Python Forum
Tkinter Shell Terminal Or Shell Output
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Tkinter Shell Terminal Or Shell Output
#1
Hello all,

New at using Python here, I have a bash script that I used to automate tasks on my home NAS/Server running Archlinux and I have decided to make it better and dive into Python whilst I have the time, unfortunately.

Anyway, I have successfully created the code and a GUI using Tkinter. All is working as it should (same as was my bash script) However, I wanted to make some improvement and want to have the shell output of the command being display within the GUI depending on which action/command the GUI is being asked to perform.

I.E. at the moment, I am running Mnamer from the GUI to analysed my Download folder within my NAS/Server to detect TV Show / Movies downloaded that moves it to the right folder and rename it also. I would like the shell output to be displayed within the GUI window to make sure that the right tv show or movie has been detected instead of having to navigate the folders.

Even better, would be to have access to the shell terminal within the GUI window, in order to send command when I use the GUI to connect via SSH to my nas / server or my kid computer?

Other commands would just remain as current with a successful window popping up.

See Below the script - any advice help would be appreciated.

import subprocess
from tkinter import *
from tkinter import messagebox
from tkinter import ttk

window = Tk()

#modify window
window.title("Server Commander")
window.geometry("228x400")

tab_control = ttk.Notebook(window)

#Creating tabs
tab1 = ttk.Frame(tab_control)
tab2 = ttk.Frame(tab_control)

#Modifying tabs
tab_control.add(tab1, text='Server')
tab_control.add(tab2, text='Computer')

#Creating button & actions
#Tab Server
def issue():
    subprocess.call('ssh [email protected] sudo systemctl start pyload', shell=True)
    messagebox.showinfo('Start PyLoad', 'PyLoad Started successfully!')
btn = Button(tab1, text="Start Pyload", command=issue)
btn.grid(column=1, row=5, sticky='news')

def issue():
    subprocess.call("ssh [email protected] sudo systemctl stop pyload", shell=True)
    messagebox.showinfo('Stop PyLoad', 'Pyload Stopped successfully!')
btn = Button(tab1, text="Stop PyLoad", command=issue)
btn.grid(column=2, row=5, sticky='news')

def issue():
    subprocess.call("ssh [email protected] python -m mnamer -bvr /mnt/hd/Download/", shell=True)
    messagebox.showinfo('Mnamer', 'Mnamer successfully!')
btn = Button(tab1, text="Mnamer", command=issue)
btn.grid(column=1, row=6, sticky='news')

def issue():
    subprocess.call("ssh [email protected] /usr/local/sbin/extractall.sh", shell=True)
    messagebox.showinfo('Extract Files', 'Extract Files successfully!')
btn = Button(tab1, text="Extract Files", command=issue)
btn.grid(column=1, row=7, sticky='news')

def issue():
    subprocess.call("ssh [email protected] rm /mnt/hd/Download/*.rar", shell=True)
    messagebox.showinfo('Remove Rar', 'Remove Rar successfully!')
btn = Button(tab1, text="Remove Rar", command=issue)
btn.grid(column=2, row=7, sticky='news')

def issue():
    subprocess.call("deepin-terminal -e ssh [email protected]", shell=True)
    messagebox.showinfo('SSH GoFlex', 'SSH GoFlex successfully!')
btn = Button(tab1, text="SSH GoFlex", command=issue)
btn.grid(column=1, row=8, sticky='news')

def issue():
    subprocess.call("deepin-terminal -e ssh [email protected]", shell=True)
    messagebox.showinfo('SSH Paco', 'SSH Paco successfully!')
btn = Button(tab1, text="SSH Paco", command=issue)
btn.grid(column=2, row=8, sticky='news')

def issue():
    subprocess.call("sudo -u sweetth mount /mnt/share && dde-file-manager /mnt/share/", shell=True)
    messagebox.showinfo('Mount GoFlex', 'Mount GoFlex successfully!')
btn = Button(tab1, text="Mount GoFlex", command=issue)
btn.grid(column=1, row=9, sticky='news')

def issue():
    subprocess.call("sudo umount /mnt/share", shell=True)
    messagebox.showinfo('Umount GoFlex', 'Umount GoFlex successfully!')
btn = Button(tab1, text="Umount GoFlex", command=issue)
btn.grid(column=2, row=9, sticky='news')

def issue():
    subprocess.call("ssh [email protected] sudo systemctl reboot", shell=True)
    messagebox.showinfo('Reboot NAS', 'Reboot NAS successfully!')
btn = Button(tab1, text="Reboot NAS", command=issue)
btn.grid(column=1, row=10, sticky='news')

def issue():
    subprocess.call("ssh [email protected] sudo systemctl poweroff", shell=True)
    messagebox.showinfo('Power Off NAS', 'Power Off NAS successfully!')
btn = Button(tab1, text="Power Off NAS", command=issue)
btn.grid(column=2, row=10, sticky='news')

#Tab Computer
def issue():
    subprocess.call('sudo systemctl start pyload', shell=True)
    messagebox.showinfo('Start PyLoad', 'PyLoad Started successfully!')
btn = Button(tab2, text="Start PyLoad", command=issue)
btn.grid(column=1, row=5, sticky='news')

def issue():
    subprocess.call("sudo systemctl stop pyload", shell=True)
    messagebox.showinfo('Stop PyLoad', 'Pyload Stopped successfully!')
btn = Button(tab2, text="Stop PyLoad", command=issue)
btn.grid(column=2, row=5, sticky='news')

tab_control.pack(expand=1, fill='both')

#event loop
window.mainloop()
Reply


Messages In This Thread
Tkinter Shell Terminal Or Shell Output - by sweetthdevil - Nov-30-2020, 09:31 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Tkinter | entry output. Sap2ch 1 2,016 Sep-25-2021, 12:38 AM
Last Post: Yoriz
  How to show terminal output in GUI Rubberduck 2 8,736 May-29-2021, 09:01 AM
Last Post: Rubberduck
  [Tkinter] acceleration of data output in treeview tkinter Vladimir1984 4 4,239 Nov-21-2020, 03:43 PM
Last Post: Vladimir1984
  Displaying output in GUI ( Tkinter) Zouloutamtam 7 18,512 Sep-29-2020, 02:08 PM
Last Post: Zouloutamtam
  [Tkinter] Logs and terminal in Tkinter Prezess 1 3,178 Jul-26-2020, 09:49 PM
Last Post: Larz60+
  How to display results from terminal window onto tkinter. buttercup 0 3,661 Jul-21-2020, 04:41 AM
Last Post: buttercup
  How to print out the wisget structure in shell menator01 0 1,616 Apr-26-2020, 04:20 AM
Last Post: menator01
  [GTK] Virtual python shell with Vte.Pty.spawn_async() jiri 2 3,368 Oct-20-2019, 12:16 PM
Last Post: Axel_Erfurt
  Active tkinter text output during loop dvanommen 2 10,812 Oct-18-2019, 02:23 PM
Last Post: dvanommen
  sQlite3 output to tkinter treeview - how do I set / increase width of the output? dewijones67 5 6,688 Jan-23-2019, 08:45 AM
Last Post: Larz60+

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020