Anpassungen an den Variablen

This commit is contained in:
2023-11-23 16:13:06 +01:00
parent 1932cd4ab9
commit 2f5fb291dd
6 changed files with 351 additions and 23 deletions

79
GUI/vbox.py Normal file
View File

@@ -0,0 +1,79 @@
import tkinter as tk
from tkinter import ttk
import subprocess
class VBoxManagerGUI:
def __init__(self, root):
self.root = root
self.root.title("VirtualBox Manager")
# Frames
self.frame_vm_list = ttk.Frame(self.root, padding="10")
self.frame_vm_list.grid(row=0, column=0, padx=10, pady=10, sticky="nsew")
self.frame_buttons = ttk.Frame(self.root, padding="10")
self.frame_buttons.grid(row=1, column=0, padx=10, pady=10, sticky="nsew")
# VM List
self.label_vm_list = ttk.Label(self.frame_vm_list, text="VM List:")
self.label_vm_list.grid(row=0, column=0, sticky="w")
self.vm_listbox = tk.Listbox(self.frame_vm_list, height=10, selectmode=tk.SINGLE)
self.vm_listbox.grid(row=1, column=0, sticky="nsew")
# Buttons
self.button_create_vm = ttk.Button(self.frame_buttons, text="Create VM", command=self.create_vm)
self.button_create_vm.grid(row=0, column=0, padx=5)
self.button_start_vm = ttk.Button(self.frame_buttons, text="Start VM", command=self.start_vm)
self.button_start_vm.grid(row=0, column=1, padx=5)
self.button_stop_vm = ttk.Button(self.frame_buttons, text="Stop VM", command=self.stop_vm)
self.button_stop_vm.grid(row=0, column=2, padx=5)
# Configure grid weights
self.root.grid_columnconfigure(0, weight=1)
self.root.grid_rowconfigure(0, weight=1)
self.root.grid_rowconfigure(1, weight=0)
# Populate VM List
self.update_vm_list()
def create_vm(self):
# Implement logic to create a VirtualBox VM
pass
def start_vm(self):
selected_vm = self.vm_listbox.get(tk.ACTIVE)
if selected_vm:
subprocess.run(["vboxmanage", "startvm", selected_vm])
def stop_vm(self):
selected_vm = self.vm_listbox.get(tk.ACTIVE)
if selected_vm:
subprocess.run(["vboxmanage", "controlvm", selected_vm, "poweroff"])
def update_vm_list(self):
try:
# Run the vboxmanage list vms command
result = subprocess.run(["vboxmanage", "list", "vms"], capture_output=True, text=True)
output_lines = result.stdout.splitlines()
# Clear the existing items in the Listbox
self.vm_listbox.delete(0, tk.END)
# Parse the output and update the Listbox
for line in output_lines:
parts = line.split()
if len(parts) >= 2:
vm_name = parts[0]
self.vm_listbox.insert(tk.END, vm_name)
except Exception as e:
# Handle exceptions (e.g., vboxmanage not found)
print(f"Error updating VM list: {e}")
if __name__ == "__main__":
root = tk.Tk()
app = VBoxManagerGUI(root)
root.mainloop()