コード例 #1
0
	def __init__(self, *args, **kwargs):
		super(Display, self).__init__(*args, **kwargs)

		self.image_display       = ImageDisplay(
			orientation='vertical'
		)
		self.toolbar_placeholder = Label(
			text='Toolbar Placeholder',
			size_hint_y=None,
			height=50
		)
		self.add_widget(self.image_display)
		self.add_widget(self.toolbar_placeholder)
コード例 #2
0
    def __init__(self, passed=None):
        """ImageBrowser([passed=None])

        :param passed: Default=None, filepath that runs the program. Default runs os.getcwd()
        """

        self.open_file = ""
        self.entered = False
        self.file_list = []
        self.rotate_qty = 0

        # ------Program Window-----#

        self.window = tk.Tk()
        self.window.title("Image Viewer")

        self.dimY = self.window.winfo_screenheight()
        self.dimX = self.window.winfo_screenwidth()

        self._resize_program()

        image = tk.PhotoImage(file="toolbar/iv_logo.png")
        self.window.iconphoto(False, image)

        self.window.geometry(f"{self.programX}x{self.programY}+100+0")
        self.window.resizable(width=False, height=False)
        self.window.config(background="gray75")

        self.window.bind("<Left>", lambda x: self._back_image())
        self.window.bind("<Right>", lambda x: self._next_image())
        self.window.bind("<BackSpace>", lambda x: self._chg_dir)

        self.file_bar_frame = tk.Frame(self.window,
                                       height=35,
                                       padx=5,
                                       background="gray30")
        self.file_bar_frame.pack(side="top", fill="x")
        self.file_bar_frame.pack_propagate(0)

        load = Image.open("toolbar/up_arrow.png")
        load = load.resize((20, 20))
        self.up_render = ImageTk.PhotoImage(load)

        self.up_dir = tk.Button(self.file_bar_frame,
                                image=self.up_render,
                                background="gray75",
                                borderwidth=0,
                                command=self._chg_dir)
        self.up_dir.pack(side="left")

        self.file_bar = tk.Entry(self.file_bar_frame,
                                 width=95,
                                 font=("Ariel", 12))
        self.file_bar.pack(side="left")

        self.file_bar.bind("<FocusIn>",
                           lambda x: self.window.unbind("<BackSpace>"))
        self.file_bar.bind(
            "<FocusOut>",
            lambda x: self.window.bind("<BackSpace>", self._chg_dir))

        self.go_button = tk.Button(
            self.file_bar_frame,
            text="Go!",
            font=("Ariel", 10),
            borderwidth=0,
            background="gray75",
            command=lambda: self._go_click(self.file_bar.get()),
            activebackground="gray45")
        self.go_button.pack(side="left")
        self.file_bar.bind("<Return>", lambda x: self.go_button.invoke())

        self.image_container_c = tk.Label(self.file_bar_frame,
                                          background="gray30",
                                          pady=5)
        self.image_container_c.pack(side="left")

        tk.Label(self.image_container_c, width=8,
                 background="gray30").pack(side="left")

        self.image_container = tk.Label(self.image_container_c,
                                        background="gray30",
                                        pady=5)
        self.image_container.pack(side="left")

        load = Image.open("toolbar/trash.png")
        load = load.resize((25, 25))
        trash_render = ImageTk.PhotoImage(load)
        self.file_option_trash = tk.Button(self.image_container,
                                           image=trash_render,
                                           width=25,
                                           height=25,
                                           borderwidth=0,
                                           background="gray75",
                                           activebackground="gray45",
                                           command=self._del_image)
        self.file_option_trash.pack(side="left")

        load = Image.open("toolbar/flip_trans.png")
        load = load.resize((25, 25))
        f_h_render = ImageTk.PhotoImage(load)
        self.flip_horizontal = tk.Button(
            self.image_container,
            image=f_h_render,
            height=25,
            width=25,
            borderwidth=0,
            background="gray75",
            activebackground="gray45",
            command=lambda: self.ID.flip("horizontal"))
        self.flip_horizontal.pack(side="left", anchor="center")

        load = load.rotate(90, Image.NEAREST, expand=1)
        f_v_render = ImageTk.PhotoImage(load)
        self.flip_vertical = tk.Button(
            self.image_container,
            image=f_v_render,
            height=25,
            width=25,
            borderwidth=0,
            background="gray75",
            activebackground="gray45",
            command=lambda: self.ID.flip("vertical"))
        self.flip_vertical.pack(side="left", anchor="center")

        load = Image.open("toolbar/rotate_trans.png")
        load = load.resize((25, 25))
        rotate_render = ImageTk.PhotoImage(load)
        self.file_option_rotate = tk.Button(
            self.image_container,
            image=rotate_render,
            width=25,
            height=25,
            borderwidth=0,
            background="gray75",
            activebackground="gray45",
            command=lambda: self.ID.rotate("ccw"))
        self.file_option_rotate.pack(side="left")

        load = load.transpose(Image.FLIP_LEFT_RIGHT)
        rotate_r_render = ImageTk.PhotoImage(load)
        self.file_option_rotate_r = tk.Button(
            self.image_container,
            image=rotate_r_render,
            width=25,
            height=25,
            borderwidth=0,
            background="gray75",
            activebackground="gray45",
            command=lambda: self.ID.rotate("cw"))
        self.file_option_rotate_r.pack(side="left")

        tk.Label(self.image_container_c, width=8,
                 background="gray30").pack(side="left")

        self.zoom_container = tk.Label(self.image_container_c,
                                       background="gray30")
        self.zoom_container.pack(side="left")

        self.zoom_amount = tk.Entry(self.zoom_container,
                                    width=4,
                                    font=("Ariel", 14))
        self.zoom_amount.pack(side="left")

        self.zoom_amount.bind("<FocusIn>",
                              lambda x: self.window.unbind("<BackSpace>"))
        self.zoom_amount.bind(
            "<FocusOut>",
            lambda x: self.window.bind("<BackSpace>", self._chg_dir))

        load = Image.open("toolbar/zoom_trans.png")
        load = load.resize((25, 25))
        zoom_render = ImageTk.PhotoImage(load)
        self.file_option_zoom = tk.Button(self.zoom_container,
                                          image=zoom_render,
                                          width=25,
                                          height=25,
                                          borderwidth=0,
                                          background="gray75",
                                          activebackground="gray45",
                                          command=self._zoom,
                                          justify=tk.CENTER)
        self.file_option_zoom.pack(side="left")
        self.zoom_amount.bind("<Return>",
                              lambda x: self.file_option_zoom.invoke())

        self.slideshow_container = tk.Label(self.file_bar_frame,
                                            width=25,
                                            background="gray75")
        self.slideshow_container.pack(side="right")

        self.slideshow_play = tk.Button(
            self.slideshow_container,
            text="Start Slideshow!",
            font=("Ariel", 10),
            background="gray75",
            command=lambda: self._slideshow_click(self.open_file),
            activebackground="gray45",
            borderwidth=0)
        self.slideshow_play.pack()

        self.slideshow_stop = tk.Button(
            self.slideshow_container,
            text="Stop Slideshow!",
            font=("Ariel", 10),
            background="gray75",
            command=lambda: self._slideshow_click(self.open_file),
            activebackground="gray45",
            borderwidth=0)

        self.top_frame = tk.Frame(self.window, background="gray75")
        self.top_frame.pack(side="top")

        self.folder_frame = tk.Frame(self.top_frame,
                                     width=300,
                                     height=self.height + 4,
                                     borderwidth=2,
                                     relief="flat",
                                     background="gray30")
        self.folder_frame.pack(side="left", anchor="nw")
        self.folder_frame.pack_propagate(0)

        self.folder_text = tk.Text(self.folder_frame,
                                   background="gray75",
                                   relief="flat",
                                   wrap="none")
        self.folder_text.pack(expand=True, fill="both")

        self.folder_text.tag_config("blank",
                                    background="gray30",
                                    foreground="#A4541D",
                                    justify=tk.LEFT,
                                    font=("Ariel", 12, "bold"),
                                    spacing1="4",
                                    spacing2="4",
                                    spacing3="4",
                                    lmargin1="5")

        self.folder_text.tag_config("spacer",
                                    font=("Ariel", 1),
                                    background="gray30")

        self.folder_buttons = ButtonManager(self.folder_text)

        self.folder_scroll = tk.Scrollbar(self.folder_text)
        self.folder_scroll.pack(side="right", fill="y")

        self.folder_text.config(yscrollcommand=self.folder_scroll.set)
        self.folder_scroll.config(command=self.folder_text.yview)

        self.image_frame = tk.Frame(self.top_frame,
                                    height=self.height + 4,
                                    width=self.width + 4,
                                    borderwidth=2,
                                    relief="flat",
                                    background="gray10")
        self.image_frame.pack(side="left", expand=True, anchor=tk.CENTER)
        self.image_frame.pack_propagate(0)

        self.image_frame.bind("<Enter>", lambda x: self.file_options_enter())
        self.image_frame.bind("<Leave>", lambda x: self.file_options_exit())

        load = Image.open("toolbar/default_img.png")
        render = ImageTk.PhotoImage(load)
        """
        self.image_label = tk.Label(self.image_frame, image=render, height=946, width=1146, anchor="center",
                                    background="gray10", borderwidth=2, relief="flat")
        self.image_label.pack(fill="both", expand=True)
        """
        self.image_canvas = tk.Canvas(self.image_frame,
                                      height=self.height,
                                      width=self.width,
                                      background="gray10",
                                      borderwidth=2,
                                      relief="flat")
        self.image_canvas.pack(anchor=tk.CENTER, fill="both")
        self.image_canvas.create_image(self.width / 2,
                                       self.height / 2,
                                       image=render,
                                       anchor="center")

        self.ID = ImageDisplay(self.image_canvas, self.width, self.height)

        self.text_var = tk.StringVar()
        self.text_var.set("")
        self.file_count = tk.StringVar()
        self.file_count.set("")
        self.folder_count = tk.StringVar()
        self.folder_count.set("")
        self.file_name = tk.Frame(self.window, background="gray60")
        self.file_name.pack(side="bottom", fill="x")
        self.file_size = tk.StringVar()
        self.file_size.set("  0.00 MB")

        self.file_count_disp = tk.Label(self.file_name,
                                        textvariable=self.file_count,
                                        background="gray60",
                                        padx=4,
                                        justify=tk.LEFT,
                                        anchor="w",
                                        borderwidth=2,
                                        relief="sunken")
        self.file_count_disp.pack(side="left")

        self.folder_count_disp = tk.Label(self.file_name,
                                          textvariable=self.folder_count,
                                          background="gray60",
                                          padx=4,
                                          justify=tk.LEFT,
                                          anchor="w",
                                          borderwidth=2,
                                          relief="sunken")
        self.folder_count_disp.pack(side="left")

        self.file_link = tk.Label(self.file_name,
                                  textvariable=self.text_var,
                                  background="gray60",
                                  padx=4,
                                  justify=tk.LEFT,
                                  anchor="w",
                                  borderwidth=2,
                                  relief="sunken")
        self.file_link.pack(side="left", expand=True, fill="both")

        self.file_size_disp = tk.Label(self.file_name,
                                       textvariable=self.file_size,
                                       background="gray60",
                                       padx=4,
                                       justify=tk.LEFT,
                                       anchor="w",
                                       borderwidth=2,
                                       relief="sunken")
        self.file_size_disp.pack(side="right")

        if passed is None:
            self.link = os.getcwd()
            self.crawler = FileCrawler()
        else:
            self.link = passed
            self.crawler = FileCrawler(self.link)

        self.open_folder(self.link)
        self.file_bar.delete(0, tk.END)
        self.file_bar.insert(tk.INSERT, self.link)

        self.window.mainloop()
コード例 #3
0
ファイル: pySlitMask.py プロジェクト: swj1442291549/pysalt
    def __init__(self, parent=None, infile=None, inimage=None, center_ra=None, center_dec=None, position_angle=None):
        QtGui.QWidget.__init__(self, parent)
        
        #set up the main UI
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
#        OptimizeTab.__init__(self,self.ui)
        #set up the slitmask
        self.slitmask=SlitMask(center_ra=center_ra, center_dec=center_dec, position_angle=position_angle )
        self.slitlets=self.slitmask.slitlets

        #setup the image interaction
        self.imagedisplay=ImageDisplay(target='pySlitMask:5909')
        self.position_angle=position_angle 
        if inimage:
           self.loadimage(inimage)
        #set up some variables that will be needed later
        self.xmlfile=None
        self.fcfile=None

        #read in the input data if available
        self.infile=infile 
        if infile:
            self.ui.radioButtonInfo_Catalogue.setChecked(True)
            self.setmode2cat()
            self.entercatalog(infile)
            print self.slitmask.center_ra, self.slitmask.center_dec
            if self.slitmask.center_ra is None and self.slitmask.center_dec is None:
                self.slitmask.set_MaskPosition()
                self.displayfootprint()

            #if self.slitmask.center_ra and self.slitmask.center_dec:
                #self.imagedisplay.rssregion(self.slitmask.center_ra, self.slitmask.center_dec)
            
            self.ui.lineEditMain_CenRA.setText(str(self.slitmask.center_ra))
            self.ui.lineEditMain_CenDEC.setText(str(self.slitmask.center_dec))
            self.ui.lineEditMain_PA.setText(str(self.slitmask.position_angle))
            self.ui.lineEditMain_Equinox.setText(str(self.slitmask.equinox))
            
            self.ui.lineEditMain_TargetName.setText(self.slitmask.target_name)
            self.ui.lineEditMain_MaskName.setText(self.slitmask.mask_name)
            self.ui.lineEditInfo_Creator.setText(self.slitmask.creator)
            self.ui.lineEditInfo_Proposer.setText(self.slitmask.proposer)
            self.ui.lineEditInfo_ProposalCode.setText(self.slitmask.proposal_code)
        else:
            self.ui.radioButtonInfo_Catalogue.setChecked(False)
            self.ui.radioButtonInfo_Manual.setChecked(True)
            self.setmode2manual()
            self.ui.toolButtonCat_Load.setEnabled(True)



              #self.displayfootprint()

#        self.opttab = OptimizeTab()
        # setup default values for the optimizer
        self.opt_yspacing = 1.
        self.opt_iter = 10
        self.ui.lineEditOpt_Yspacing.setText(str(self.opt_yspacing))
        self.ui.lineEditOpt_Niter.setText(str(self.opt_iter))

#        self.slitmask.outFoV()
#        print self.slitlets.data['fov_flag']
#        self.updatetabs()
        #Listen to different signals

        #menu items
        QtCore.QObject.connect(self.ui.actionLoad_Catalogue, QtCore.SIGNAL("triggered()"), self.loadcatalog)
        QtCore.QObject.connect(self.ui.actionLoad_Image, QtCore.SIGNAL("triggered()"), self.loadimage)

        #main tabs
        QtCore.QObject.connect(self.ui.lineEditMain_CenRA, QtCore.SIGNAL("editingFinished()"), self.loadCenRA)
        QtCore.QObject.connect(self.ui.lineEditMain_CenDEC, QtCore.SIGNAL("editingFinished()"), self.loadCenDEC)
        QtCore.QObject.connect(self.ui.lineEditMain_PA, QtCore.SIGNAL("editingFinished()"), self.loadpositionangle)
        QtCore.QObject.connect(self.ui.lineEditMain_Equinox, QtCore.SIGNAL("editingFinished()"), self.loadequinox)
        QtCore.QObject.connect(self.ui.lineEditMain_TargetName, QtCore.SIGNAL("editingFinished()"), self.loadtargetname)
        QtCore.QObject.connect(self.ui.lineEditMain_MaskName, QtCore.SIGNAL("editingFinished()"), self.loadmaskname)
        
        #info tabs
        QtCore.QObject.connect(self.ui.lineEditInfo_ProposalCode, QtCore.SIGNAL("editingFinished()"), self.loadproposalcode)
        QtCore.QObject.connect(self.ui.lineEditInfo_Proposer, QtCore.SIGNAL("editingFinished()"), self.loadproposer)
        QtCore.QObject.connect(self.ui.lineEditInfo_Creator, QtCore.SIGNAL("editingFinished()"), self.loadcreator)

#        QtCore.QObject.connect(self.slitmask, SIGNAL('xmlloaded'), self.setcreator)

        QtCore.QObject.connect(self.ui.radioButtonInfo_Catalogue, QtCore.SIGNAL("clicked()"), self.setmode2cat)
        QtCore.QObject.connect(self.ui.radioButtonInfo_Manual, QtCore.SIGNAL("clicked()"), self.setmode2manual)
        QtCore.QObject.connect(self.ui.checkBoxInfo_CentroidOn, QtCore.SIGNAL("clicked()"), self.setmodecentroiding)

        
        
        #catalog tabs
        QtCore.QObject.connect(self.ui.toolButtonCat_Load, QtCore.SIGNAL("clicked(bool)"), self.loadcatalog)
        QtCore.QObject.connect(self.ui.pushButtonCat_AddSlits, QtCore.SIGNAL("clicked(bool)"), self.addslitfromcatalog)
        QtCore.QObject.connect(self.ui.pushButtonCat_Clear, QtCore.SIGNAL("clicked()"), self.clearContents)

        #slit tab
        QtCore.QObject.connect(self.ui.pushButtonSlit_ClearSlits, QtCore.SIGNAL("clicked()"), self.clearslittable)
        QtCore.QObject.connect(self.ui.pushButtonSlit_AddSlitImage, QtCore.SIGNAL("clicked()"), self.addslitletsfromimage)
        QtCore.QObject.connect(self.ui.pushButtonSlit_AddSlitfromCat, QtCore.SIGNAL("clicked()"), self.addslitletsfromcatalogue)
        QtCore.QObject.connect(self.ui.pushButtonSlit_AddSlit, QtCore.SIGNAL("clicked()"), self.addslitmanually)
        QtCore.QObject.connect(self.ui.pushButtonSlit_DeleteSlit, QtCore.SIGNAL("clicked()"), self.deleteslitmanually)
        QtCore.QObject.connect(self.ui.pushButtonSlit_DeleteSlitImage, QtCore.SIGNAL("clicked()"), self.deleteslitfromimage)
        QtCore.QObject.connect(self.ui.tableWidgetSlits, QtCore.SIGNAL("itemSelectionChanged()"), self.setposition)
        QtCore.QObject.connect(self.ui.tableWidgetSlits, QtCore.SIGNAL("cellChanged(int, int)"), self.slitchanged)

        #optimize tab
        QtCore.QObject.connect(self.ui.pushButtonOpt_Optimize, QtCore.SIGNAL("clicked()"), self.optimize)
        QtCore.QObject.connect(self.ui.lineEditOpt_Yspacing, QtCore.SIGNAL("editingFinished()"), self.setoptimizer_yspacing)
        QtCore.QObject.connect(self.ui.lineEditOpt_Niter, QtCore.SIGNAL("editingFinished()"), self.setoptimizer_iter)
        QtCore.QObject.connect(self.ui.checkBoxOpt_IncRefstars, QtCore.SIGNAL("stateChanged(int)"), self.includerefstars)
        QtCore.QObject.connect(self.ui.lineEditOpt_NumRefstars, QtCore.SIGNAL("editingFinished()"), self.setnumrefstars)

        #ref stars
        QtCore.QObject.connect(self.ui.pushButtonRef_ClearRefstars, QtCore.SIGNAL("clicked()"), self.clearrefstartable)
        QtCore.QObject.connect(self.ui.pushButtonRef_AddRefstarImage, QtCore.SIGNAL("clicked()"), self.addslitletsfromimage)
        QtCore.QObject.connect(self.ui.pushButtonRef_AddRefstarsfromCat, QtCore.SIGNAL("clicked()"), self.addrefstarsfromcatalogue)
        QtCore.QObject.connect(self.ui.pushButtonRef_AddRefstar, QtCore.SIGNAL("clicked()"), self.addrefstarmanually)
        QtCore.QObject.connect(self.ui.pushButtonRef_DeleteRefstar, QtCore.SIGNAL("clicked()"), self.deleterefstarmanually)
        QtCore.QObject.connect(self.ui.pushButtonRef_DeleteRefstar_2, QtCore.SIGNAL("clicked()"), self.deleteslitfromimage)
        QtCore.QObject.connect(self.ui.tableWidgetRefstars, QtCore.SIGNAL(" itemSelectionChanged()"), self.setrefposition)
        QtCore.QObject.connect(self.ui.tableWidgetRefstars, QtCore.SIGNAL("cellChanged(int, int)"), self.refchanged)

        # finalize tab
        QtCore.QObject.connect(self.ui.pushButtonFin_Validate, QtCore.SIGNAL("clicked(bool)"),self.validator)
        QtCore.QObject.connect(self.ui.pushButtonFin_WriteXML, QtCore.SIGNAL("clicked(bool)"), self.writexml)
        QtCore.QObject.connect(self.ui.toolButtonFin_WriteRSMT, QtCore.SIGNAL("clicked(bool)"), self.writersmt)
        QtCore.QObject.connect(self.ui.pushButtonFin_CreateFChart_Current, QtCore.SIGNAL("clicked(bool)"), self.writeFC_Current)
        QtCore.QObject.connect(self.ui.pushButtonFin_CreateFChart_DSS, QtCore.SIGNAL("clicked(bool)"), self.writeFC_DSS)

 
        self.ui.tabWidget.setCurrentIndex(0)