Использование python 3.6 windows и tkinter
с использованием tkinter для вызова графа pyvista для нескольких изображений в качестве основного gui потеря фокуса после закрытия холста pyvista, если любой другой параметр это вызов без закрытия пывиста всей системы cra sh
код
from tkinter.ttk import Notebook
from tkinter import Canvas
from tkinter import messagebox as msg
from tkinter import filedialog
from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib.widgets import Slider, Button, RadioButtons
from matplotlib import pyplot, cm
from glob import glob
from config import *
from win32api import GetSystemMetrics
import matplotlib.pyplot as plt
from matplotlib.pyplot import plot, draw, show
#from vtk import *
from vtkplotter import *
from tkinter import *
from stl import mesh
from mpl_toolkits import mplot3d
from matplotlib import pyplot
import tkinter as tk
#import dicom
import os
import numpy as np
import sys
import warnings
import ctypes
#import gdcm
import pydicom
import time
import msvcrt as m
import datetime
import time
import cv2
import tkinter
import PIL.Image, PIL.ImageTk
import path
import imgHandle
import re
import win32api
import gc
import io
import matplotlib.pyplot as plt
import vtk
#import vtkplotlib as vpl
from stl.mesh import Mesh
import pyvista as pv
from pyvista import examples
tipo_img=".dcm"
global ImageDir
def dentesviewer():
plotter = pv.Plotter(shape=(2, 2))
plotter.subplot(0, 0)
plotter.add_text("Render Window 0", font_size=30)
plotter.add_mesh(examples.load_globe())
plotter.subplot(0, 1)
plotter.add_text("Render Window 1", font_size=30)
plotter.add_mesh(pv.Cube(), show_edges=True, color="tan")
plotter.subplot(1, 0)
plotter.add_text("Render Window 2", font_size=30)
sphere = pv.Sphere()
plotter.add_mesh(sphere, scalars=sphere.points[:, 2])
plotter.add_scalar_bar("Z")
# plotter.add_axes()
plotter.add_axes(interactive=True)
plotter.subplot(1, 1)
plotter.add_text("Render Window 3", font_size=30)
plotter.add_mesh(pv.Cone(), color="g", show_edges=True)
plotter.show_bounds(all_edges=True)
# Display the window
plotter.show()
plotter.close()
class Dicomine(tk.Tk):
#------------------------------------------------------
def __init__(self):
# Inherit from tk.Tk
super().__init__()
if os.path.exists("*.npy"):
os.remove("*.npy")
else:
print("The file does not exist")
width=int(GetSystemMetrics(0)*0.8)
height=int(GetSystemMetrics(1)*0.8)
#print('dimensiones ',width,' ',height)
# Title and size of the window
self.title('Ortodoncia')
#self.geometry('600x400')
#print(' geometry ',str(int(0.5*width))+'x'+str(int(0.5*height)))
self.geometry(str(int(0.5*width))+'x'+str(int(0.15*height)))
# Create the drop down menus
self.menu = tk.Menu(self,bg='lightgrey',fg='black')
self.file_menu = tk.Menu(self.menu,tearoff=0,bg='lightgrey',fg='black')
self.file_menu.add_command(label='geometry',command=dentesviewer)
self.file_menu.add_command(label='Quit',command=self.quit)
self.menu.add_cascade(label='viewer',menu=self.file_menu)
self.config(menu=self.menu)
# Create the tabs (Graph, File Explorer, etc.)
self.notebook = Notebook(self)
self.notebook.pack(fill=tk.BOTH, expand=1)
if __name__ == '__main__':
dicom_gui = Dicomine()
dicom_gui.mainloop()
я уже тестирую, снова вызывая принципала gui, убираю мусор, создаю перерыв после пивиста, но ничего не работает