def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.title('PhotoPY') self.width = self.winfo_screenwidth() - 50 self.height = self.winfo_screenheight() - 50 self.geometry('{w}x{h}'.format(w=self.width, h=self.height)) self.resizable(False, False) self.drawing_frame = DrawingFrame(master=self) self.histogram = Histogram(master=self) self.history_panel = None
def __init__(self, tab_frame: tk.Frame, main_window: tk.Tk, name: tk.StringVar): self.tab_frame = tab_frame self.main_window = main_window """ Master Key must match menu_command _current tab politics """ ############### # vars ############### self.id = tab_frame._w TabPicture.gallery[self.id] = self self.name = name self.tkImage = None res = int(app_config.main_window_resolution[:int( app_config.main_window_resolution.index('x'))]) / 2 ############### # Panels ############### self.pann = tk.PanedWindow(self.tab_frame, handlesize=10, showhandle=True, handlepad=12, sashwidth=3) self.pann.pack(side=tk.TOP, fill=tk.BOTH, expand=True) self.image_frame = tk.Frame(self.pann) self.image_frame.pack(expand=True, fill=tk.BOTH) self.pann.add(self.image_frame, width=res, minsize=100) self.panel_hist = tk.Frame(self.pann) self.panel_hist.pack(expand=True, fill=tk.BOTH) self.pann.add(self.panel_hist, width=res, minsize=100) ############### # Class ############### self.vision = Vision() self.histogram = Histogram(self.panel_hist) self.image_canvas = ImageFrame(self.image_frame)
def __init__(self, parent=None): super(PlotterWidget, self).__init__(parent) self.layout = QtGui.QGridLayout() self.setLayout(self.layout) self.plot_settings = PlotSettings() #plot_canvas = MyStaticMplCanvas(self.main_widget, width=5, height=4, dpi=100) self.plot_canvas = Histogram(self, width=9, height=3, dpi=100, settings=self.plot_settings) self.plot_canvas.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self.plot_canvas.customContextMenuRequested.connect(self.display_context_menu) self.layout.addWidget(self.plot_canvas,0,0) # self.plot_settings_button = QtGui.QPushButton("Plot Settings") self.plot_settings_dialog = PlotSettingsDialog(plot_settings=self.plot_settings) self.plot_settings_dialog.accepted.connect(self.apply_plot_settings) # self.plot_settings_button.released.connect(self.plot_settings_dialog.exec) # self.layout.addWidget(self.plot_settings_button) self.setToolTip("Right click for options.")
def init_histogram(self): self.histogram = Histogram(master=self.master, in_=self)
def __init__(self, name, tab: TabPicture): self.window = tk.Toplevel() self.window.title(name) self.window.geometry(app_config.operations_window_resolution) self.tab = tab self.size = (300, 700) self.tkImage = Vision.resize_tk_image(self.tab.vision.cvImage.image, self.size) self.tkImage_tmp = None self.body = tk.Frame(master=self.window) self.body.pack(fill=tk.BOTH, expand=True) self.buttons = tk.Frame(master=self.body) self.buttons.pack(side=tk.TOP, fill=tk.X) self.plugins = tk.Frame(master=self.body) self.plugins.pack(after=self.buttons, side=tk.TOP, fill=tk.X) self.panels = tk.Frame(master=self.body) self.panels.pack(after=self.plugins, side=tk.TOP, fill=tk.BOTH, expand=True) self.status_message = tk.StringVar() self.status_message.set('*') self.status_bar = tk.Label(self.body, textvariable=self.status_message, bd=1, relief=tk.SUNKEN, anchor='w') self.status_bar.pack(side=tk.BOTTOM, fill=tk.X) ############### # Panels ############### self.outer_pan = tk.PanedWindow(self.panels, handlesize=10, showhandle=True, handlepad=12, sashwidth=3) self.outer_pan.pack(side=tk.TOP, fill=tk.BOTH, expand=True) self.left_pan = tk.PanedWindow(self.outer_pan, handlesize=10, showhandle=True, handlepad=12, sashwidth=3, orient=tk.VERTICAL) self.left_pan.pack(side=tk.TOP, fill=tk.BOTH, expand=True) self.outer_pan.add(self.left_pan, minsize=100) lf_original = tk.LabelFrame(master=self.panels, text='Original') lf_original.pack(side=tk.LEFT, expand=True, fill=tk.BOTH) self.left_pan.add(lf_original, minsize=100) self.panel = tk.Label(master=lf_original, image=self.tkImage) self.panel.pack() lf_equalised = tk.LabelFrame(master=self.panels, text='Equalised') lf_equalised.pack(side=tk.LEFT, expand=True, fill=tk.BOTH) self.left_pan.add(lf_equalised, minsize=100) self.panel_tmp = tk.Label(master=lf_equalised) self.panel_tmp.pack() self.panel_hist = tk.Frame(master=self.panels) self.panel_hist.pack(side=tk.RIGHT, expand=True, fill=tk.BOTH) self.outer_pan.add(self.panel_hist, minsize=100) self.histogram = Histogram(self.panel_hist) self.widget_buttons() self.control_plugin() self.refresh() self.window.mainloop()
class PlotterWidget(QtGui.QWidget): plots = [] def __init__(self, parent=None): super(PlotterWidget, self).__init__(parent) self.layout = QtGui.QGridLayout() self.setLayout(self.layout) self.plot_settings = PlotSettings() #plot_canvas = MyStaticMplCanvas(self.main_widget, width=5, height=4, dpi=100) self.plot_canvas = Histogram(self, width=9, height=3, dpi=100, settings=self.plot_settings) self.plot_canvas.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self.plot_canvas.customContextMenuRequested.connect(self.display_context_menu) self.layout.addWidget(self.plot_canvas,0,0) # self.plot_settings_button = QtGui.QPushButton("Plot Settings") self.plot_settings_dialog = PlotSettingsDialog(plot_settings=self.plot_settings) self.plot_settings_dialog.accepted.connect(self.apply_plot_settings) # self.plot_settings_button.released.connect(self.plot_settings_dialog.exec) # self.layout.addWidget(self.plot_settings_button) self.setToolTip("Right click for options.") def display_context_menu(self, pos): self. menu = QtGui.QMenu() self.edit_action = self.menu.addAction("Edit Plot Settings") self.edit_action.triggered.connect(self.plot_settings_dialog.exec) self.pdf_action = self.menu.addAction("Save as PDF") self.pdf_action.triggered.connect(self.save_as_pdf) self.menu.popup(self.mapToGlobal(pos)) def save_as_pdf(self): dialog = QtGui.QFileDialog(self) dialog.setDefaultSuffix("pdf") dialog.setWindowTitle("Save Figure as PDF...") dialog.setAcceptMode(QtGui.QFileDialog.AcceptSave) dialog.setFileMode(QtGui.QFileDialog.AnyFile) dialog.fileSelected.connect(self.save_as_pdf_to_file) dialog.exec() def save_as_pdf_to_file(self, filename): self.plot_canvas.fig.set_size_inches(9,3) pdf = self.plot_canvas.fig.savefig(filename=filename, format="pdf") def apply_plot_settings(self): self.plot_canvas.axes.set_xlim(self.plot_settings.x_minimum, self.plot_settings.x_maximum) self.plot_canvas.axes.set_ylim(self.plot_settings.y_minimum, self.plot_settings.y_maximum) self.update_plot() def set_data_source_model(self, model): self.data_source_model = model def add_plot(self, plot): self.plots.append(plot) self.update_plot() def reset(self): self.plots.clear() self.update_plot() def update_plot(self): self.plot_canvas.clear() for d in self.plots: self.plot_canvas.add_plot(d) self.plot_canvas.axes.set_xlim(self.plot_settings.x_minimum, self.plot_settings.x_maximum) self.plot_canvas.axes.set_ylim(self.plot_settings.y_minimum, self.plot_settings.y_maximum) self.plot_canvas.update_figure()
def __init__(self, name, tab: TabPicture): self.window = tk.Toplevel() self.window.title(name) self.window.geometry(app_config.operations_window_resolution) self.tab_bg = tab self.vision_result = computer_vision.Vision() self.vision_result.cvImage.image = copy.copy( self.tab_bg.vision.cvImage.image) self.vision_result.cvImage_tmp.image = copy.copy( self.tab_bg.vision.cvImage_tmp.image) self.size = (300, 300) self.tk_img_background = None self.operation_name = tk.StringVar() self.kernel_size = tk.StringVar() self.border_type = tk.StringVar() self.border_type.set(list(computer_vision.borderType.keys())[0]) self.body = tk.Frame(master=self.window) self.body.pack(fill=tk.BOTH, expand=True) self.buttons = tk.Frame(master=self.body) self.buttons.pack(side=tk.TOP, fill=tk.X) self.plugins = tk.Frame(master=self.body) self.plugins.pack(after=self.buttons, side=tk.TOP, fill=tk.X) self.panels = tk.Frame(master=self.body) self.panels.pack(after=self.plugins, side=tk.TOP, fill=tk.BOTH, expand=True) self.status_message = tk.StringVar() self.status_message.set('*') self.status_bar = tk.Label(self.body, textvariable=self.status_message, bd=1, relief=tk.SUNKEN, anchor='w') self.status_bar.pack(side=tk.BOTTOM, fill=tk.X) ############### # Panels ############### self.outer_pan = tk.PanedWindow(self.panels, handlesize=10, showhandle=True, handlepad=12, sashwidth=3) self.outer_pan.pack(side=tk.TOP, fill=tk.BOTH, expand=True) self.left_panned_window = tk.PanedWindow(self.outer_pan, handlesize=10, showhandle=True, handlepad=12, sashwidth=3, orient=tk.VERTICAL) self.left_panned_window.pack(side=tk.TOP, fill=tk.BOTH, expand=True) self.outer_pan.add(self.left_panned_window, minsize=100) # todo switch self.panels to self.kernel_panel lf_top = tk.LabelFrame(master=self.panels, text='Image') lf_top.pack() self.left_panned_window.add(lf_top, minsize=100) self.panel_back = tk.Label(master=lf_top) self.panel_back.pack() self.options_panned_frame = tk.LabelFrame(master=self.panels, text='Filter') self.options_panned_frame.pack() self.left_panned_window.add(self.options_panned_frame, minsize=100) self.lf_result = tk.LabelFrame(master=self.panels, text='Result') self.lf_result.pack() self.outer_pan.add(self.lf_result, minsize=100) self.result_tabs = ttk.Notebook(self.lf_result) self.result_tabs.pack(side=tk.TOP, fill=tk.BOTH, expand=True) self.img_frame = tk.Frame(self.result_tabs) self.img_frame.pack(fill=tk.BOTH, expand=1) self.result_tabs.add(self.img_frame, text="Resulat Image") self.hist_frame = tk.Frame(self.result_tabs) self.hist_frame.pack(fill=tk.BOTH, expand=1) self.result_tabs.add(self.hist_frame, text="Hiastogram") self.image_canvas = ImageFrame(self.img_frame) self.histogram = Histogram(self.hist_frame) self.widget_buttons() self.refresh_panel_img()