Esempio n. 1
0
    def __init__(self):
        super(MainWindow, self).__init__()

        # include components
        self.titleBar = CustomBar(self)
        self.sidBar = SideBar()
        self.container = pagesWidget()

        # line Decoration
        line1 = QFrame()
        line1.setStyleSheet("background-color: #FFB300;")
        line1.setObjectName("Vline")
        line1.setMinimumHeight(2)

        # Main window layout
        mainLayout = QVBoxLayout()
        mainLayout.setContentsMargins(0, 0, 0, 0)
        mainLayout.setSpacing(0)

        # custom bar layout
        TitleBarLayout = QVBoxLayout()
        TitleBarLayout.setContentsMargins(0, 0, 0, 0)
        TitleBarLayout.addWidget(self.titleBar)
        TitleBarLayout.addWidget(line1)
        mainLayout.addLayout(TitleBarLayout)

        BodyContentLayout = QHBoxLayout()
        BodyContentLayout.addWidget(self.sidBar)
        BodyContentLayout.addWidget(self.container)
        BodyContentLayout.setContentsMargins(0, 0, 0, 0)
        mainLayout.addLayout(BodyContentLayout)

        # Set Minimum size of window
        self.setMinimumSize(700, 500)

        # Get Frame less window
        self.setWindowFlags(Qt.FramelessWindowHint | Qt.CustomizeWindowHint)

        # Create Widget to add Layout
        widget = QWidget()
        widget.setLayout(mainLayout)
        self.setCentralWidget(widget)

        # Database Status
        label_db = QLabel()
        self.container.db_status.setText("No Database Connection!")
        self.container.horizontalLayout_db_btn.addWidget(label_db)

        # Buttons Clicked Signal
        self.titleBar.btn_close.clicked.connect(self.close)
        self.titleBar.btn_max.clicked.connect(self.windowResize)
        self.titleBar.btn_min.clicked.connect(self.showMinimized)
        self.sidBar.DataBase.clicked.connect(self.setCustomersPage)
        self.sidBar.About.clicked.connect(self.setAboutPage)
Esempio n. 2
0
class DataBrowserMain(QWidget):
    sliceUpdated = Signal(int, int, int, int)

    def __init__(self, parent):
        super(DataBrowserMain, self).__init__(parent)

        # data import
        self.brkraw_obj = self.parent().brkraw_obj
        self.selectedScan = None
        self.selectedScanTR = None

        self.set_viewer_frame()
        self.set_controller_frame()
        self.set_gridlayouts()
        self.set_font()
        # self.set_palette()  # TODO
        self.set_size()
        self.set_objectnames()
        self.set_texts()
        self.ratio_container = []
        self.init_connection()
        self.inactivate_widgets()  # Inactivate during startup

    def init_connection(self):
        self.parent().dataSelected.connect(
            self.selectScanEvent)  # run selectScanEvent when data selected
        self.event_timer = QTimer()
        self.event_timer.timeout.connect(self.sliceUpdateEvent)  #
        self.sliceUpdated.connect(self.updateImage)

        self.xaxis_slider.valueChanged.connect(self.xaxis_spinbox.setValue)
        self.xaxis_spinbox.valueChanged.connect(self.xaxis_slider.setValue)
        self.yaxis_slider.valueChanged.connect(self.yaxis_spinbox.setValue)
        self.yaxis_spinbox.valueChanged.connect(self.yaxis_slider.setValue)
        self.zaxis_slider.valueChanged.connect(self.zaxis_spinbox.setValue)
        self.zaxis_spinbox.valueChanged.connect(self.zaxis_slider.setValue)
        self.frame_slider.valueChanged.connect(self.frame_spinbox.setValue)
        self.frame_spinbox.valueChanged.connect(self.frame_slider.setValue)

        self.axial_view.pointed.connect(self.axialview_pointing_event)
        self.sagittal_view.pointed.connect(self.sagittalview_pointing_event)
        self.coronal_view.pointed.connect(self.coronalview_pointing_event)

        self.connect_sliders_to_update()

    def sagittalview_pointing_event(self, pos_x, pos_y, meta):
        max_x = self.yaxis_slider.maximum()
        max_y = self.zaxis_slider.maximum()

        # print(pos_x, pos_y, max_x, max_y)
        self.yaxis_slider.setValue(int(max_x * pos_x))
        self.zaxis_slider.setValue(max_y - int(max_y * pos_y))
        # print(int(max_x * pos_x), int(max_y * pos_y))

    def axialview_pointing_event(self, pos_x, pos_y, meta):
        max_x = self.yaxis_slider.maximum()
        max_y = self.xaxis_slider.maximum()

        # print(pos_x, pos_y, max_x, max_y)
        self.yaxis_slider.setValue(int(max_x * pos_x))
        self.xaxis_slider.setValue(int(max_y * pos_y))
        # print(int(max_x * pos_x), int(max_y * pos_y))

    def coronalview_pointing_event(self, pos_x, pos_y, meta):
        max_x = self.xaxis_slider.maximum()
        max_y = self.zaxis_slider.maximum()

        # print(pos_x, pos_y, max_x, max_y)
        self.xaxis_slider.setValue(int(max_x * pos_x))
        self.zaxis_slider.setValue(max_y - int(max_y * pos_y))
        # print(int(max_x * pos_x), int(max_y * pos_y))

    def sliderChangeEvent(self):
        self.event_timer.start(10)

    def sliceUpdateEvent(self):
        # This will executed only when timer timeout
        x = self.xaxis_slider.value()
        y = self.yaxis_slider.value()
        z = self.zaxis_slider.value()
        t = self.frame_slider.value()
        self.sliceUpdated.emit(x, y, z, t)
        self.event_timer.stop()

    @staticmethod
    def slice_data(dataobj, slice_orient, slice_num):
        if slice_orient == 'axial':
            sliced_data = dataobj[:, :, slice_num]
        elif slice_orient == 'sagittal':
            sliced_data = dataobj[:, slice_num, ::-1]
        elif slice_orient == 'coronal':
            sliced_data = dataobj[slice_num, :, ::-1]
        else:
            popup_error_dialog(UnexpectedError.message)
            return None
        return sliced_data

    def updateImage(self, x, y, z, frame):
        if len(self.selectedScan.shape) == 4:
            dataobj = self.selectedScan[:, :, :, frame]
        else:
            dataobj = self.selectedScan[...]

        data_xy = self.slice_data(dataobj, 'axial', z)
        data_yz = self.slice_data(dataobj, 'sagittal', x)
        data_xz = self.slice_data(dataobj, 'coronal', y)
        ratio_xy, ratio_yz, ratio_xz = self.ratio_container
        # ratio_xy, ratio_yz, ratio_xz = 1, 1, 1

        qm_xy = convert_arr2qpixmap(data_xy, ratio_xy)
        qm_yz = convert_arr2qpixmap(data_yz, ratio_yz)
        qm_xz = convert_arr2qpixmap(data_xz, ratio_xz)

        self.axial_view.setPixmap(qm_xy)
        self.sagittal_view.setPixmap(qm_yz)
        self.coronal_view.setPixmap(qm_xz)

    def selectScanEvent(self, delivery_package: list):
        """ this event is occurring when a scan selected on scanlist """
        self.axial_view.setEnabled(True)
        self.sagittal_view.setEnabled(True)
        self.coronal_view.setEnabled(True)
        self.selectedScan, affine, resol, self.selectedScanTR, is_localizer = delivery_package
        self.selectedScanTR /= 1000

        from slfmri.imgman import reorient_to_ras, determine_slice_plane
        slice_plane_ref = dict(sagittal=0, coronal=1, axial=2)

        if is_localizer:
            img_container = dict()
            for i, aff in enumerate(affine):
                size = config.get('ImageViewer', 'size')
                data = self.selectedScan[..., i]
                slice_plane = determine_slice_plane(2, aff, resol)
                ras_data, ras_resol = reorient_to_ras(data[:, :, np.newaxis],
                                                      aff, resol)
                slice_axis = slice_plane_ref[slice_plane]
                ras_data = ras_data.mean(slice_axis)
                ras_resol = np.delete(ras_resol, slice_axis)
                qpixmap = convert_arr2qpixmap(ras_data, ras_resol, size)
                img_container[slice_plane] = qpixmap

            self.update_axisview(img_container)
        else:
            # other than localizer
            self.init_data(self.selectedScan)
            matrix_size = np.asarray(self.selectedScan.shape)
            resol = np.asarray(resol)
            fov = matrix_size[:3] * resol
            self.ratio_container = [
                fov[0] / fov[1], fov[1] / fov[2], fov[0] / fov[2]
            ]
            # reset value
            init_x, init_y, init_z = (np.asarray(self.selectedScan.shape[:3]) /
                                      2.0).astype(int)
            init_f = 0

            self.disconnect_sliders_to_update()
            self.xaxis_slider.setValue(init_x)
            self.yaxis_slider.setValue(init_y)
            self.zaxis_slider.setValue(init_z)
            self.frame_slider.setValue(init_f)
            self.connect_sliders_to_update()
            self.updateImage(init_x, init_y, init_z, init_f)

    def connect_sliders_to_update(self):
        # connect to check slice update
        self.xaxis_slider.valueChanged.connect(self.sliderChangeEvent)
        self.yaxis_slider.valueChanged.connect(self.sliderChangeEvent)
        self.zaxis_slider.valueChanged.connect(self.sliderChangeEvent)
        self.frame_slider.valueChanged.connect(self.sliderChangeEvent)

    def disconnect_sliders_to_update(self):
        # disconnect to check slice update
        self.xaxis_slider.valueChanged.disconnect(self.sliderChangeEvent)
        self.yaxis_slider.valueChanged.disconnect(self.sliderChangeEvent)
        self.zaxis_slider.valueChanged.disconnect(self.sliderChangeEvent)
        self.frame_slider.valueChanged.disconnect(self.sliderChangeEvent)

    def init_data(self, dataobj):
        self.slicecontrol_pane.setEnabled(True)
        dim = len(dataobj.shape)
        if dim == 3:
            size_x, size_y, size_z = dataobj.shape
            size_frame = None
        elif dim == 4:
            size_x, size_y, size_z, size_frame = dataobj.shape
        else:
            popup_error_dialog(UnexpectedError.message)
            return None

        # init sliders and spinboxes
        self.xaxis_slider.setRange(0, size_x - 1)
        self.yaxis_slider.setRange(0, size_y - 1)
        self.zaxis_slider.setRange(0, size_z - 1)

        self.xaxis_spinbox.setRange(0, size_x - 1)
        self.yaxis_spinbox.setRange(0, size_y - 1)
        self.zaxis_spinbox.setRange(0, size_z - 1)

        if dim == 3:
            self.frame_label.setDisabled(True)
            self.frame_slider.setDisabled(True)
            self.frame_spinbox.setDisabled(True)
        else:
            self.frame_label.setEnabled(True)
            self.frame_slider.setEnabled(True)
            self.frame_spinbox.setEnabled(True)
            self.frame_slider.setRange(0, size_frame - 1)
            self.frame_spinbox.setRange(0, size_frame - 1)

    def update_axisview(self, img_container: dict):
        for view_plane, pixmap in img_container.items():
            if view_plane == 'axial':
                self.axial_view.setPixmap(pixmap)
            elif view_plane == 'sagittal':
                self.sagittal_view.setPixmap(pixmap)
            else:
                self.coronal_view.setPixmap(pixmap)

    def inactivate_widgets(self):
        self.slicecontrol_pane.setDisabled(True)
        self.graph_frame.setDisabled(True)

    def set_navigationmode(self):
        # mouse click will navigate slice.
        pass

    def set_drawingmode(self):
        # roi drawing function
        pass

    def mask_data_handler(self):
        # mask later handler
        pass

    def slider_event_related(self):
        # slider for slicing.
        pass

    def set_viewer_frame(self):
        self.imageframe = QFrame(self)
        self.axial_view = SliceViewer(self.imageframe)
        self.axial_view.setDisabled(True)
        self.sagittal_view = SliceViewer(self.imageframe)
        self.sagittal_view.setDisabled(True)
        self.coronal_view = SliceViewer(self.imageframe)
        self.coronal_view.setDisabled(True)

        # TODO: Will reactivate these on later version
        # self.axial_title = QLabel(self.imageframe)
        # self.coronal_title = QLabel(self.imageframe)
        # self.sagittal_title = QLabel(self.imageframe)
        #
        # self.axialL_label = QLabel(self.imageframe)
        # self.axialA_label = QLabel(self.imageframe)
        # self.axialR_label = QLabel(self.imageframe)
        # self.axialP_label = QLabel(self.imageframe)
        #
        # self.sagittalS_label = QLabel(self.imageframe)
        # self.sagittalA_label = QLabel(self.imageframe)
        # self.sagittalI_label = QLabel(self.imageframe)
        # self.sagittalP_label = QLabel(self.imageframe)
        #
        # self.coronalL_label = QLabel(self.imageframe)
        # self.coronalS_label = QLabel(self.imageframe)
        # self.coronalR_label = QLabel(self.imageframe)
        # self.coronalI_label = QLabel(self.imageframe)
        #
        # self.axial_title.setTextFormat(Qt.MarkdownText)
        # self.axialL_label.setTextFormat(Qt.MarkdownText)
        # self.axialA_label.setTextFormat(Qt.MarkdownText)
        # self.axialR_label.setTextFormat(Qt.MarkdownText)
        # self.axialP_label.setTextFormat(Qt.MarkdownText)
        #
        # self.sagittal_title.setTextFormat(Qt.MarkdownText)
        # self.sagittalS_label.setTextFormat(Qt.MarkdownText)
        # self.sagittalA_label.setTextFormat(Qt.MarkdownText)
        # self.sagittalI_label.setTextFormat(Qt.MarkdownText)
        # self.sagittalP_label.setTextFormat(Qt.MarkdownText)
        #
        # self.coronal_title.setTextFormat(Qt.MarkdownText)
        # self.coronalL_label.setTextFormat(Qt.MarkdownText)
        # self.coronalS_label.setTextFormat(Qt.MarkdownText)
        # self.coronalR_label.setTextFormat(Qt.MarkdownText)
        # self.coronalI_label.setTextFormat(Qt.MarkdownText)
        #
        # self.axial_title.setAlignment(Qt.AlignCenter)
        # self.axialL_label.setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter)
        # self.axialA_label.setAlignment(Qt.AlignBottom | Qt.AlignHCenter)
        # self.axialR_label.setAlignment(Qt.AlignLeading | Qt.AlignLeft | Qt.AlignVCenter)
        # self.axialP_label.setAlignment(Qt.AlignHCenter | Qt.AlignTop)
        #
        # self.sagittal_title.setAlignment(Qt.AlignCenter)
        # self.sagittalS_label.setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter)
        # self.sagittalA_label.setAlignment(Qt.AlignBottom | Qt.AlignHCenter)
        # self.sagittalI_label.setAlignment(Qt.AlignLeading | Qt.AlignLeft | Qt.AlignVCenter)
        # self.sagittalP_label.setAlignment(Qt.AlignHCenter | Qt.AlignTop)
        #
        # self.coronal_title.setAlignment(Qt.AlignCenter)
        # self.coronalL_label.setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter)
        # self.coronalS_label.setAlignment(Qt.AlignBottom | Qt.AlignHCenter)
        # self.coronalR_label.setAlignment(Qt.AlignLeading | Qt.AlignLeft | Qt.AlignVCenter)
        # self.coronalI_label.setAlignment(Qt.AlignHCenter | Qt.AlignTop)

    def set_controller_frame(self):
        self.controller_frame = QFrame(self)
        self.slicecontrol_pane = QGroupBox(self.controller_frame)
        self.frame_spinbox = QSpinBox(self.slicecontrol_pane)

        self.xaxis_label = QLabel(self.slicecontrol_pane)
        self.yaxis_label = QLabel(self.slicecontrol_pane)
        self.zaxis_label = QLabel(self.slicecontrol_pane)
        self.frame_label = QLabel(self.slicecontrol_pane)

        self.xaxis_slider = QSlider(self.slicecontrol_pane)
        self.yaxis_slider = QSlider(self.slicecontrol_pane)
        self.zaxis_slider = QSlider(self.slicecontrol_pane)
        self.frame_slider = QSlider(self.slicecontrol_pane)

        self.xaxis_spinbox = QSpinBox(self.slicecontrol_pane)
        self.yaxis_spinbox = QSpinBox(self.slicecontrol_pane)
        self.zaxis_spinbox = QSpinBox(self.slicecontrol_pane)

        self.graph_frame = QFrame(self)
        self.graph_view = pg.PlotWidget(self.graph_frame)
        self.graph_view.setBackground('w')

        # TODO: Will reactivate these on later version
        # self.graph_view = QGraphicsView(self.graph_frame)
        # self.graphcontrol_pane = QGroupBox(self.graph_frame)
        # self.addmask_button = QPushButton(self.graphcontrol_pane)
        # self.removemask_button = QPushButton(self.graphcontrol_pane)
        # self.mask_listview = QListView(self.graphcontrol_pane)
        # self.savepng_button = QPushButton(self.graphcontrol_pane)
        # self.savecsv_button = QPushButton(self.graphcontrol_pane)

        self.axial_view.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
        self.sagittal_view.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
        self.coronal_view.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter)

        self.xaxis_slider.setOrientation(Qt.Horizontal)
        self.yaxis_slider.setOrientation(Qt.Horizontal)
        self.zaxis_slider.setOrientation(Qt.Horizontal)
        self.frame_slider.setOrientation(Qt.Horizontal)

        self.slicecontrol_pane.setAlignment(Qt.AlignCenter)
        self.xaxis_label.setAlignment(Qt.AlignCenter)
        self.yaxis_label.setAlignment(Qt.AlignCenter)
        self.zaxis_label.setAlignment(Qt.AlignCenter)
        self.frame_label.setAlignment(Qt.AlignCenter)
        # TODO: Will reactivate these on later version
        # self.graphcontrol_pane.setAlignment(Qt.AlignCenter)

    def set_size(self):
        size = int(config.get('ImageViewer', 'size'))
        self.imageframe.setLineWidth(0)
        self.axial_view.setMinimumSize(QSize(size, size))
        self.axial_view.setMaximumSize(QSize(size, size))
        self.axial_view.setLineWidth(0)
        self.sagittal_view.setMinimumSize(QSize(size, size))
        self.sagittal_view.setMaximumSize(QSize(size, size))
        self.sagittal_view.setLineWidth(0)
        self.coronal_view.setMinimumSize(QSize(size, size))
        self.coronal_view.setMaximumSize(QSize(size, size))
        self.coronal_view.setLineWidth(0)

        # TODO: Will reactivate these on later version
        # self.axialL_label.setMinimumSize(QSize(20, 0))
        # self.axialA_label.setMinimumSize(QSize(0, 20))
        # self.axialR_label.setMinimumSize(QSize(20, 0))
        # self.axialP_label.setMinimumSize(QSize(0, 20))
        # self.sagittalS_label.setMinimumSize(QSize(20, 0))
        # self.sagittalA_label.setMinimumSize(QSize(0, 20))
        # self.sagittalI_label.setMinimumSize(QSize(20, 0))
        # self.sagittalP_label.setMinimumSize(QSize(0, 20))
        # self.coronalL_label.setMinimumSize(QSize(20, 0))
        # self.coronalS_label.setMinimumSize(QSize(0, 20))
        # self.coronalR_label.setMinimumSize(QSize(20, 0))
        # self.coronalI_label.setMinimumSize(QSize(0, 20))

        self.controller_frame.setMinimumSize(QSize(300, 300))
        self.controller_frame.setMaximumSize(QSize(400, 300))
        self.graph_frame.setMinimumSize(QSize(0, 300))
        self.graph_frame.setMaximumSize(QSize(4000, 4000))
        self.graph_view.setMaximumSize(QSize(4000, 600))

        # TODO: Will reactivate these on later version
        # self.graphcontrol_pane.setMinimumSize(QSize(300, 0))
        # self.graphcontrol_pane.setMaximumSize(QSize(300, 4000))
        # self.addmask_button.setMinimumSize(QSize(30, 0))
        # self.addmask_button.setMaximumSize(QSize(30, 4000))
        # self.removemask_button.setMinimumSize(QSize(30, 0))
        # self.removemask_button.setMaximumSize(QSize(30, 4000))

    def set_font(self):
        self.arial_8 = QFont()
        self.arial_8.setFamily(u"Arial")
        self.arial_8.setPointSize(8)
        self.setFont(self.arial_8)
        # TODO: Will reactivate these on later version
        # self.axial_title.setFont(self.arial_8)
        # self.coronal_title.setFont(self.arial_8)
        # self.sagittal_title.setFont(self.arial_8)
        # self.axialL_label.setFont(self.arial_8)
        # self.axialA_label.setFont(self.arial_8)
        # self.axialR_label.setFont(self.arial_8)
        # self.axialP_label.setFont(self.arial_8)
        # self.sagittalS_label.setFont(self.arial_8)
        # self.sagittalA_label.setFont(self.arial_8)
        # self.sagittalI_label.setFont(self.arial_8)
        # self.sagittalP_label.setFont(self.arial_8)
        # self.coronalL_label.setFont(self.arial_8)
        # self.coronalS_label.setFont(self.arial_8)
        # self.coronalR_label.setFont(self.arial_8)
        # self.coronalI_label.setFont(self.arial_8)
        self.slicecontrol_pane.setFont(self.arial_8)

        # TODO: Will reactivate these on later version
        # self.xaxis_label.setFont(self.arial_8)
        # self.yaxis_label.setFont(self.arial_8)
        # self.zaxis_label.setFont(self.arial_8)
        # self.frame_label.setFont(self.arial_8)
        # self.graphcontrol_pane.setFont(self.arial_8)
        # self.addmask_button.setFont(self.arial_8)
        # self.removemask_button.setFont(self.arial_8)
        # self.savepng_button.setFont(self.arial_8)
        # self.savecsv_button.setFont(self.arial_8)

    def set_palette(self):
        # Brush
        gray_text = QBrush(QColor(171, 171, 171, 255))
        gray_text.setStyle(Qt.SolidPattern)
        black_background = QBrush(QColor(0, 0, 0, 255))
        black_background.setStyle(Qt.SolidPattern)

        self.orientation_label_palette = QPalette()
        self.orientation_label_palette.setBrush(QPalette.Active,
                                                QPalette.WindowText, gray_text)
        self.orientation_label_palette.setBrush(QPalette.Inactive,
                                                QPalette.WindowText, gray_text)
        self.orientation_label_palette.setBrush(QPalette.Disabled,
                                                QPalette.WindowText, gray_text)
        self.ortho_viewer_palette = QPalette()
        self.ortho_viewer_palette.setBrush(QPalette.Active, QPalette.Base,
                                           black_background)
        self.ortho_viewer_palette.setBrush(QPalette.Inactive, QPalette.Base,
                                           black_background)
        self.ortho_viewer_palette.setBrush(QPalette.Disabled, QPalette.Base,
                                           black_background)

        self.axialA_label.setPalette(self.orientation_label_palette)
        self.axialL_label.setPalette(self.orientation_label_palette)
        self.axialR_label.setPalette(self.orientation_label_palette)
        self.axialP_label.setPalette(self.orientation_label_palette)
        self.axial_view.setPalette(self.ortho_viewer_palette)
        self.sagittalS_label.setPalette(self.orientation_label_palette)
        self.sagittalA_label.setPalette(self.orientation_label_palette)
        self.sagittalI_label.setPalette(self.orientation_label_palette)
        self.sagittalP_label.setPalette(self.orientation_label_palette)
        self.sagittal_view.setPalette(self.ortho_viewer_palette)
        self.coronalL_label.setPalette(self.orientation_label_palette)
        self.coronalS_label.setPalette(self.orientation_label_palette)
        self.coronalR_label.setPalette(self.orientation_label_palette)
        self.coronalI_label.setPalette(self.orientation_label_palette)
        self.coronal_view.setPalette(self.ortho_viewer_palette)

    def set_gridlayouts(self):
        self.axial_gridLayout = QGridLayout()
        self.coronal_gridLayout = QGridLayout()
        self.sagittal_gridLayout = QGridLayout()
        self.imagecont_gridLayout = QGridLayout(self.slicecontrol_pane)
        self.imageframe_gridLayout = QGridLayout(self.imageframe)
        # self.graphcontrol_gridLayout = QGridLayout(self.graphcontrol_pane)
        self.verticalLayout = QVBoxLayout(self.controller_frame)
        self.horizontalLayout = QHBoxLayout(self.graph_frame)
        self.main_gridLayout = QGridLayout(self)
        # TODO: Will reactivate these on later version
        # self.imageframe_gridLayout.addWidget(self.axial_title, 0, 1, 1, 1)
        # self.imageframe_gridLayout.addWidget(self.coronal_title, 0, 2, 1, 1)
        # self.imageframe_gridLayout.addWidget(self.sagittal_title, 0, 0, 1, 1)
        # self.axial_gridLayout.addWidget(self.axialL_label, 1, 0, 1, 1)
        # self.axial_gridLayout.addWidget(self.axialA_label, 0, 1, 1, 1)
        # self.axial_gridLayout.addWidget(self.axialR_label, 1, 2, 1, 1)
        # self.axial_gridLayout.addWidget(self.axialP_label, 2, 1, 1, 1)
        self.axial_gridLayout.addWidget(self.axial_view, 1, 1, 1, 1)
        # self.sagittal_gridLayout.addWidget(self.sagittalS_label, 1, 0, 1, 1)
        # self.sagittal_gridLayout.addWidget(self.sagittalA_label, 0, 1, 1, 1)
        # self.sagittal_gridLayout.addWidget(self.sagittalI_label, 1, 2, 1, 1)
        # self.sagittal_gridLayout.addWidget(self.sagittalP_label, 2, 1, 1, 1)
        self.sagittal_gridLayout.addWidget(self.sagittal_view, 1, 1, 1, 1)
        # self.coronal_gridLayout.addWidget(self.coronalL_label, 1, 0, 1, 1)
        # self.coronal_gridLayout.addWidget(self.coronalS_label, 0, 1, 1, 1)
        # self.coronal_gridLayout.addWidget(self.coronalR_label, 1, 2, 1, 1)
        # self.coronal_gridLayout.addWidget(self.coronalI_label, 2, 1, 1, 1)
        self.coronal_gridLayout.addWidget(self.coronal_view, 1, 1, 1, 1)
        self.imagecont_gridLayout.addWidget(self.xaxis_label, 0, 0, 1, 1)
        self.imagecont_gridLayout.addWidget(self.xaxis_slider, 0, 1, 1, 1)
        self.imagecont_gridLayout.addWidget(self.xaxis_spinbox, 0, 2, 1, 1)
        self.imagecont_gridLayout.addWidget(self.yaxis_label, 1, 0, 1, 1)
        self.imagecont_gridLayout.addWidget(self.yaxis_slider, 1, 1, 1, 1)
        self.imagecont_gridLayout.addWidget(self.yaxis_spinbox, 1, 2, 1, 1)
        self.imagecont_gridLayout.addWidget(self.zaxis_label, 2, 0, 1, 1)
        self.imagecont_gridLayout.addWidget(self.zaxis_slider, 2, 1, 1, 1)
        self.imagecont_gridLayout.addWidget(self.zaxis_spinbox, 2, 2, 1, 1)
        self.imagecont_gridLayout.addWidget(self.frame_label, 3, 0, 1, 1)
        self.imagecont_gridLayout.addWidget(self.frame_slider, 3, 1, 1, 1)
        self.imagecont_gridLayout.addWidget(self.frame_spinbox, 3, 2, 1, 1)
        self.imageframe_gridLayout.addLayout(self.axial_gridLayout, 1, 1, 1, 1)
        self.imageframe_gridLayout.addLayout(self.coronal_gridLayout, 1, 2, 1,
                                             1)
        self.imageframe_gridLayout.addLayout(self.sagittal_gridLayout, 1, 0, 1,
                                             1)
        # self.graphcontrol_gridLayout.addWidget(self.addmask_button, 3, 0, 1, 1)
        # self.graphcontrol_gridLayout.addWidget(self.removemask_button, 3, 1, 1, 1)
        # self.graphcontrol_gridLayout.addWidget(self.mask_listview, 0, 0, 1, 5)
        # self.graphcontrol_gridLayout.addWidget(self.savepng_button, 3, 4, 1, 1)
        # self.graphcontrol_gridLayout.addWidget(self.savecsv_button, 3, 3, 1, 1)
        self.verticalLayout.addWidget(self.slicecontrol_pane)
        self.horizontalLayout.addWidget(self.graph_view)
        # self.horizontalLayout.addWidget(self.graphcontrol_pane)
        self.main_gridLayout.addWidget(self.imageframe, 0, 0, 1, 2)
        self.main_gridLayout.addWidget(self.controller_frame, 1, 0, 1, 1)
        self.main_gridLayout.addWidget(self.graph_frame, 1, 1, 1, 1)

    def set_objectnames(self):
        self.setObjectName(u"data_browser")
        self.imageframe.setObjectName(u"image_frame")
        self.axial_gridLayout.setObjectName(u"axial_gridLayout")
        self.coronal_gridLayout.setObjectName(u"coronal_gridLayout")
        self.sagittal_gridLayout.setObjectName(u"sagittal_gridLayout")
        # TODO: Will reactivate these on later version
        # self.axial_title.setObjectName(u"axial_label")
        # self.coronal_title.setObjectName(u"coronal_label")
        # self.sagittal_title.setObjectName(u"sagittal_label")
        self.axial_view.setObjectName(u"axial_view")
        self.sagittal_view.setObjectName(u"sagittal_view")
        self.coronal_view.setObjectName(u"coronal_view")
        # self.axialL_label.setObjectName(u"axialL_label")
        # self.axialR_label.setObjectName(u"axialR_label")
        # self.axialA_label.setObjectName(u"axialA_label")
        # self.axialP_label.setObjectName(u"axialP_label")
        # self.sagittalS_label.setObjectName(u"sagittalS_label")
        # self.sagittalA_label.setObjectName(u"sagittalA_label")
        # self.sagittalI_label.setObjectName(u"sagittalI_label")
        # self.sagittalP_label.setObjectName(u"sagittalP_label")
        # self.coronalL_label.setObjectName(u"coronalL_label")
        # self.coronalS_label.setObjectName(u"coronalS_label")
        # self.coronalR_label.setObjectName(u"coronalR_label")
        # self.coronalI_label.setObjectName(u"coronalI_label")
        self.controller_frame.setObjectName(u"controller_frame")
        self.slicecontrol_pane.setObjectName(u"slicecontrol_pane")
        self.xaxis_label.setObjectName(u"xaxis_label")
        self.xaxis_slider.setObjectName(u"xaxis_slider")
        self.xaxis_spinbox.setObjectName(u"xaxis_spinbox")
        self.yaxis_label.setObjectName(u"yaxis_label")
        self.yaxis_slider.setObjectName(u"yaxis_slider")
        self.yaxis_spinbox.setObjectName(u"yaxis_spinbox")
        self.zaxis_label.setObjectName(u"zaxis_label")
        self.zaxis_slider.setObjectName(u"zaxis_slider")
        self.zaxis_spinbox.setObjectName(u"zaxis_spinbox")
        self.frame_label.setObjectName(u"frame_label")
        self.frame_slider.setObjectName(u"frame_slider")
        self.frame_spinbox.setObjectName(u"frame_spinbox")
        self.graph_frame.setObjectName(u"graph_frame")
        self.graph_view.setObjectName(u"graph_view")
        # TODO: Will reactivate these on later version
        # self.graphcontrol_pane.setObjectName(u"graphcontrol_pane")
        # self.addmask_button.setObjectName(u"addmask_button")
        # self.removemask_button.setObjectName(u"removemask_button")
        # self.mask_listview.setObjectName(u"mask_listview")
        # self.savepng_button.setObjectName(u"savepng_button")
        # self.savecsv_button.setObjectName(u"savecsv_button")
        self.imagecont_gridLayout.setObjectName(u"imagecont_gridLayout")
        self.imageframe_gridLayout.setObjectName(u"imageframe_gridLayout")
        # self.graphcontrol_gridLayout.setObjectName(u"graphcontrol_gridLayout")
        self.verticalLayout.setObjectName(u"verticalLayout")
        self.horizontalLayout.setObjectName(u"horizontalLayout")
        self.main_gridLayout.setObjectName(u"main_gridLayout")
        QMetaObject.connectSlotsByName(self)

    def set_texts(self):
        self.setWindowTitle(u"Data Browser")
        # TODO: Will reactivate these on later version
        # self.axial_title.setText(u"**Axial**")
        # self.coronal_title.setText(u"**Coronal**")
        # self.sagittal_title.setText(u"**Sagittal**")
        # self.sagittalS_label.setText(u"**S**")
        # self.sagittalA_label.setText(u"**A**")
        # self.sagittalI_label.setText(u"**I**")
        # self.sagittalP_label.setText(u"**P**")
        # self.axialL_label.setText(u"**L**")
        # self.axialA_label.setText(u"**A**")
        # self.axialR_label.setText(u"**R**")
        # self.axialP_label.setText( u"**P**")
        # self.coronalL_label.setText(u"**L**")
        # self.coronalS_label.setText(u"**S**")
        # self.coronalR_label.setText(u"**R**")
        # self.coronalI_label.setText(u"**I**")
        self.slicecontrol_pane.setTitle(u"Slice Control Pane")
        self.xaxis_label.setText(u"x")
        self.yaxis_label.setText(u"y")
        self.zaxis_label.setText(u"z")
        self.frame_label.setText(u"Frame")
        # TODO: Will reactivate these on later version
        # self.graphcontrol_pane.setTitle(u"Graph Control Pane")
        # self.addmask_button.setText(u"+")
        # self.removemask_button.setText(u"-")
        # self.savepng_button.setText(u"toPNG")
        # self.savecsv_button.setText(u"toCSV")

    def plot_timecourse(self, x, y):
        self.graph_frame.setEnabled(True)
        self.graph_view.clear()
        pen = pg.mkPen(color=(255, 0, 0))
        if x is None:
            x = [0]
            y = [y]
            self.graph_view.plot(x, y, pen=pen, symbol='o')
        else:
            self.graph_view.plot(x, y, pen=pen)

    def get_coord(self):
        x = self.xaxis_slider.value()
        y = self.yaxis_slider.value()
        z = self.zaxis_slider.value()
        return (x, y, z)
Esempio n. 3
0
class Ui_Whatspy(object):
    def setupUi(self, Ventana):
        if not Ventana.objectName():
            Ventana.setObjectName(u"Ventana")
        Ventana.resize(424, 600)
        Ventana.setAttribute(Qt.WA_TranslucentBackground)
        Ventana.setWindowFlag(Qt.FramelessWindowHint)
        Ventana.setStyleSheet(
            u"*{\n"
            "	font-family: century gothic;\n"
            "}\n"
            "\n"
            "QSizeGrip{\n"
            "       background: transparent;\n"
            "}\n"
            "\n"
            "QLabel{\n"
            "	color: white;\n"
            "}\n"
            "\n"
            "QScrollBar:vertical {\n"
            "            border: 1px solid #999999;\n"
            "            width:12px;    \n"
            "            margin: 0px 0px 0px 0px;\n"
            "        }\n"
            "        QScrollBar::handle:vertical {         \n"
            "       \n"
            "            min-height: 0px;\n"
            "          	border: 0px solid red;\n"
            "			border-radius: 4px;\n"
            "			background-color: rgb(182, 182, 182);\n"
            "        }\n"
            "        QScrollBar::add-line:vertical {       \n"
            "            height: 0px;\n"
            "            subcontrol-position: bottom;\n"
            "            subcontrol-origin: margin;\n"
            "        }\n"
            "        QScrollBar::sub-line:vertical {\n"
            "            height: 0 px;\n"
            "            subcontrol-position: top;\n"
            "            subcontrol-origin: margin;\n"
            "        }")
        self.gridLayout = QGridLayout(Ventana)
        self.gridLayout.setObjectName(u"gridLayout")
        self.gridLayout.setContentsMargins(0, 0, 0, 0)
        self.VentanaFrame = QFrame(Ventana)
        self.VentanaFrame.setObjectName(u"VentanaFrame")
        self.VentanaFrame.setStyleSheet(
            u"QFrame#VentanaFrame{\n"
            "	background-color: qlineargradient(spread:pad, x1:0.953, y1:1, x2:1, y2:0, stop:0 	#075E54, stop:1 #128C7E);\n"
            "	border-radius: 5px;\n"
            "}")
        self.VentanaFrame.setFrameShape(QFrame.StyledPanel)
        self.VentanaFrame.setFrameShadow(QFrame.Raised)
        self.gridLayout_2 = QGridLayout(self.VentanaFrame)
        self.gridLayout_2.setObjectName(u"gridLayout_2")
        self.gridLayout_2.setContentsMargins(-1, 0, -1, -1)
        self.Contenedor = QFrame(self.VentanaFrame)
        self.Contenedor.setObjectName(u"Contenedor")
        self.Contenedor.setStyleSheet(u"QFrame#Contenedor{\n"
                                      "	background-color: #128C7E;\n"
                                      "	border-radius: 5px;\n"
                                      "}")
        self.Contenedor.setFrameShape(QFrame.StyledPanel)
        self.Contenedor.setFrameShadow(QFrame.Raised)
        self.gridLayout_5 = QGridLayout(self.Contenedor)
        self.gridLayout_5.setObjectName(u"gridLayout_5")
        self.gridLayout_5.setContentsMargins(0, 10, 0, 10)
        self.frameAcciones = QFrame(self.Contenedor)
        self.frameAcciones.setObjectName(u"frameAcciones")
        sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Maximum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.frameAcciones.sizePolicy().hasHeightForWidth())
        self.frameAcciones.setSizePolicy(sizePolicy)
        self.frameAcciones.setStyleSheet(u"")
        self.frameAcciones.setFrameShape(QFrame.StyledPanel)
        self.frameAcciones.setFrameShadow(QFrame.Raised)
        self.gridLayout_4 = QGridLayout(self.frameAcciones)
        self.gridLayout_4.setObjectName(u"gridLayout_4")
        self.btnExportar = QPushButton(self.frameAcciones)
        self.btnExportar.setObjectName(u"btnExportar")
        sizePolicy1 = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Minimum)
        sizePolicy1.setHorizontalStretch(0)
        sizePolicy1.setVerticalStretch(0)
        sizePolicy1.setHeightForWidth(
            self.btnExportar.sizePolicy().hasHeightForWidth())
        self.btnExportar.setSizePolicy(sizePolicy1)
        self.btnExportar.setMinimumSize(QSize(100, 30))
        self.btnExportar.setCursor(QCursor(Qt.PointingHandCursor))
        self.btnExportar.setStyleSheet(u"QPushButton#btnExportar{\n"
                                       "background-color: #ecf0f1;\n"
                                       "border-radius: 5px;\n"
                                       "}\n"
                                       "\n"
                                       "QPushButton#btnExportar:hover{\n"
                                       "background-color: #bdc3c7;\n"
                                       "border-radius: 5px;\n"
                                       "}")
        icon1 = QIcon()
        icon1.addFile(u":/logo/exportar.png", QSize(), QIcon.Normal, QIcon.Off)
        self.btnExportar.setIcon(icon1)
        self.btnExportar.setIconSize(QSize(16, 16))

        self.gridLayout_4.addWidget(self.btnExportar, 0, 2, 1, 1)

        self.btnAbrir = QPushButton(self.frameAcciones)
        self.btnAbrir.setObjectName(u"btnAbrir")
        sizePolicy1.setHeightForWidth(
            self.btnAbrir.sizePolicy().hasHeightForWidth())
        self.btnAbrir.setSizePolicy(sizePolicy1)
        self.btnAbrir.setMinimumSize(QSize(100, 30))
        self.btnAbrir.setCursor(QCursor(Qt.PointingHandCursor))
        self.btnAbrir.setStyleSheet(u"QPushButton#btnAbrir{\n"
                                    "background-color: #ecf0f1;\n"
                                    "border-radius: 5px;\n"
                                    "}\n"
                                    "\n"
                                    "QPushButton#btnAbrir:hover{\n"
                                    "background-color: #bdc3c7;\n"
                                    "}")
        icon2 = QIcon()
        icon2.addFile(u":/logo/anadir.png", QSize(), QIcon.Normal, QIcon.Off)
        self.btnAbrir.setIcon(icon2)
        self.btnAbrir.setIconSize(QSize(16, 16))

        self.gridLayout_4.addWidget(self.btnAbrir, 0, 1, 1, 1)

        self.horizontalSpacer_2 = QSpacerItem(40, 20, QSizePolicy.Expanding,
                                              QSizePolicy.Minimum)

        self.gridLayout_4.addItem(self.horizontalSpacer_2, 0, 0, 1, 1)

        self.horizontalSpacer_3 = QSpacerItem(40, 20, QSizePolicy.Expanding,
                                              QSizePolicy.Minimum)

        self.gridLayout_4.addItem(self.horizontalSpacer_3, 0, 3, 1, 1)

        self.gridLayout_5.addWidget(self.frameAcciones, 2, 0, 1, 1)

        self.frameTabla = QFrame(self.Contenedor)
        self.frameTabla.setObjectName(u"frameTabla")
        sizePolicy2 = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred)
        sizePolicy2.setHorizontalStretch(0)
        sizePolicy2.setVerticalStretch(0)
        sizePolicy2.setHeightForWidth(
            self.frameTabla.sizePolicy().hasHeightForWidth())
        self.frameTabla.setSizePolicy(sizePolicy2)
        self.frameTabla.setStyleSheet(u"")
        self.frameTabla.setFrameShape(QFrame.StyledPanel)
        self.frameTabla.setFrameShadow(QFrame.Raised)
        self.horizontalLayout_2 = QHBoxLayout(self.frameTabla)
        self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
        self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0)
        self.horizontalSpacer_4 = QSpacerItem(40, 20, QSizePolicy.Expanding,
                                              QSizePolicy.Minimum)

        self.horizontalLayout_2.addItem(self.horizontalSpacer_4)

        self.tableWidget = QTableWidget(self.frameTabla)
        if (self.tableWidget.columnCount() < 2):
            self.tableWidget.setColumnCount(2)
        __qtablewidgetitem = QTableWidgetItem()
        self.tableWidget.setHorizontalHeaderItem(0, __qtablewidgetitem)
        __qtablewidgetitem1 = QTableWidgetItem()
        self.tableWidget.setHorizontalHeaderItem(1, __qtablewidgetitem1)
        if (self.tableWidget.rowCount() < 50):
            self.tableWidget.setRowCount(50)
        __qtablewidgetitem2 = QTableWidgetItem()
        self.tableWidget.setItem(0, 0, __qtablewidgetitem2)
        self.tableWidget.setObjectName(u"tableWidget")
        sizePolicy1.setHeightForWidth(
            self.tableWidget.sizePolicy().hasHeightForWidth())
        self.tableWidget.setSizePolicy(sizePolicy1)
        self.tableWidget.setMinimumSize(QSize(350, 0))
        self.tableWidget.setStyleSheet(u"QTableWidget#tableWidget:item{\n"
                                       "color:white;\n"
                                       "font-weight: bold;\n"
                                       "}\n"
                                       "\n"
                                       "QTableWidget#tableWidget{\n"
                                       "border-radius:4px;\n"
                                       "background-color: #128C7E;\n"
                                       "}")
        self.tableWidget.setRowCount(50)

        self.horizontalLayout_2.addWidget(self.tableWidget)

        self.horizontalSpacer_5 = QSpacerItem(40, 20, QSizePolicy.Expanding,
                                              QSizePolicy.Minimum)

        self.horizontalLayout_2.addItem(self.horizontalSpacer_5)

        self.gridLayout_5.addWidget(self.frameTabla, 3, 0, 1, 1)

        self.header = QFrame(self.Contenedor)
        self.header.setObjectName(u"header")
        sizePolicy.setHeightForWidth(
            self.header.sizePolicy().hasHeightForWidth())
        self.header.setSizePolicy(sizePolicy)
        self.header.setStyleSheet(u"")
        self.header.setFrameShape(QFrame.StyledPanel)
        self.header.setFrameShadow(QFrame.Raised)
        self.horizontalLayout = QHBoxLayout(self.header)
        self.horizontalLayout.setObjectName(u"horizontalLayout")
        self.horizontalLayout.setContentsMargins(0, 0, 5, 0)
        self.horizontalSpacer = QSpacerItem(0, 0, QSizePolicy.Expanding,
                                            QSizePolicy.Minimum)

        self.horizontalLayout.addItem(self.horizontalSpacer)

        self.btnVerde = QPushButton(self.header)
        self.btnVerde.setObjectName(u"btnVerde")
        self.btnVerde.setMaximumSize(QSize(16, 16))
        self.btnVerde.setCursor(QCursor(Qt.PointingHandCursor))
        self.btnVerde.setStyleSheet(u"QPushButton#btnVerde{\n"
                                    "	background-color: #27ae60;\n"
                                    "	border-radius: 8px;\n"
                                    "}\n"
                                    "\n"
                                    "QPushButton#btnVerde:hover{\n"
                                    "	background-color: #10ac84;\n"
                                    "	border-radius: 8px;\n"
                                    "}")

        self.horizontalLayout.addWidget(self.btnVerde)

        self.btnAmarillo = QPushButton(self.header)
        self.btnAmarillo.setObjectName(u"btnAmarillo")
        self.btnAmarillo.setMaximumSize(QSize(16, 16))
        self.btnAmarillo.setCursor(QCursor(Qt.PointingHandCursor))
        self.btnAmarillo.setStyleSheet(u"QPushButton#btnAmarillo{\n"
                                       "background-color: yellow;\n"
                                       "border-radius: 8px;\n"
                                       "}\n"
                                       "\n"
                                       "QPushButton#btnAmarillo:hover{\n"
                                       "background-color: #f1c40f;\n"
                                       "border-radius: 8px;\n"
                                       "}\n"
                                       "")

        self.horizontalLayout.addWidget(self.btnAmarillo)

        self.btnRojo = QPushButton(self.header)
        self.btnRojo.setObjectName(u"btnRojo")
        self.btnRojo.setMaximumSize(QSize(16, 16))
        self.btnRojo.setCursor(QCursor(Qt.PointingHandCursor))
        self.btnRojo.setStyleSheet(u"QPushButton#btnRojo{\n"
                                   "background-color: red;\n"
                                   "border-radius: 8px;\n"
                                   "}\n"
                                   "\n"
                                   "QPushButton#btnRojo:hover{\n"
                                   "background-color: #e74c3c;\n"
                                   "border-radius: 8px;\n"
                                   "}")

        self.horizontalLayout.addWidget(self.btnRojo)

        self.gridLayout_5.addWidget(self.header, 0, 0, 1, 1)

        self.frameLogo = QFrame(self.Contenedor)
        self.frameLogo.setObjectName(u"frameLogo")
        sizePolicy.setHeightForWidth(
            self.frameLogo.sizePolicy().hasHeightForWidth())
        self.frameLogo.setSizePolicy(sizePolicy)
        self.frameLogo.setStyleSheet(u"")
        self.frameLogo.setFrameShape(QFrame.StyledPanel)
        self.frameLogo.setFrameShadow(QFrame.Raised)
        self.gridLayout_3 = QGridLayout(self.frameLogo)
        self.gridLayout_3.setObjectName(u"gridLayout_3")
        self.lblWhatsPy = QLabel(self.frameLogo)
        self.lblWhatsPy.setObjectName(u"lblWhatsPy")
        font = QFont()
        font.setFamily(u"century gothic")
        font.setBold(True)
        font.setWeight(75)
        self.lblWhatsPy.setFont(font)
        self.lblWhatsPy.setAlignment(Qt.AlignCenter)

        self.gridLayout_3.addWidget(self.lblWhatsPy, 1, 0, 1, 1)

        self.icon = QLabel(self.frameLogo)
        self.icon.setObjectName(u"icon")
        self.icon.setMaximumSize(QSize(70, 70))
        self.icon.setPixmap(QPixmap(u":/logo/logo.png"))
        self.icon.setScaledContents(True)

        self.gridLayout_3.addWidget(self.icon, 0, 0, 1, 1)

        self.gridLayout_5.addWidget(self.frameLogo, 1, 0, 1, 1)

        self.label = QLabel(self.Contenedor)
        self.label.setObjectName(u"label")
        sizePolicy.setHeightForWidth(
            self.label.sizePolicy().hasHeightForWidth())
        self.label.setSizePolicy(sizePolicy)
        self.label.setFont(font)
        self.label.setAlignment(Qt.AlignCenter)

        self.gridLayout_5.addWidget(self.label, 4, 0, 1, 1)

        self.gridLayout_2.addWidget(self.Contenedor, 0, 0, 1, 1)

        self.lblGrip = QLabel(self.VentanaFrame)
        self.lblGrip.setObjectName(u"lblGrip")
        sizePolicy.setHeightForWidth(
            self.lblGrip.sizePolicy().hasHeightForWidth())
        self.lblGrip.setSizePolicy(sizePolicy)
        self.lblGrip.setMaximumSize(QSize(10, 10))
        self.lblGrip.setCursor(QCursor(Qt.BusyCursor))
        self.lblGrip.setLayoutDirection(Qt.RightToLeft)
        self.lblGrip.setStyleSheet(
            u"QLabel#lblGrip:hover{\n"
            "	background: rgb(18, 140, 126);\n"
            "	border-radius: 5px;\n"
            "}\n"
            "\n"
            "QLabel#lblGrip{\n"
            "	background-color: qlineargradient(spread:pad, x1:0.953, y1:1, x2:1, y2:0, stop:0 	#075E54, stop:1 #128C7E);\n"
            "	border-radius: 5px;\n"
            "}")

        self.gridLayout_2.addWidget(self.lblGrip, 1, 0, 1, 1)

        self.gridLayout.addWidget(self.VentanaFrame, 0, 0, 1, 1)

        self.retranslateUi(Ventana)

        QMetaObject.connectSlotsByName(Ventana)

    # setupUi

    def retranslateUi(self, Ventana):
        Ventana.setWindowTitle(
            QCoreApplication.translate("Ventana", u"Form", None))
        self.btnExportar.setText(
            QCoreApplication.translate("Ventana", u"Exportar", None))
        self.btnAbrir.setText(
            QCoreApplication.translate("Ventana", u"Abrir TXT", None))
        ___qtablewidgetitem = self.tableWidget.horizontalHeaderItem(0)
        ___qtablewidgetitem.setText(
            QCoreApplication.translate("Ventana", u"N\u00fameros", None))
        ___qtablewidgetitem1 = self.tableWidget.horizontalHeaderItem(1)
        ___qtablewidgetitem1.setText(
            QCoreApplication.translate("Ventana", u"Mensajes", None))

        __sortingEnabled = self.tableWidget.isSortingEnabled()
        self.tableWidget.setSortingEnabled(False)
        self.tableWidget.setSortingEnabled(__sortingEnabled)

        self.btnVerde.setText("")
        self.btnAmarillo.setText("")
        self.btnRojo.setText("")
        self.lblWhatsPy.setText(
            QCoreApplication.translate("Ventana", u"WhatsPy", None))
        self.icon.setText("")
        self.label.setText(
            QCoreApplication.translate(
                "Ventana", u"Todav\u00eda no haz cargado ning\u00fan chat",
                None))
        self.lblGrip.setText("")
Esempio n. 4
0
class Ui_Dialog(object):
    def setupUi(self, Dialog):
        if Dialog.objectName():
            Dialog.setObjectName(u"Dialog")
        Dialog.resize(878, 528)
        icon = QIcon()
        icon.addFile("./icon.ico")
        Dialog.setWindowIcon(icon)
        self.verticalLayout = QVBoxLayout(Dialog)
        self.verticalLayout.setObjectName(u"verticalLayout")
        self.horizontalLayout = QHBoxLayout()
        self.horizontalLayout.setObjectName(u"horizontalLayout")
        self.questionLable = QLabel(Dialog)
        self.questionLable.setObjectName(u"questionLable")
        font = QFont()
        font.setFamily(u"\u5fae\u8f6f\u96c5\u9ed1")
        font.setPointSize(12)
        self.questionLable.setFont(font)
        self.questionLable.setWordWrap(True)
        self.questionLable.setMargin(0)
        self.questionLable.setIndent(0)

        self.horizontalLayout.addWidget(self.questionLable)

        self.lcd = QLCDNumber(Dialog)
        self.lcd.setObjectName(u"lcd")
        sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.lcd.sizePolicy().hasHeightForWidth())
        self.lcd.setSizePolicy(sizePolicy)
        self.lcd.setMinimumSize(QSize(120, 60))
        self.lcd.setSmallDecimalPoint(True)
        self.lcd.setDigitCount(4)
        self.lcd.setSegmentStyle(QLCDNumber.Flat)
        self.lcd.setProperty("value", 120.000000000000000)

        self.horizontalLayout.addWidget(self.lcd)

        self.verticalLayout.addLayout(self.horizontalLayout)

        self.line = QFrame(Dialog)
        self.line.setObjectName(u"line")
        self.line.setFrameShape(QFrame.HLine)
        self.line.setFrameShadow(QFrame.Sunken)

        self.verticalLayout.addWidget(self.line)

        self.answerLable = QLabel(Dialog)
        self.answerLable.setObjectName(u"answerLable")
        font1 = QFont()
        font1.setFamily(u"Yu Gothic UI")
        font1.setPointSize(14)
        self.answerLable.setFont(font1)
        self.answerLable.setWordWrap(True)

        self.verticalLayout.addWidget(self.answerLable)

        self.retranslateUi(Dialog)

        QMetaObject.connectSlotsByName(Dialog)

    # setupUi

    def retranslateUi(self, Dialog):
        Dialog.setWindowTitle(
            QCoreApplication.translate("Dialog", u"Dialog", None))

    # retranslateUi

    def setupUi_(self, question, answer, time):
        self.questionLable.setText(question)
        self.answerLable.setText(answer)
        self.lcd.setDigitCount(3)  # 设置lcd的显示位数
        self.lcd.display(time)
        self.timer1 = QTimer()
        self.timer1.timeout.connect(self.setlcd1)
        self.timer1.start(1000)
        # self.timer2 = QTimer()
        # self.timer2.timeout.connect(self.setlcd2)

    def setlcd1(self):
        self.lcd.display(self.lcd.intValue() - 1)
        if self.lcd.intValue() == 0:
            self.timer1.stop()

            # self.lcd.setSegmentStyle(QLCDNumber.Flat)
            # self.lcd.setStyleSheet("color: red;")

            # self.timer2.start(1000)

    def setlcd2(self):
        self.lcd.display(self.lcd.intValue() + 1)
Esempio n. 5
0
class Ui_Error(object):
    def setupUi(self, Error):
        if not Error.objectName():
            Error.setObjectName(u"Error")
        Error.resize(250, 150)
        Error.setMinimumSize(QSize(250, 150))
        Error.setMaximumSize(QSize(250, 150))
        self.horizontalLayout = QHBoxLayout(Error)
        self.horizontalLayout.setSpacing(0)
        self.horizontalLayout.setObjectName(u"horizontalLayout")
        self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
        self.frame = QFrame(Error)
        self.frame.setObjectName(u"frame")
        self.frame.setStyleSheet(u"background:rgb(51,51,51);")
        self.frame.setFrameShape(QFrame.NoFrame)
        self.frame.setFrameShadow(QFrame.Plain)
        self.verticalLayout = QVBoxLayout(self.frame)
        self.verticalLayout.setSpacing(0)
        self.verticalLayout.setObjectName(u"verticalLayout")
        self.verticalLayout.setContentsMargins(2, 2, 2, 2)
        self.frame_top = QFrame(self.frame)
        self.frame_top.setObjectName(u"frame_top")
        self.frame_top.setMinimumSize(QSize(0, 55))
        self.frame_top.setMaximumSize(QSize(16777215, 55))
        self.frame_top.setStyleSheet(u"background:rgb(91,90,90);")
        self.frame_top.setFrameShape(QFrame.NoFrame)
        self.frame_top.setFrameShadow(QFrame.Plain)
        self.horizontalLayout_2 = QHBoxLayout(self.frame_top)
        self.horizontalLayout_2.setSpacing(5)
        self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
        self.horizontalLayout_2.setContentsMargins(15, 5, 0, 0)
        self.lab_icon = QLabel(self.frame_top)
        self.lab_icon.setObjectName(u"lab_icon")
        self.lab_icon.setMinimumSize(QSize(35, 35))
        self.lab_icon.setMaximumSize(QSize(35, 35))

        self.horizontalLayout_2.addWidget(self.lab_icon)

        self.lab_heading = QLabel(self.frame_top)
        self.lab_heading.setObjectName(u"lab_heading")
        font = QFont()
        font.setFamily(u"Segoe UI")
        font.setPointSize(12)
        self.lab_heading.setFont(font)
        self.lab_heading.setStyleSheet(u"color:rgb(255,255,255);")
        self.lab_heading.setWordWrap(True)

        self.horizontalLayout_2.addWidget(self.lab_heading)

        self.verticalLayout.addWidget(self.frame_top)

        self.frame_bottom = QFrame(self.frame)
        self.frame_bottom.setObjectName(u"frame_bottom")
        self.frame_bottom.setStyleSheet(u"background:rgb(91,90,90);")
        self.frame_bottom.setFrameShape(QFrame.NoFrame)
        self.frame_bottom.setFrameShadow(QFrame.Plain)
        self.gridLayout = QGridLayout(self.frame_bottom)
        self.gridLayout.setObjectName(u"gridLayout")
        self.gridLayout.setContentsMargins(-1, -1, -1, 0)
        self.bn_ok = QPushButton(self.frame_bottom)
        self.bn_ok.setObjectName(u"bn_ok")
        self.bn_ok.setMinimumSize(QSize(69, 25))
        self.bn_ok.setMaximumSize(QSize(69, 25))
        self.bn_ok.setStyleSheet(u"QPushButton {\n"
                                 "	border: 2px solid rgb(51,51,51);\n"
                                 "	border-radius: 5px;	\n"
                                 "	color:rgb(255,255,255);\n"
                                 "	background-color: rgb(51,51,51);\n"
                                 "}\n"
                                 "QPushButton:hover {\n"
                                 "	border: 2px solid rgb(0,143,150);\n"
                                 "	background-color: rgb(0,143,150);\n"
                                 "}\n"
                                 "QPushButton:pressed {	\n"
                                 "	border: 2px solid rgb(0,143,150);\n"
                                 "	background-color: rgb(51,51,51);\n"
                                 "}\n"
                                 "")

        self.gridLayout.addWidget(self.bn_ok, 0, 0, 1, 1)

        self.verticalLayout.addWidget(self.frame_bottom)

        self.horizontalLayout.addWidget(self.frame)

        self.retranslateUi(Error)

        QMetaObject.connectSlotsByName(Error)

    # setupUi

    def retranslateUi(self, Error):
        Error.setWindowTitle(
            QCoreApplication.translate("Error", u"Dialog", None))
        self.lab_icon.setText("")
        self.lab_heading.setText("")
        self.bn_ok.setText("")
Esempio n. 6
0
class Ui_MainWindow(QMainWindow):
    def setupUi(self, MainWindow):
        if MainWindow.objectName():
            MainWindow.setObjectName(u"MainWindow")
        MainWindow.resize(1080, 820)
        self.centralwidget = QWidget(MainWindow)
        self.centralwidget.setObjectName(u"centralwidget")
        self.MainLayout = QVBoxLayout(self.centralwidget)
        self.MainLayout.setSpacing(5)
        self.MainLayout.setObjectName(u"MainLayout")
        self.MainLayout.setContentsMargins(40, -1, 40, 20)
        self.MenuLayout = QHBoxLayout()
        self.MenuLayout.setSpacing(4)
        self.MenuLayout.setObjectName(u"MenuLayout")
        self.MenuLayout.setSizeConstraint(QLayout.SetMinimumSize)
        self.Select = QPushButton(self.centralwidget)
        self.Select.setObjectName(u"Select")

        self.MenuLayout.addWidget(self.Select)

        self.horizontalSpacer_2 = QSpacerItem(
            98, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)

        self.MenuLayout.addItem(self.horizontalSpacer_2)

        self.label1 = QLabel(self.centralwidget)
        self.label1.setObjectName(u"label1")

        self.MenuLayout.addWidget(self.label1)

        self.MinSelect = QLineEdit(self.centralwidget)
        self.MinSelect.setObjectName(u"MInSelect")
        self.MinSelect.setMaximumSize(QSize(50, 16777215))

        self.MenuLayout.addWidget(self.MinSelect)

        self.label2 = QLabel(self.centralwidget)
        self.label2.setObjectName(u"label2")
        font = QFont()
        font.setFamily(u"Arial")
        font.setPointSize(12)
        self.label2.setFont(font)
        self.label2.setAlignment(Qt.AlignCenter)

        self.MenuLayout.addWidget(self.label2)

        self.MaxSelect = QLineEdit(self.centralwidget)
        self.MaxSelect.setObjectName(u"MaxSelect")
        self.MaxSelect.setMaximumSize(QSize(50, 16777215))

        self.MenuLayout.addWidget(self.MaxSelect)

        self.Button = QPushButton(self.centralwidget)
        self.Button.setObjectName(u"Button")
        self.Button.setMinimumSize(QSize(100, 0))

        self.MenuLayout.addWidget(self.Button)

        self.horizontalSpacer_3 = QSpacerItem(
            148, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)

        self.MenuLayout.addItem(self.horizontalSpacer_3)

        self.MainLayout.addLayout(self.MenuLayout)

        self.line = QFrame(self.centralwidget)
        self.line.setObjectName(u"line")
        self.line.setFrameShape(QFrame.HLine)
        self.line.setFrameShadow(QFrame.Sunken)

        self.MainLayout.addWidget(self.line)

        self.BankLayout = QVBoxLayout()
        self.BankLayout.setObjectName(u"BankLayout")
        self.label_0 = QLabel(self.centralwidget)
        self.label_0.setObjectName(u"label_0")
        font1 = QFont()
        font1.setFamily(u"\u5fae\u8f6f\u96c5\u9ed1")
        font1.setPointSize(12)
        self.label_0.setFont(font1)
        self.label_0.setAlignment(Qt.AlignLeading | Qt.AlignLeft | Qt.AlignTop)
        self.label_0.setWordWrap(True)

        self.BankLayout.addWidget(self.label_0)

        self.line_1 = QFrame(self.centralwidget)
        self.line_1.setObjectName(u"line_1")
        self.line_1.setFrameShape(QFrame.HLine)
        self.line_1.setFrameShadow(QFrame.Sunken)

        self.BankLayout.addWidget(self.line_1)

        self.label_1 = QLabel(self.centralwidget)
        self.label_1.setObjectName(u"label_1")
        self.label_1.setFont(font1)
        self.label_1.setAlignment(Qt.AlignLeading | Qt.AlignLeft | Qt.AlignTop)
        self.label_1.setWordWrap(True)

        self.BankLayout.addWidget(self.label_1)

        self.line_2 = QFrame(self.centralwidget)
        self.line_2.setObjectName(u"line_2")
        self.line_2.setFrameShape(QFrame.HLine)
        self.line_2.setFrameShadow(QFrame.Sunken)

        self.BankLayout.addWidget(self.line_2)

        self.label_2 = QLabel(self.centralwidget)
        self.label_2.setObjectName(u"label_2")
        self.label_2.setFont(font1)
        self.label_2.setAlignment(Qt.AlignLeading | Qt.AlignLeft | Qt.AlignTop)
        self.label_2.setWordWrap(True)

        self.BankLayout.addWidget(self.label_2)

        self.line_3 = QFrame(self.centralwidget)
        self.line_3.setObjectName(u"line_3")
        self.line_3.setFrameShape(QFrame.HLine)
        self.line_3.setFrameShadow(QFrame.Sunken)

        self.BankLayout.addWidget(self.line_3)

        self.label_3 = QLabel(self.centralwidget)
        self.label_3.setObjectName(u"label_3")
        self.label_3.setFont(font1)
        self.label_3.setAlignment(Qt.AlignLeading | Qt.AlignLeft | Qt.AlignTop)
        self.label_3.setWordWrap(True)

        self.BankLayout.addWidget(self.label_3)

        self.line_4 = QFrame(self.centralwidget)
        self.line_4.setObjectName(u"line_4")
        self.line_4.setFrameShape(QFrame.HLine)
        self.line_4.setFrameShadow(QFrame.Sunken)

        self.BankLayout.addWidget(self.line_4)

        self.label_4 = QLabel(self.centralwidget)
        self.label_4.setObjectName(u"label_4")
        self.label_4.setFont(font1)
        self.label_4.setAlignment(Qt.AlignLeading | Qt.AlignLeft | Qt.AlignTop)
        self.label_4.setWordWrap(True)

        self.BankLayout.addWidget(self.label_4)

        self.line_5 = QFrame(self.centralwidget)
        self.line_5.setObjectName(u"line_5")
        self.line_5.setFrameShape(QFrame.HLine)
        self.line_5.setFrameShadow(QFrame.Sunken)

        self.BankLayout.addWidget(self.line_5)

        self.label_5 = QLabel(self.centralwidget)
        self.label_5.setObjectName(u"label_5")
        self.label_5.setFont(font1)
        self.label_5.setAlignment(Qt.AlignLeading | Qt.AlignLeft | Qt.AlignTop)
        self.label_5.setWordWrap(True)

        self.BankLayout.addWidget(self.label_5)

        self.line_6 = QFrame(self.centralwidget)
        self.line_6.setObjectName(u"line_6")
        self.line_6.setFrameShape(QFrame.HLine)
        self.line_6.setFrameShadow(QFrame.Sunken)

        self.BankLayout.addWidget(self.line_6)

        self.label_6 = QLabel(self.centralwidget)
        self.label_6.setObjectName(u"label_6")
        self.label_6.setFont(font1)
        self.label_6.setAlignment(Qt.AlignLeading | Qt.AlignLeft | Qt.AlignTop)
        self.label_6.setWordWrap(True)

        self.BankLayout.addWidget(self.label_6)

        self.line_7 = QFrame(self.centralwidget)
        self.line_7.setObjectName(u"line_7")
        self.line_7.setFrameShape(QFrame.HLine)
        self.line_7.setFrameShadow(QFrame.Sunken)

        self.BankLayout.addWidget(self.line_7)

        self.label_7 = QLabel(self.centralwidget)
        self.label_7.setObjectName(u"label_7")
        self.label_7.setFont(font1)
        self.label_7.setAlignment(Qt.AlignLeading | Qt.AlignLeft | Qt.AlignTop)
        self.label_7.setWordWrap(True)

        self.BankLayout.addWidget(self.label_7)

        self.line_8 = QFrame(self.centralwidget)
        self.line_8.setObjectName(u"line_8")
        self.line_8.setFrameShape(QFrame.HLine)
        self.line_8.setFrameShadow(QFrame.Sunken)

        self.BankLayout.addWidget(self.line_8)

        self.label_8 = QLabel(self.centralwidget)
        self.label_8.setObjectName(u"label_8")
        self.label_8.setFont(font1)
        self.label_8.setAlignment(Qt.AlignLeading | Qt.AlignLeft | Qt.AlignTop)
        self.label_8.setWordWrap(True)

        self.BankLayout.addWidget(self.label_8)

        self.line_9 = QFrame(self.centralwidget)
        self.line_9.setObjectName(u"line_9")
        self.line_9.setFrameShape(QFrame.HLine)
        self.line_9.setFrameShadow(QFrame.Sunken)

        self.BankLayout.addWidget(self.line_9)

        self.label_9 = QLabel(self.centralwidget)
        self.label_9.setObjectName(u"label_9")
        self.label_9.setFont(font1)
        self.label_9.setAlignment(Qt.AlignLeading | Qt.AlignLeft | Qt.AlignTop)
        self.label_9.setWordWrap(True)

        self.BankLayout.addWidget(self.label_9)

        self.MainLayout.addLayout(self.BankLayout)

        MainWindow.setCentralWidget(self.centralwidget)
        QWidget.setTabOrder(self.MinSelect, self.MaxSelect)
        QWidget.setTabOrder(self.MaxSelect, self.Button)
        QWidget.setTabOrder(self.Button, self.Select)

        self.retranslateUi(MainWindow)

        QMetaObject.connectSlotsByName(MainWindow)

        self.setupUi_(MainWindow)  # setupUI的补充
    # setupUi

    def retranslateUi(self, MainWindow):
        MainWindow.setWindowTitle(QCoreApplication.translate(
            "MainWindow", u"MainWindow", None))
        self.Select.setText(QCoreApplication.translate(
            "MainWindow", u"\u9009\u62e9", None))
        self.label1.setText(QCoreApplication.translate(
            "MainWindow", u"\u9898\u76ee\u8303\u56f4\uff1a", None))
        self.MinSelect.setText(
            QCoreApplication.translate("MainWindow", u"1", None))
        self.label2.setText(QCoreApplication.translate(
            "MainWindow", u"\u2014", None))
        # 最大题号
        self.MaxSelect.setText(
            QCoreApplication.translate("MainWindow", u"305", None))
        self.Button.setText(QCoreApplication.translate(
            "MainWindow", u"\u62bd\u9898", None))
        self.label_0.setText(QCoreApplication.translate(
            "MainWindow", u"1\u3001", None))
        self.label_1.setText(QCoreApplication.translate(
            "MainWindow", u"2\u3001", None))
        self.label_2.setText(QCoreApplication.translate(
            "MainWindow", u"3\u3001", None))
        self.label_3.setText(QCoreApplication.translate(
            "MainWindow", u"4\u3001", None))
        self.label_4.setText(QCoreApplication.translate(
            "MainWindow", u"5\u3001", None))
        self.label_5.setText(QCoreApplication.translate(
            "MainWindow", u"6\u3001", None))
        self.label_6.setText(QCoreApplication.translate(
            "MainWindow", u"7\u3001", None))
        self.label_7.setText(QCoreApplication.translate(
            "MainWindow", u"8\u3001", None))
        self.label_8.setText(QCoreApplication.translate(
            "MainWindow", u"9\u3001", None))
        self.label_9.setText(QCoreApplication.translate(
            "MainWindow", u"10\u3001", None))
    # retranslateUi

    # --------------------------------------------------------------------

    def setupUi_(self, MainWindow):
        # set Icon
        icon = QIcon()
        icon.addFile("./icon.ico")
        MainWindow.setWindowIcon(icon)

        # Set constant
        self.LABEL_N = {0: self.label_0,
                        1: self.label_1,
                        2: self.label_2,
                        3: self.label_3,
                        4: self.label_4,
                        5: self.label_5,
                        6: self.label_6,
                        7: self.label_7,
                        8: self.label_8,
                        9: self.label_9}
        self.QUESTIONS = [i for i in range(1, 11)]

        self.FILE = "./bank/货运组理论试题.xls"
        if os.access(self.FILE, os.F_OK) is False:
            self.FILE = ''
            self.selectFile()

        # set QMessageBox
        self.message = QMessageBox(text="选择题库")
        self.message.setWindowTitle(" ")

        # Action
        self.Select.clicked.connect(self.selectFile)
        self.Button.clicked.connect(self.cilckButton)
        for i in self.LABEL_N:
            _label = self.LABEL_N[i]
            _label.ANSWER = ""
            _label.TIME = 0
            _label.installEventFilter(self)  # 安装事件过滤器

        # Filter
        _regex = QRegExp("^[0-9]*[1-9][0-9]*$")  # 正则表达式:正整数
        _validator = QRegExpValidator(_regex)
        self.MinSelect.setValidator(_validator)
        self.MaxSelect.setValidator(_validator)

    # opstion----------------------------------

    def selectFile(self):
        # 选择文件
        FILE = QFileDialog.getOpenFileName(
            caption="打开execl格式题库", filter="Execl files(*.xls;*.xlsx)")
        if FILE[0] != '':
            self.FILE = FILE[0]

    def cilckButton(self):
        # 抽题号
        if self.FILE == '':
            self.message.exec_()
            return
        MIN = int(self.MinSelect.text()) + 2
        MAX = int(self.MaxSelect.text()) + 2
        MAX += 1
        if MAX - MIN <= 9:
            return
        self.QUESTIONS = sample(range(MIN, MAX, 1), 10)
        self.QUESTIONS.sort()
        self.readExecl()

    def readExecl(self):
        # 读取execl
        wb = xlrd.open_workbook(self.FILE)
        sheet = wb.sheet_by_index(0)
        for i in range(0, 10):
            text = sheet.cell(self.QUESTIONS[i]-1, 1).value
            text = str(
                int(sheet.cell(self.QUESTIONS[i]-1, 0).value)) + ". " + text
            ANSWER = sheet.cell(self.QUESTIONS[i]-1, 2).value
            TIME = sheet.cell(self.QUESTIONS[i]-1, 5).value
            self.setLabel(i, text, ANSWER, TIME)

    def setLabel(self, i, text, ANSWER, TIME):
        # 设置label
        _label = self.LABEL_N[i]
        _label.setText(text)
        _label.ANSWER = ANSWER
        _label.TIME = TIME

    def callDialog(self, question, ANSWER, TIME):
        # 打开答案窗口
        dialog = Ui_Dialog()
        dialogWindow = QDialog()
        dialog.setupUi(dialogWindow)
        dialog.setupUi_(question, ANSWER, TIME)
        dialogWindow.exec_()

    def eventFilter(self, obj, event):  # 事件过滤器
        try:
            if obj.TIME == 0:
                return False
            if event.type() == QEvent.MouseButtonPress:
                self.callDialog(obj.text(), obj.ANSWER, obj.TIME)
                return True
            else:
                return False
        except AttributeError:
            return False
Esempio n. 7
0
class UiMainWindow(object):
    '''Интерфейс основного окна программы.
    Created by: Qt User Interface Compiler.
    Задано:
        панель инструментов с кнопками "Новый расчёт" (очистка всех полей),
        выбор режима расчёта, запуск расчёта;

        четыре поля ввода (длина заготовки, длина безусловного отхода,
        ширина реза, длина первичной обрезки торца заготовки)

        таблица ввода длин элементов и их количеств;

        кнопки "добавить строку в конец таблицы" и "удалить последнюю строку
        в таблице";

        поле вывода результата расчёта.
    '''
    def setupUi(self, MainWindow):
        if not MainWindow.objectName():
            MainWindow.setObjectName(u"MainWindow")
        MainWindow.resize(700, 495)
        self.centralwidget = QWidget(MainWindow)
        self.centralwidget.setObjectName(u"centralwidget")
        self.verticalLayout = QVBoxLayout(self.centralwidget)
        self.verticalLayout.setSpacing(0)
        self.verticalLayout.setObjectName(u"verticalLayout")
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.main_frame = QFrame(self.centralwidget)
        self.main_frame.setObjectName(u"main_frame")
        self.main_frame.setFrameShape(QFrame.StyledPanel)
        self.main_frame.setFrameShadow(QFrame.Raised)
        self.verticalLayout_2 = QVBoxLayout(self.main_frame)
        self.verticalLayout_2.setSpacing(0)
        self.verticalLayout_2.setObjectName(u"verticalLayout_2")
        self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)

        # "панель инструментов"
        self.top_frame = QFrame(self.main_frame)
        self.top_frame.setObjectName(u"top_frame")
        self.top_frame.setMinimumSize(QSize(0, 60))
        self.top_frame.setMaximumSize(QSize(16777215, 60))
        self.top_frame.setFrameShape(QFrame.StyledPanel)
        self.top_frame.setFrameShadow(QFrame.Raised)
        self.horizontalLayout = QHBoxLayout(self.top_frame)
        self.horizontalLayout.setSpacing(5)
        self.horizontalLayout.setObjectName(u"horizontalLayout")
        self.horizontalLayout.setContentsMargins(5, 5, 5, 5)

        # кнопка "новый расчёт"
        self.new_calc_btn = QPushButton(self.top_frame)
        self.new_calc_btn.setObjectName(u"new_calc_btn")
        self.new_calc_btn.setMinimumSize(QSize(110, 50))
        self.new_calc_btn.setMaximumSize(QSize(110, 50))
        icon = QIcon()
        icon.addFile(NEW_CALC_ICON, QSize(), QIcon.Normal, QIcon.Off)
        self.new_calc_btn.setIcon(icon)
        self.new_calc_btn.setIconSize(QSize(45, 45))

        self.horizontalLayout.addWidget(self.new_calc_btn)

        # кнопка "выбор режима расчёта"
        self.select_mode_btn = QPushButton(self.top_frame)
        self.select_mode_btn.setObjectName(u"select_mode_btn")
        self.select_mode_btn.setMinimumSize(QSize(110, 50))
        self.select_mode_btn.setMaximumSize(QSize(110, 50))
        icon1 = QIcon()
        icon1.addFile(SET_MODE_ICON, QSize(), QIcon.Normal, QIcon.Off)
        self.select_mode_btn.setIcon(icon1)
        self.select_mode_btn.setIconSize(QSize(45, 45))

        self.horizontalLayout.addWidget(self.select_mode_btn)

        # кнопка "запуск расчёта"
        self.start_calc_btn = QPushButton(self.top_frame)
        self.start_calc_btn.setObjectName(u"start_calc_btn")
        self.start_calc_btn.setMinimumSize(QSize(110, 50))
        self.start_calc_btn.setMaximumSize(QSize(110, 50))
        icon2 = QIcon()
        icon2.addFile(START_CALC_ICON, QSize(), QIcon.Normal, QIcon.Off)
        self.start_calc_btn.setIcon(icon2)
        self.start_calc_btn.setIconSize(QSize(45, 45))

        self.horizontalLayout.addWidget(self.start_calc_btn)

        self.horizontalSpacer = QSpacerItem(338, 20, QSizePolicy.Expanding,
                                            QSizePolicy.Minimum)

        self.horizontalLayout.addItem(self.horizontalSpacer)

        self.verticalLayout_2.addWidget(self.top_frame)

        self.bottom_frame = QFrame(self.main_frame)
        self.bottom_frame.setObjectName(u"bottom_frame")
        self.bottom_frame.setFrameShape(QFrame.StyledPanel)
        self.bottom_frame.setFrameShadow(QFrame.Raised)
        self.horizontalLayout_2 = QHBoxLayout(self.bottom_frame)
        self.horizontalLayout_2.setSpacing(5)
        self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
        self.horizontalLayout_2.setContentsMargins(5, 5, 5, 5)
        self.input_frame = QFrame(self.bottom_frame)
        self.input_frame.setObjectName(u"input_frame")
        self.input_frame.setMinimumSize(QSize(340, 0))
        self.input_frame.setMaximumSize(QSize(340, 16777215))
        self.input_frame.setFrameShape(QFrame.StyledPanel)
        self.input_frame.setFrameShadow(QFrame.Raised)
        self.verticalLayout_3 = QVBoxLayout(self.input_frame)
        self.verticalLayout_3.setSpacing(5)
        self.verticalLayout_3.setObjectName(u"verticalLayout_3")
        self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)

        # поле ввода длины заготовки
        self.length_layout = QHBoxLayout()
        self.length_layout.setSpacing(5)
        self.length_layout.setObjectName(u"length_layout")
        self.length_label = QLabel(self.input_frame)
        self.length_label.setObjectName(u"length_label")
        self.length_label.setMinimumSize(QSize(165, 25))
        self.length_label.setMaximumSize(QSize(165, 25))
        self.length_layout.addWidget(self.length_label)
        self.length_entry = QLineEdit(self.input_frame)
        self.length_entry.setObjectName(u"length_entry")
        self.length_entry.setMinimumSize(QSize(165, 25))
        self.length_entry.setMaximumSize(QSize(165, 25))
        self.length_layout.addWidget(self.length_entry)
        self.verticalLayout_3.addLayout(self.length_layout)

        # поле ввода длины безусловного отхода
        self.waste_layout = QHBoxLayout()
        self.waste_layout.setSpacing(5)
        self.waste_layout.setObjectName(u"waste_layout")
        self.waste_label = QLabel(self.input_frame)
        self.waste_label.setObjectName(u"waste_label")
        self.waste_label.setMinimumSize(QSize(165, 25))
        self.waste_label.setMaximumSize(QSize(165, 25))
        self.waste_layout.addWidget(self.waste_label)
        self.waste_entry = QLineEdit(self.input_frame)
        self.waste_entry.setObjectName(u"waste_entry")
        self.waste_entry.setMinimumSize(QSize(165, 25))
        self.waste_entry.setMaximumSize(QSize(165, 25))
        self.waste_layout.addWidget(self.waste_entry)
        self.verticalLayout_3.addLayout(self.waste_layout)

        # поле ввода ширины реза
        self.cut_layout = QHBoxLayout()
        self.cut_layout.setSpacing(5)
        self.cut_layout.setObjectName(u"cut_layout")
        self.cut_label = QLabel(self.input_frame)
        self.cut_label.setObjectName(u"cut_label")
        self.cut_label.setMinimumSize(QSize(165, 25))
        self.cut_label.setMaximumSize(QSize(165, 25))
        self.cut_layout.addWidget(self.cut_label)
        self.cut_entry = QLineEdit(self.input_frame)
        self.cut_entry.setObjectName(u"cut_entry")
        self.cut_entry.setMinimumSize(QSize(165, 25))
        self.cut_entry.setMaximumSize(QSize(165, 25))
        self.cut_layout.addWidget(self.cut_entry)
        self.verticalLayout_3.addLayout(self.cut_layout)

        # поле ввода длины подрезки торца заготовки
        self.trim_layout = QHBoxLayout()
        self.trim_layout.setSpacing(5)
        self.trim_layout.setObjectName(u"trim_layout")
        self.trim_label = QLabel(self.input_frame)
        self.trim_label.setObjectName(u"trim_label")
        self.trim_label.setMinimumSize(QSize(165, 25))
        self.trim_label.setMaximumSize(QSize(165, 25))
        self.trim_layout.addWidget(self.trim_label)
        self.trim_entry = QLineEdit(self.input_frame)
        self.trim_entry.setObjectName(u"trim_entry")
        self.trim_entry.setMinimumSize(QSize(165, 25))
        self.trim_entry.setMaximumSize(QSize(165, 25))
        self.trim_layout.addWidget(self.trim_entry)
        self.verticalLayout_3.addLayout(self.trim_layout)

        # таблица ввода длин и количеств элементов
        self.input_table = QTableWidget(self.input_frame)
        if (self.input_table.columnCount() < 2):
            self.input_table.setColumnCount(2)
        if (self.input_table.rowCount() < 7):
            self.input_table.setRowCount(7)
        self.input_table.setObjectName(u"input_table")
        self.input_table.setRowCount(7)
        self.input_table.setColumnCount(2)
        self.input_table.horizontalHeader().setMinimumSectionSize(33)
        self.input_table.horizontalHeader().setDefaultSectionSize(130)
        self.input_table.horizontalHeader().setProperty(
            "showSortIndicator",
            True,
        )
        self.input_table.horizontalHeader().setStretchLastSection(True)
        self.input_table.verticalHeader().setMinimumSectionSize(30)
        self.input_table.verticalHeader().setDefaultSectionSize(30)
        self.verticalLayout_3.addWidget(self.input_table)

        self.horizontalLayout_3 = QHBoxLayout()
        self.horizontalLayout_3.setObjectName(u"horizontalLayout_3")

        # кнопка "добавить строку в конец таблицы"
        self.add_str_button = QPushButton(self.input_frame)
        self.add_str_button.setObjectName(u"add_str_button")
        self.add_str_button.setMinimumSize(QSize(150, 35))
        self.add_str_button.setMaximumSize(QSize(150, 35))
        icon3 = QIcon()
        icon3.addFile(
            ADD_STR_ICON,
            QSize(),
            QIcon.Normal,
            QIcon.Off,
        )
        self.add_str_button.setIcon(icon3)
        self.add_str_button.setIconSize(QSize(25, 25))
        self.horizontalLayout_3.addWidget(self.add_str_button)

        # кнопка "удалить последнюю строку в таблице"
        self.remove_str_button = QPushButton(self.input_frame)
        self.remove_str_button.setObjectName(u"remove_str_button")
        self.remove_str_button.setMinimumSize(QSize(150, 35))
        self.remove_str_button.setMaximumSize(QSize(150, 35))
        icon4 = QIcon()
        icon4.addFile(
            DESTR_STR_ICON,
            QSize(),
            QIcon.Normal,
            QIcon.Off,
        )
        self.remove_str_button.setIcon(icon4)
        self.remove_str_button.setIconSize(QSize(25, 25))
        self.horizontalLayout_3.addWidget(self.remove_str_button)

        self.verticalLayout_3.addLayout(self.horizontalLayout_3)
        self.horizontalLayout_2.addWidget(self.input_frame)

        self.output_frame = QFrame(self.bottom_frame)
        self.output_frame.setObjectName(u"output_frame")
        self.output_frame.setFrameShape(QFrame.StyledPanel)
        self.output_frame.setFrameShadow(QFrame.Raised)
        self.verticalLayout_4 = QVBoxLayout(self.output_frame)
        self.verticalLayout_4.setObjectName(u"verticalLayout_4")

        # поле вывода результатов расчёта
        self.textBrowser = QTextBrowser(self.output_frame)
        self.textBrowser.setObjectName(u"textBrowser")
        self.verticalLayout_4.addWidget(self.textBrowser)

        self.horizontalLayout_4 = QHBoxLayout()
        self.horizontalLayout_4.setObjectName(u"horizontalLayout_4")

        # строка состояния
        self.label_2 = QLabel(self.output_frame)
        self.label_2.setObjectName(u"label_2")
        self.label_2.setMinimumSize(QSize(25, 25))
        self.label_2.setMaximumSize(QSize(16777215, 25))
        self.horizontalLayout_4.addWidget(self.label_2)
        self.horizontalSpacer_2 = QSpacerItem(
            40,
            20,
            QSizePolicy.Expanding,
            QSizePolicy.Minimum,
        )

        self.horizontalLayout_4.addItem(self.horizontalSpacer_2)

        # поле вывода версии программы
        self.label = QLabel(self.output_frame)
        self.label.setObjectName(u"label")
        self.label.setMinimumSize(QSize(0, 25))
        self.label.setMaximumSize(QSize(16777215, 25))

        self.horizontalLayout_4.addWidget(self.label)
        self.verticalLayout_4.addLayout(self.horizontalLayout_4)
        self.horizontalLayout_2.addWidget(self.output_frame)
        self.verticalLayout_2.addWidget(self.bottom_frame)
        self.verticalLayout.addWidget(self.main_frame)

        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)

        QMetaObject.connectSlotsByName(MainWindow)
# setupUi

    def retranslateUi(self, MainWindow):
        MainWindow.setWindowTitle(
            QCoreApplication.translate("MainWindow", u"simple linear nesting",
                                       None))
        # if QT_CONFIG(tooltip)
        self.new_calc_btn.setToolTip(
            QCoreApplication.translate("MainWindow",
                                       u"Clear all fields, Ctrl+N", None))
        # endif // QT_CONFIG(tooltip)
        self.new_calc_btn.setText(
            QCoreApplication.translate("MainWindow", u"new", None))
        # if QT_CONFIG(shortcut)
        self.new_calc_btn.setShortcut(
            QCoreApplication.translate("MainWindow", u"Ctrl+N", None))
        # endif // QT_CONFIG(shortcut)
        # if QT_CONFIG(tooltip)
        self.select_mode_btn.setToolTip(
            QCoreApplication.translate("MainWindow",
                                       u"Select calculation mode, Ctrl+M",
                                       None))
        # endif // QT_CONFIG(tooltip)
        self.select_mode_btn.setText(
            QCoreApplication.translate("MainWindow", u"mode", None))
        # if QT_CONFIG(shortcut)
        self.select_mode_btn.setShortcut(
            QCoreApplication.translate("MainWindow", u"Ctrl+M", None))
        # endif // QT_CONFIG(shortcut)
        # if QT_CONFIG(tooltip)
        self.start_calc_btn.setToolTip(
            QCoreApplication.translate("MainWindow",
                                       u"Start calculation, Ctrl+R", None))
        # endif // QT_CONFIG(tooltip)
        self.start_calc_btn.setText(
            QCoreApplication.translate("MainWindow", u"start", None))
        # if QT_CONFIG(shortcut)
        self.start_calc_btn.setShortcut(
            QCoreApplication.translate("MainWindow", u"Ctrl+R", None))
        # endif // QT_CONFIG(shortcut)
        self.length_label.setText(
            QCoreApplication.translate("MainWindow", u"workpiece length",
                                       None))
        # if QT_CONFIG(tooltip)
        self.length_entry.setToolTip(
            QCoreApplication.translate("MainWindow",
                                       u"Enter the length of the workpiece",
                                       None))
        # endif // QT_CONFIG(tooltip)
        self.waste_label.setText(
            QCoreApplication.translate("MainWindow", u"irreducible waste",
                                       None))
        # if QT_CONFIG(tooltip)
        self.waste_entry.setToolTip(
            QCoreApplication.translate("MainWindow",
                                       u"Enter the length of the waste", None))
        # endif // QT_CONFIG(tooltip)
        self.cut_label.setText(
            QCoreApplication.translate("MainWindow", u"cutting width", None))
        # if QT_CONFIG(tooltip)
        self.cut_entry.setToolTip(
            QCoreApplication.translate("MainWindow",
                                       u"Enter the width of the cutting",
                                       None))
        # endif // QT_CONFIG(tooltip)
        self.trim_label.setText(
            QCoreApplication.translate("MainWindow", u"trim the end", None))
        # if QT_CONFIG(tooltip)
        self.trim_entry.setToolTip(
            QCoreApplication.translate(
                "MainWindow", u"Enter the length of the trimming end", None))
        # endif // QT_CONFIG(tooltip)
        # if QT_CONFIG(tooltip)
        self.add_str_button.setToolTip(
            QCoreApplication.translate(
                "MainWindow", u"Add another row to the table, Ctrl++", None))
        # endif // QT_CONFIG(tooltip)
        self.add_str_button.setText("")
        # if QT_CONFIG(shortcut)
        self.add_str_button.setShortcut(
            QCoreApplication.translate("MainWindow", u"Ctrl++", None))
        # endif // QT_CONFIG(shortcut)
        # if QT_CONFIG(tooltip)
        self.remove_str_button.setToolTip(
            QCoreApplication.translate(
                "MainWindow", u"Delete the last row in the table, Ctrl+-",
                None))
        # endif // QT_CONFIG(tooltip)
        self.remove_str_button.setText("")
        # if QT_CONFIG(shortcut)
        self.remove_str_button.setShortcut(
            QCoreApplication.translate("MainWindow", u"Ctrl+-", None))
        # endif // QT_CONFIG(shortcut)
        self.label_2.setText("")
        self.label.setText(
            QCoreApplication.translate("MainWindow", u"v.0.0.0", None))
class Ui_SplashScreen(object):
    def setupUi(self, SplashScreen):
        if SplashScreen.objectName():
            SplashScreen.setObjectName(u"SplashScreen")
        SplashScreen.resize(680, 400)
        self.centralwidget = QWidget(SplashScreen)
        self.centralwidget.setObjectName(u"centralwidget")
        self.verticalLayout = QVBoxLayout(self.centralwidget)
        self.verticalLayout.setSpacing(0)
        self.verticalLayout.setObjectName(u"verticalLayout")
        self.verticalLayout.setContentsMargins(10, 10, 10, 10)
        self.dropShadowFrame = QFrame(self.centralwidget)
        self.dropShadowFrame.setObjectName(u"dropShadowFrame")
        self.dropShadowFrame.setStyleSheet(
            u"QFrame {\n"
            "background-color: rgb(56, 58, 89);\n"
            "color: rgb(220, 220, 220);\n"
            "border-radius: 10px;\n"
            "}")
        self.dropShadowFrame.setFrameShape(QFrame.StyledPanel)
        self.dropShadowFrame.setFrameShadow(QFrame.Raised)

        self.label_title = QLabel(self.dropShadowFrame)
        self.label_title.setObjectName(u"label_title")
        self.label_title.setGeometry(QRect(0, 90, 661, 61))
        font = QFont()
        font.setFamily(u"Segoe UI")
        font.setPointSize(40)
        self.label_title.setFont(font)
        self.label_title.setStyleSheet(u"color: rgb(254, 121, 199);")
        self.label_title.setAlignment(Qt.AlignCenter)
        self.label_description = QLabel(self.dropShadowFrame)
        self.label_description.setObjectName(u"label_description")
        self.label_description.setGeometry(QRect(0, 150, 661, 31))
        font1 = QFont()
        font1.setFamily(u"Segoe UI")
        font1.setPointSize(14)
        self.label_description.setFont(font1)
        self.label_description.setStyleSheet(u"color: rgb(98, 114, 164);")
        self.label_description.setAlignment(Qt.AlignCenter)
        self.progressBar = QProgressBar(self.dropShadowFrame)
        self.progressBar.setObjectName(u"progressBar")
        self.progressBar.setGeometry(QRect(50, 280, 561, 23))
        self.progressBar.setStyleSheet(
            u"QProgressBar {\n"
            "background-color: rgb(98, 114, 164);\n"
            "color: rgb(200, 200, 200);\n"
            "border-style: none;\n"
            "border-radius: 10px;\n"
            "text-align: center;\n"
            "}\n"
            "QProgressBar::chunk{\n"
            "border-radius: 10px;\n"
            "background-color: "
            "qlineargradient(spread:pad, x1:0, y1:0.511364, x2:1, y2:0.523, stop:0 "
            "rgba(254, 121, 199, 255), stop:1 rgba(170, 85, 255, 255));\n"
            "}")
        self.progressBar.setValue(24)
        self.label_loading = QLabel(self.dropShadowFrame)
        self.label_loading.setObjectName(u"label_loading")
        self.label_loading.setGeometry(QRect(0, 320, 661, 21))
        font2 = QFont()
        font2.setFamily(u"Segoe UI")
        font2.setPointSize(12)
        self.label_loading.setFont(font2)
        self.label_loading.setStyleSheet(u"color: rgb(98, 114, 164);")
        self.label_loading.setAlignment(Qt.AlignCenter)
        self.label_credits = QLabel(self.dropShadowFrame)
        self.label_credits.setObjectName(u"label_credits")
        self.label_credits.setGeometry(QRect(20, 350, 621, 21))
        font3 = QFont()
        font3.setFamily(u"Segoe UI")
        font3.setPointSize(10)
        self.label_credits.setFont(font3)
        self.label_credits.setStyleSheet(u"color: rgb(98, 114, 164);")
        self.label_credits.setAlignment(Qt.AlignRight | Qt.AlignTrailing
                                        | Qt.AlignVCenter)

        self.verticalLayout.addWidget(self.dropShadowFrame)

        SplashScreen.setCentralWidget(self.centralwidget)

        self.retranslateUi(SplashScreen)

        QMetaObject.connectSlotsByName(SplashScreen)

    def retranslateUi(self, SplashScreen):
        SplashScreen.setWindowTitle(
            QCoreApplication.translate("SplashScreen",
                                       u"Cria Card no Trello de Movidesk",
                                       None))
        self.label_title.setText(
            QCoreApplication.translate(
                "SplashScreen",
                u"<strong>Movidesk</strong> to <strong>Trello</strong>", None))
        self.label_description.setText(
            QCoreApplication.translate(
                "SplashScreen", u"<strong>Cria</strong> cards no Trelo", None))
        self.label_loading.setText(
            QCoreApplication.translate("SplashScreen", u"carregando...", None))
        self.label_credits.setText(
            QCoreApplication.translate("SplashScreen", u"<strong></strong>",
                                       None))
Esempio n. 9
0
class Ui_Dialog(object):
    def setupUi(self, Dialog):
        if not Dialog.objectName():
            Dialog.setObjectName(u"Dialog")
        Dialog.resize(450, 235)
        Dialog.setMinimumSize(QSize(450, 235))
        Dialog.setMaximumSize(QSize(450, 235))
        Dialog.setStyleSheet(u"QDialog {\n" "	background:rgb(51,51,51);\n" "}")
        self.verticalLayout = QVBoxLayout(Dialog)
        self.verticalLayout.setSpacing(0)
        self.verticalLayout.setObjectName(u"verticalLayout")
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.frame_2 = QFrame(Dialog)
        self.frame_2.setObjectName(u"frame_2")
        self.frame_2.setStyleSheet(u"background:rgb(51,51,51);")
        self.frame_2.setFrameShape(QFrame.NoFrame)
        self.frame_2.setFrameShadow(QFrame.Plain)
        self.verticalLayout_2 = QVBoxLayout(self.frame_2)
        self.verticalLayout_2.setSpacing(0)
        self.verticalLayout_2.setObjectName(u"verticalLayout_2")
        self.verticalLayout_2.setContentsMargins(2, 2, 2, 2)
        self.frame_top = QFrame(self.frame_2)
        self.frame_top.setObjectName(u"frame_top")
        self.frame_top.setMinimumSize(QSize(0, 55))
        self.frame_top.setMaximumSize(QSize(16777215, 55))
        self.frame_top.setStyleSheet(u"background:rgb(91,90,90);")
        self.frame_top.setFrameShape(QFrame.NoFrame)
        self.frame_top.setFrameShadow(QFrame.Plain)
        self.horizontalLayout = QHBoxLayout(self.frame_top)
        self.horizontalLayout.setSpacing(0)
        self.horizontalLayout.setObjectName(u"horizontalLayout")
        self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
        self.lab_heading = QLabel(self.frame_top)
        self.lab_heading.setObjectName(u"lab_heading")
        font = QFont()
        font.setFamily(u"Segoe UI")
        font.setPointSize(14)
        self.lab_heading.setFont(font)
        self.lab_heading.setStyleSheet(u"color:rgb(255,255,255);")
        self.lab_heading.setAlignment(Qt.AlignCenter)

        self.horizontalLayout.addWidget(self.lab_heading)

        self.bn_min = QPushButton(self.frame_top)
        self.bn_min.setObjectName(u"bn_min")
        self.bn_min.setMinimumSize(QSize(55, 55))
        self.bn_min.setMaximumSize(QSize(55, 55))
        self.bn_min.setStyleSheet(u"QPushButton {\n"
                                  "	border: none;\n"
                                  "	background-color: rgb(51,51,51);\n"
                                  "}\n"
                                  "QPushButton:hover {\n"
                                  "	background-color: rgb(0,143,150);\n"
                                  "}\n"
                                  "QPushButton:pressed {	\n"
                                  "	background-color: rgb(51,51,51);\n"
                                  "}")
        icon = QIcon()
        icon.addFile(u"icons/1x/hideAsset 53.png", QSize(), QIcon.Normal,
                     QIcon.Off)
        self.bn_min.setIcon(icon)
        self.bn_min.setIconSize(QSize(22, 12))
        self.bn_min.setAutoDefault(False)
        self.bn_min.setFlat(True)

        self.horizontalLayout.addWidget(self.bn_min)

        self.bn_close = QPushButton(self.frame_top)
        self.bn_close.setObjectName(u"bn_close")
        self.bn_close.setMinimumSize(QSize(55, 55))
        self.bn_close.setMaximumSize(QSize(55, 55))
        self.bn_close.setStyleSheet(u"QPushButton {\n"
                                    "	border: none;\n"
                                    "	background-color: rgb(51,51,51);\n"
                                    "}\n"
                                    "QPushButton:hover {\n"
                                    "	background-color: rgb(0,143,150);\n"
                                    "}\n"
                                    "QPushButton:pressed {	\n"
                                    "	background-color: rgb(51,51,51);\n"
                                    "}")
        icon1 = QIcon()
        icon1.addFile(u"icons/1x/closeAsset 43.png", QSize(), QIcon.Normal,
                      QIcon.Off)
        self.bn_close.setIcon(icon1)
        self.bn_close.setIconSize(QSize(22, 22))
        self.bn_close.setAutoDefault(False)
        self.bn_close.setFlat(True)

        self.horizontalLayout.addWidget(self.bn_close)

        self.verticalLayout_2.addWidget(self.frame_top)

        self.frame_bottom = QFrame(self.frame_2)
        self.frame_bottom.setObjectName(u"frame_bottom")
        self.frame_bottom.setStyleSheet(u"background:rgb(91,90,90);")
        self.frame_bottom.setFrameShape(QFrame.StyledPanel)
        self.frame_bottom.setFrameShadow(QFrame.Raised)
        self.gridLayout = QGridLayout(self.frame_bottom)
        self.gridLayout.setObjectName(u"gridLayout")
        self.gridLayout.setHorizontalSpacing(5)
        self.gridLayout.setVerticalSpacing(0)
        self.gridLayout.setContentsMargins(15, -1, 35, 0)
        self.bn_east = QPushButton(self.frame_bottom)
        self.bn_east.setObjectName(u"bn_east")
        self.bn_east.setMinimumSize(QSize(69, 25))
        self.bn_east.setMaximumSize(QSize(69, 25))
        font1 = QFont()
        font1.setFamily(u"Segoe UI")
        font1.setPointSize(12)
        self.bn_east.setFont(font1)
        self.bn_east.setStyleSheet(u"QPushButton {\n"
                                   "	border: 2px solid rgb(51,51,51);\n"
                                   "	border-radius: 5px;	\n"
                                   "	color:rgb(255,255,255);\n"
                                   "	background-color: rgb(51,51,51);\n"
                                   "}\n"
                                   "QPushButton:hover {\n"
                                   "	border: 2px solid rgb(0,143,150);\n"
                                   "	background-color: rgb(0,143,150);\n"
                                   "}\n"
                                   "QPushButton:pressed {	\n"
                                   "	border: 2px solid rgb(0,143,150);\n"
                                   "	background-color: rgb(51,51,51);\n"
                                   "}")
        self.bn_east.setAutoDefault(False)

        self.gridLayout.addWidget(self.bn_east, 1, 3, 1, 1)

        self.lab_icon = QLabel(self.frame_bottom)
        self.lab_icon.setObjectName(u"lab_icon")
        self.lab_icon.setMinimumSize(QSize(40, 40))
        self.lab_icon.setMaximumSize(QSize(40, 40))

        self.gridLayout.addWidget(self.lab_icon, 0, 0, 1, 1)

        self.bn_west = QPushButton(self.frame_bottom)
        self.bn_west.setObjectName(u"bn_west")
        self.bn_west.setMinimumSize(QSize(69, 25))
        self.bn_west.setMaximumSize(QSize(69, 25))
        self.bn_west.setFont(font1)
        self.bn_west.setStyleSheet(u"QPushButton {\n"
                                   "	border: 2px solid rgb(51,51,51);\n"
                                   "	border-radius: 5px;	\n"
                                   "	color:rgb(255,255,255);\n"
                                   "	background-color: rgb(51,51,51);\n"
                                   "}\n"
                                   "QPushButton:hover {\n"
                                   "	border: 2px solid rgb(0,143,150);\n"
                                   "	background-color: rgb(0,143,150);\n"
                                   "}\n"
                                   "QPushButton:pressed {	\n"
                                   "	border: 2px solid rgb(0,143,150);\n"
                                   "	background-color: rgb(51,51,51);\n"
                                   "}")
        self.bn_west.setAutoDefault(False)

        self.gridLayout.addWidget(self.bn_west, 1, 2, 1, 1)

        self.lab_message = QLabel(self.frame_bottom)
        self.lab_message.setObjectName(u"lab_message")
        self.lab_message.setFont(font1)
        self.lab_message.setStyleSheet(u"color:rgb(255,255,255);")
        self.lab_message.setWordWrap(True)

        self.gridLayout.addWidget(self.lab_message, 0, 1, 1, 3)

        self.verticalLayout_2.addWidget(self.frame_bottom)

        self.verticalLayout.addWidget(self.frame_2)

        self.retranslateUi(Dialog)

        QMetaObject.connectSlotsByName(Dialog)

    # setupUi

    def retranslateUi(self, Dialog):
        Dialog.setWindowTitle(
            QCoreApplication.translate("Dialog", u"Dialog", None))
        self.lab_heading.setText("")
        self.bn_min.setText("")
        self.bn_close.setText("")
        self.bn_east.setText("")
        self.lab_icon.setText("")
        self.bn_west.setText("")
        self.lab_message.setText("")
Esempio n. 10
0
class Login(QWidget):
    device = None
    deviceList = []

    def __init__(self):
        QWidget.__init__(self)

        self.theme = 2

        screen = QDesktopWidget()
        logging.info("screen size:" + str(screen.width()) + "," +
                     str(screen.height()))

        self.m_width = screen.height() / 2
        self.m_height = screen.height() / 2
        self.resize(self.m_width, self.m_height)
        # self.setFixedSize(self.m_width, self.m_height)
        size = self.geometry()
        self.move((screen.width() - size.width()) / 2,
                  (screen.height() - size.height()) / 2)

        # delete title box
        self.setWindowFlags(Qt.FramelessWindowHint)
        # self.setAttribute(Qt.WA_TranslucentBackground)

        logging.info("login widget size:" + str(self.size()))
        self.bitmap = QBitmap(self.size())
        painter = QPainter(self.bitmap)

        painter.fillRect(self.rect(), Qt.white)

        painter.setBrush(QColor(0, 0, 0))
        painter.setRenderHint(QPainter.Antialiasing, True)
        painter.drawRoundedRect(self.rect(), 10, 10)
        self.setMask(self.bitmap)

        self.layout = QVBoxLayout(self)
        self.layout.setContentsMargins(0, 0, 0, self.m_height / 15)
        self.layout.setSpacing(self.m_height / 15)
        self.topframe = QFrame(self)
        self.topframe.setObjectName("topframe")
        if self.theme == 1:
            self.topframe.setStyleSheet(
                "#topframe{background-color:qlineargradient("
                "spread:pad,"
                "x1:0,y1:0,x2:1,y2:1,"
                "stop:0 #5efce8,"
                "stop:1 #736efe);}")
        elif self.theme == 2:
            self.topframe.setStyleSheet(
                "#topframe{background-color:qlineargradient("
                "spread:pad,"
                "x1:0,y1:0,x2:1,y2:0,"
                "stop:0 #3a6186,"
                "stop:1 #89253e);}")
        elif self.theme == 3:
            self.topframe.setStyleSheet(
                "#topframe{background-color:qlineargradient("
                "spread:pad,"
                "x1:0,y1:0,x2:0,y2:1,"
                "stop:0 #19547b,"
                "stop:1 #ffd89b);}")
        else:
            self.topframe.setStyleSheet(
                "#topframe{background-color:qlineargradient("
                "spread:pad,"
                "x1:0,y1:0,x2:1,y2:1,"
                "stop:0 #ff8177,"
                "stop:1 #b12a5b);}")
        self.layout.addWidget(self.topframe)

        # setup checkbox
        self.combobox = QComboBox(self)
        self.combobox.setObjectName("combobox")
        self.combobox.setFixedSize(self.m_width / 1.5, self.m_height / 10)
        self.combobox.setStyleSheet(
            "QComboBox{border: 2px solid gray;"
            "border-radius:5px;"
            "background-color:rgb(255, 255, 255);"
            "color:rgb(0, 0, 0);"
            "padding: 1px 20px;}"
            "QComboBox:drop-down{subcontrol-origin: padding;"
            "subcontrol-position: top right;"
            "width: 50px;border-left-style:solid;"
            "border-top-right-radius: 3px;"
            "border-bottom-right-radius: 3px;"
            "border-left: 2px solid gray;"
            "background-color: rgba(100, 25, 100, 0);}"
            "QComboBox:down-arrow{border-image:url(icon/arrow-1.png);}"
            "QComboBox:item:selected{background: rgb(232, 241, 250);color: rgb(2, 65, 132);}"
            "QStyledItemDelegate{border: 100px solid rgb(161,161,161);}")

        # self.combobox.move(200, 200)
        self.layout.addWidget(self.combobox, 0, Qt.AlignHCenter)

        # setup login button
        self.loginbtn = QPushButton("ENTER", self)
        self.loginbtn.setObjectName("loginbtn")
        self.loginbtn.setFixedSize(self.m_width / 1.5, self.m_height / 10)
        self.loginbtn.setContentsMargins(200, 20, 20, 20)
        self.loginbtn.clicked.connect(self.login_event)
        self.loginbtn.setStyleSheet(
            "QPushButton{border-radius:%dpx;"
            "background-color:#89253e;"
            "color:rgb(0, 0, 0);}"
            "QPushButton:hover{color:rgb(0, 255, 0);}" % (self.m_height / 20))
        self.layout.addWidget(self.loginbtn, 0, Qt.AlignHCenter)

        # setup exit button
        self.exitbtn = QPushButton(self)
        # self.exitbtn.setText("Close")
        self.exitbtn.setToolTip("Close the widget")
        self.exitbtn.setFixedSize(40, 40)
        self.exitbtn.setIcon(QIcon("icon/close.png"))
        self.exitbtn.setIconSize(QSize(40, 40))
        self.exitbtn.clicked.connect(self.exit_event)
        logging.info("topframesize:" + str(self.topframe.size()))
        self.exitbtn.move(self.width() - 40, 0)
        # self.exitbtn.setGeometry(self.topframe.width()-40, 0, 100, 40)
        self.exitbtn.setStyleSheet("background-color: #600")
        self.exitbtn.setStyleSheet("background-color: transparent")
        self.exitbtn.isEnabled()

        self.logoImage = QPixmap("icon/silabslogo.png")
        self.logo = self.logoImage.scaled(self.m_width / 5, self.m_height / 5,
                                          Qt.KeepAspectRatio,
                                          Qt.SmoothTransformation)

        self.logoLable = QLabel(self)
        self.logoLable.setObjectName("logoLable")
        self.logoLable.setAlignment(Qt.AlignCenter)
        self.logoLable.setPixmap(self.logo)
        self.logoLable.setFixedSize(self.m_width / 4, self.m_height / 4)
        # self.logo.setScaledContents(True)
        self.logoLable.setStyleSheet("#logoLable{border: 2px solid gray;"
                                     "border-radius:75px;"
                                     "background-color:rgb(100, 100, 100);"
                                     "color:rgb(0, 0, 0);}")
        self.logoLable.move(self.m_width / 2 - self.m_width / 8,
                            self.m_height / 6)

        self.m_drag = False
        self.m_DragPosition = 0
        self.MainWindow = 0

    def login_event(self):
        if self.combobox.currentText() == "None":
            return
        self.hide()
        self.device = self.deviceList[self.combobox.currentIndex()]
        self.device.open()
        command = '\xAA' + '\xF2' + '\x01' + '\x00'
        play_thread = USBWriteThread(self.device, command)
        play_thread.start()
        self.MainWindow = OscGui(self.device)
        self.MainWindow.show()

    def exit_event(self):
        exit(0)

    def mousePressEvent(self, event):

        if event.button() == Qt.LeftButton:
            self.m_drag = True
            self.m_DragPosition = event.globalPos() - self.pos()
            event.accept()
            self.setCursor(QCursor(Qt.OpenHandCursor))

    def mouseMoveEvent(self, event):
        if Qt.LeftButton and self.m_drag:
            self.move(event.globalPos() - self.m_DragPosition)
            event.accept()

    def mouseReleaseEvent(self, event):
        self.m_drag = False
        self.setCursor(QCursor(Qt.ArrowCursor))
Esempio n. 11
0
class UiQuestion(object):
    '''Интерфейс диалогового окна программы.
    Created by: Qt User Interface Compiler.
    Задано:
        кнопка "подтвердить";

        кнопка "отклонить".
    '''
    def setupUi(self, Dialog):
        if not Dialog.objectName():
            Dialog.setObjectName(u"Dialog")
        Dialog.resize(300, 200)
        Dialog.setMinimumSize(QSize(300, 200))
        Dialog.setMaximumSize(QSize(300, 200))
        self.verticalLayout = QVBoxLayout(Dialog)
        self.verticalLayout.setSpacing(0)
        self.verticalLayout.setObjectName(u"verticalLayout")
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.dialog_main_frame = QFrame(Dialog)
        self.dialog_main_frame.setObjectName(u"dialog_main_frame")
        self.dialog_main_frame.setFrameShape(QFrame.StyledPanel)
        self.dialog_main_frame.setFrameShadow(QFrame.Raised)
        self.verticalLayout_2 = QVBoxLayout(self.dialog_main_frame)
        self.verticalLayout_2.setSpacing(5)
        self.verticalLayout_2.setObjectName(u"verticalLayout_2")
        self.verticalLayout_2.setContentsMargins(5, 5, 5, 5)
        self.text_frame = QFrame(self.dialog_main_frame)
        self.text_frame.setObjectName(u"text_frame")
        self.text_frame.setFrameShape(QFrame.StyledPanel)
        self.text_frame.setFrameShadow(QFrame.Raised)
        self.verticalLayout_3 = QVBoxLayout(self.text_frame)
        self.verticalLayout_3.setObjectName(u"verticalLayout_3")
        self.question_label = QLabel(self.text_frame)
        self.question_label.setObjectName(u"question_label")
        self.question_label.setAlignment(Qt.AlignCenter)

        self.verticalLayout_3.addWidget(self.question_label)

        self.verticalLayout_2.addWidget(self.text_frame)

        self.buttons_frame = QFrame(self.dialog_main_frame)
        self.buttons_frame.setObjectName(u"buttons_frame")
        self.buttons_frame.setMinimumSize(QSize(0, 50))
        self.buttons_frame.setMaximumSize(QSize(16777215, 50))
        self.buttons_frame.setFrameShape(QFrame.StyledPanel)
        self.buttons_frame.setFrameShadow(QFrame.Raised)
        self.horizontalLayout = QHBoxLayout(self.buttons_frame)
        self.horizontalLayout.setSpacing(5)
        self.horizontalLayout.setObjectName(u"horizontalLayout")
        self.horizontalLayout.setContentsMargins(5, 5, 5, 5)
        self.question_nok_btn = QPushButton(self.buttons_frame)
        self.question_nok_btn.setObjectName(u"question_nok_btn")
        self.question_nok_btn.setMinimumSize(QSize(0, 35))
        self.question_nok_btn.setMaximumSize(QSize(16777215, 35))
        icon = QIcon()
        icon.addFile(DISAGREE_ICON, QSize(), QIcon.Normal, QIcon.Off)
        self.question_nok_btn.setIcon(icon)
        self.question_nok_btn.setIconSize(QSize(25, 25))

        self.horizontalLayout.addWidget(self.question_nok_btn)

        self.question_ok_btn = QPushButton(self.buttons_frame)
        self.question_ok_btn.setObjectName(u"question_ok_btn")
        self.question_ok_btn.setMinimumSize(QSize(0, 35))
        self.question_ok_btn.setMaximumSize(QSize(16777215, 35))
        icon1 = QIcon()
        icon1.addFile(AGREE_ICON, QSize(), QIcon.Normal, QIcon.Off)
        self.question_ok_btn.setIcon(icon1)
        self.question_ok_btn.setIconSize(QSize(25, 25))

        self.horizontalLayout.addWidget(self.question_ok_btn)

        self.verticalLayout_2.addWidget(self.buttons_frame)

        self.verticalLayout.addWidget(self.dialog_main_frame)

        self.retranslateUi(Dialog)

        QMetaObject.connectSlotsByName(Dialog)

    # setupUi

    def retranslateUi(self, Dialog):
        Dialog.setWindowTitle(
            QCoreApplication.translate("Dialog", u"new calculation", None))
        self.question_label.setText(
            QCoreApplication.translate("Dialog", u"Clear all fields?", None))
        # if QT_CONFIG(tooltip)
        self.question_nok_btn.setToolTip(
            QCoreApplication.translate("Dialog", u"cancel", None))
        # endif // QT_CONFIG(tooltip)
        self.question_nok_btn.setText("")
        # if QT_CONFIG(tooltip)
        self.question_ok_btn.setToolTip(
            QCoreApplication.translate("Dialog", u"continue", None))
        # endif // QT_CONFIG(tooltip)
        self.question_ok_btn.setText("")
Esempio n. 12
0
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        if not MainWindow.objectName():
            MainWindow.setObjectName(u"MainWindow")
        MainWindow.resize(800, 550)
        MainWindow.setMinimumSize(QSize(800, 550))
        self.centralwidget = QWidget(MainWindow)
        self.centralwidget.setObjectName(u"centralwidget")
        self.centralwidget.setStyleSheet(u"background:rgb(91,90,90);")
        self.verticalLayout = QVBoxLayout(self.centralwidget)
        self.verticalLayout.setSpacing(0)
        self.verticalLayout.setObjectName(u"verticalLayout")
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.frame_top = QFrame(self.centralwidget)
        self.frame_top.setObjectName(u"frame_top")
        self.frame_top.setMaximumSize(QSize(16777215, 55))
        self.frame_top.setFrameShape(QFrame.NoFrame)
        self.frame_top.setFrameShadow(QFrame.Plain)
        self.horizontalLayout = QHBoxLayout(self.frame_top)
        self.horizontalLayout.setSpacing(0)
        self.horizontalLayout.setObjectName(u"horizontalLayout")
        self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
        self.frame_toodle = QFrame(self.frame_top)
        self.frame_toodle.setObjectName(u"frame_toodle")
        self.frame_toodle.setMinimumSize(QSize(80, 55))
        self.frame_toodle.setMaximumSize(QSize(80, 55))
        self.frame_toodle.setStyleSheet(u"background:rgb(0,143,150);")
        self.frame_toodle.setFrameShape(QFrame.NoFrame)
        self.frame_toodle.setFrameShadow(QFrame.Plain)
        self.horizontalLayout_3 = QHBoxLayout(self.frame_toodle)
        self.horizontalLayout_3.setSpacing(0)
        self.horizontalLayout_3.setObjectName(u"horizontalLayout_3")
        self.horizontalLayout_3.setContentsMargins(0, 0, 0, 0)
        self.toodle = QPushButton(self.frame_toodle)
        self.toodle.setObjectName(u"toodle")
        self.toodle.setMinimumSize(QSize(80, 55))
        self.toodle.setMaximumSize(QSize(80, 55))
        self.toodle.setStyleSheet(u"QPushButton {\n"
                                  "	border: none;\n"
                                  "	background-color: rgba(0,0,0,0);\n"
                                  "}\n"
                                  "QPushButton:hover {\n"
                                  "	background-color: rgb(0,178,178);\n"
                                  "}\n"
                                  "QPushButton:pressed {	\n"
                                  "	background-color: rgba(0,0,0,0);\n"
                                  "}")
        icon = QIcon()
        icon.addFile(u"icons/1x/logo.png", QSize(), QIcon.Normal, QIcon.Off)
        self.toodle.setIcon(icon)
        self.toodle.setIconSize(QSize(22, 12))
        self.toodle.setFlat(True)

        self.horizontalLayout_3.addWidget(self.toodle)

        self.horizontalLayout.addWidget(self.frame_toodle)

        self.frame_top_east = QFrame(self.frame_top)
        self.frame_top_east.setObjectName(u"frame_top_east")
        self.frame_top_east.setMaximumSize(QSize(16777215, 55))
        self.frame_top_east.setStyleSheet(u"background:rgb(51,51,51);")
        self.frame_top_east.setFrameShape(QFrame.NoFrame)
        self.frame_top_east.setFrameShadow(QFrame.Plain)
        self.horizontalLayout_4 = QHBoxLayout(self.frame_top_east)
        self.horizontalLayout_4.setSpacing(0)
        self.horizontalLayout_4.setObjectName(u"horizontalLayout_4")
        self.horizontalLayout_4.setContentsMargins(0, 0, 0, 0)
        self.frame_appname = QFrame(self.frame_top_east)
        self.frame_appname.setObjectName(u"frame_appname")
        self.frame_appname.setFrameShape(QFrame.NoFrame)
        self.frame_appname.setFrameShadow(QFrame.Plain)
        self.horizontalLayout_10 = QHBoxLayout(self.frame_appname)
        self.horizontalLayout_10.setSpacing(7)
        self.horizontalLayout_10.setObjectName(u"horizontalLayout_10")
        self.horizontalLayout_10.setContentsMargins(0, 0, 0, 0)
        self.lab_appname = QLabel(self.frame_appname)
        self.lab_appname.setObjectName(u"lab_appname")
        font = QFont()
        font.setFamily(u"Segoe UI Light")
        font.setPointSize(24)
        self.lab_appname.setFont(font)
        self.lab_appname.setStyleSheet(u"color:rgb(255,255,255);")

        self.horizontalLayout_10.addWidget(self.lab_appname)

        self.horizontalLayout_4.addWidget(self.frame_appname)

        self.frame_min = QFrame(self.frame_top_east)
        self.frame_min.setObjectName(u"frame_min")
        self.frame_min.setMinimumSize(QSize(55, 55))
        self.frame_min.setMaximumSize(QSize(55, 55))
        self.frame_min.setFrameShape(QFrame.NoFrame)
        self.frame_min.setFrameShadow(QFrame.Plain)
        self.horizontalLayout_7 = QHBoxLayout(self.frame_min)
        self.horizontalLayout_7.setSpacing(0)
        self.horizontalLayout_7.setObjectName(u"horizontalLayout_7")
        self.horizontalLayout_7.setContentsMargins(0, 0, 0, 0)
        self.bn_min = QPushButton(self.frame_min)
        self.bn_min.setObjectName(u"bn_min")
        self.bn_min.setMaximumSize(QSize(55, 55))
        self.bn_min.setStyleSheet(u"QPushButton {\n"
                                  "	border: none;\n"
                                  "	background-color: rgba(0,0,0,0);\n"
                                  "}\n"
                                  "QPushButton:hover {\n"
                                  "	background-color: rgb(0,143,150);\n"
                                  "}\n"
                                  "QPushButton:pressed {	\n"
                                  "	background-color: rgba(0,0,0,0);\n"
                                  "}")
        icon1 = QIcon()
        icon1.addFile(u"icons/1x/hideAsset 53.png", QSize(), QIcon.Normal, QIcon.Off)
        self.bn_min.setIcon(icon1)
        self.bn_min.setIconSize(QSize(22, 22))
        self.bn_min.setFlat(True)

        self.horizontalLayout_7.addWidget(self.bn_min)

        self.horizontalLayout_4.addWidget(self.frame_min)

        self.frame_max = QFrame(self.frame_top_east)
        self.frame_max.setObjectName(u"frame_max")
        self.frame_max.setMinimumSize(QSize(55, 55))
        self.frame_max.setMaximumSize(QSize(55, 55))
        self.frame_max.setFrameShape(QFrame.NoFrame)
        self.frame_max.setFrameShadow(QFrame.Plain)
        self.horizontalLayout_6 = QHBoxLayout(self.frame_max)
        self.horizontalLayout_6.setSpacing(0)
        self.horizontalLayout_6.setObjectName(u"horizontalLayout_6")
        self.horizontalLayout_6.setContentsMargins(0, 0, 0, 0)
        self.bn_max = QPushButton(self.frame_max)
        self.bn_max.setObjectName(u"bn_max")
        self.bn_max.setMaximumSize(QSize(55, 55))
        self.bn_max.setStyleSheet(u"QPushButton {\n"
                                  "	border: none;\n"
                                  "	background-color: rgba(0,0,0,0);\n"
                                  "}\n"
                                  "QPushButton:hover {\n"
                                  "	background-color: rgb(0,143,150);\n"
                                  "}\n"
                                  "QPushButton:pressed {	\n"
                                  "	background-color: rgba(0,0,0,0);\n"
                                  "}")
        icon2 = QIcon()
        icon2.addFile(u"icons/1x/max.png", QSize(), QIcon.Normal, QIcon.Off)
        self.bn_max.setIcon(icon2)
        self.bn_max.setIconSize(QSize(22, 22))
        self.bn_max.setFlat(True)

        self.horizontalLayout_6.addWidget(self.bn_max)

        self.horizontalLayout_4.addWidget(self.frame_max)

        self.frame_close = QFrame(self.frame_top_east)
        self.frame_close.setObjectName(u"frame_close")
        self.frame_close.setMinimumSize(QSize(55, 55))
        self.frame_close.setMaximumSize(QSize(55, 55))
        self.frame_close.setFrameShape(QFrame.NoFrame)
        self.frame_close.setFrameShadow(QFrame.Plain)
        self.horizontalLayout_5 = QHBoxLayout(self.frame_close)
        self.horizontalLayout_5.setSpacing(0)
        self.horizontalLayout_5.setObjectName(u"horizontalLayout_5")
        self.horizontalLayout_5.setContentsMargins(0, 0, 0, 0)
        self.bn_close = QPushButton(self.frame_close)
        self.bn_close.setObjectName(u"bn_close")
        self.bn_close.setMaximumSize(QSize(55, 55))
        self.bn_close.setStyleSheet(u"QPushButton {\n"
                                    "	border: none;\n"
                                    "	background-color: rgba(0,0,0,0);\n"
                                    "}\n"
                                    "QPushButton:hover {\n"
                                    "	background-color: rgb(0,143,150);\n"
                                    "}\n"
                                    "QPushButton:pressed {	\n"
                                    "	background-color: rgba(0,0,0,0);\n"
                                    "}")
        icon3 = QIcon()
        icon3.addFile(u"icons/1x/closeAsset 43.png", QSize(), QIcon.Normal, QIcon.Off)
        self.bn_close.setIcon(icon3)
        self.bn_close.setIconSize(QSize(22, 22))
        self.bn_close.setFlat(True)

        self.horizontalLayout_5.addWidget(self.bn_close)

        self.horizontalLayout_4.addWidget(self.frame_close)

        self.horizontalLayout.addWidget(self.frame_top_east)

        self.verticalLayout.addWidget(self.frame_top)

        self.frame_bottom = QFrame(self.centralwidget)
        self.frame_bottom.setObjectName(u"frame_bottom")
        self.frame_bottom.setFrameShape(QFrame.NoFrame)
        self.frame_bottom.setFrameShadow(QFrame.Plain)
        self.horizontalLayout_2 = QHBoxLayout(self.frame_bottom)
        self.horizontalLayout_2.setSpacing(0)
        self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
        self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0)
        self.frame_bottom_west = QFrame(self.frame_bottom)
        self.frame_bottom_west.setObjectName(u"frame_bottom_west")
        self.frame_bottom_west.setMinimumSize(QSize(80, 0))
        self.frame_bottom_west.setMaximumSize(QSize(80, 16777215))
        self.frame_bottom_west.setStyleSheet(u"background:rgb(51,51,51);")
        self.frame_bottom_west.setFrameShape(QFrame.NoFrame)
        self.frame_bottom_west.setFrameShadow(QFrame.Plain)
        self.verticalLayout_3 = QVBoxLayout(self.frame_bottom_west)
        self.verticalLayout_3.setSpacing(0)
        self.verticalLayout_3.setObjectName(u"verticalLayout_3")
        self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
        self.frame_home = QFrame(self.frame_bottom_west)
        self.frame_home.setObjectName(u"frame_home")
        self.frame_home.setMinimumSize(QSize(80, 55))
        self.frame_home.setMaximumSize(QSize(160, 55))
        self.frame_home.setFrameShape(QFrame.NoFrame)
        self.frame_home.setFrameShadow(QFrame.Plain)
        self.horizontalLayout_15 = QHBoxLayout(self.frame_home)
        self.horizontalLayout_15.setSpacing(0)
        self.horizontalLayout_15.setObjectName(u"horizontalLayout_15")
        self.horizontalLayout_15.setContentsMargins(0, 0, 0, 0)
        self.bn_home = QPushButton(self.frame_home)
        self.bn_home.setObjectName(u"bn_home")
        self.bn_home.setMinimumSize(QSize(80, 55))
        self.bn_home.setMaximumSize(QSize(160, 55))
        self.bn_home.setStyleSheet(u"QPushButton {\n"
                                   "	border: none;\n"
                                   "	background-color: rgba(0,0,0,0);\n"
                                   "}\n"
                                   "QPushButton:hover {\n"
                                   "	background-color: rgb(91,90,90);\n"
                                   "}\n"
                                   "QPushButton:pressed {	\n"
                                   "	background-color: rgba(0,0,0,0);\n"
                                   "}")
        icon4 = QIcon()
        icon4.addFile(u"icons/1x/homeAsset 46.png", QSize(), QIcon.Normal, QIcon.Off)
        self.bn_home.setIcon(icon4)
        self.bn_home.setIconSize(QSize(22, 22))
        self.bn_home.setFlat(True)

        self.horizontalLayout_15.addWidget(self.bn_home)

        self.verticalLayout_3.addWidget(self.frame_home)

        self.frame_8 = QFrame(self.frame_bottom_west)
        self.frame_8.setObjectName(u"frame_8")
        self.frame_8.setFrameShape(QFrame.NoFrame)
        self.frame_8.setFrameShadow(QFrame.Plain)
        self.verticalLayout_4 = QVBoxLayout(self.frame_8)
        self.verticalLayout_4.setSpacing(0)
        self.verticalLayout_4.setObjectName(u"verticalLayout_4")
        self.verticalLayout_4.setContentsMargins(0, 0, 0, 0)

        self.verticalLayout_3.addWidget(self.frame_8)

        self.horizontalLayout_2.addWidget(self.frame_bottom_west)

        self.frame_bottom_east = QFrame(self.frame_bottom)
        self.frame_bottom_east.setObjectName(u"frame_bottom_east")
        self.frame_bottom_east.setFrameShape(QFrame.NoFrame)
        self.frame_bottom_east.setFrameShadow(QFrame.Plain)
        self.verticalLayout_2 = QVBoxLayout(self.frame_bottom_east)
        self.verticalLayout_2.setSpacing(0)
        self.verticalLayout_2.setObjectName(u"verticalLayout_2")
        self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
        self.frame = QFrame(self.frame_bottom_east)
        self.frame.setObjectName(u"frame")
        self.frame.setFrameShape(QFrame.NoFrame)
        self.frame.setFrameShadow(QFrame.Plain)
        self.horizontalLayout_14 = QHBoxLayout(self.frame)
        self.horizontalLayout_14.setSpacing(0)
        self.horizontalLayout_14.setObjectName(u"horizontalLayout_14")
        self.horizontalLayout_14.setContentsMargins(0, 0, 0, 0)
        self.stackedWidget = QStackedWidget(self.frame)
        self.stackedWidget.setObjectName(u"stackedWidget")
        self.stackedWidget.setMinimumSize(QSize(0, 55))
        self.stackedWidget.setStyleSheet(u"")
        self.page_home = QWidget()
        self.page_home.setObjectName(u"page_home")
        self.page_home.setStyleSheet(u"background:rgb(91,90,90);")
        self.horizontalLayout_19 = QHBoxLayout(self.page_home)
        self.horizontalLayout_19.setSpacing(0)
        self.horizontalLayout_19.setObjectName(u"horizontalLayout_19")
        self.horizontalLayout_19.setContentsMargins(0, 5, 0, 5)
        self.frame_home_main = QFrame(self.page_home)
        self.frame_home_main.setObjectName(u"frame_home_main")
        self.frame_home_main.setFrameShape(QFrame.NoFrame)
        self.frame_home_main.setFrameShadow(QFrame.Plain)
        self.verticalLayout_5 = QVBoxLayout(self.frame_home_main)
        self.verticalLayout_5.setSpacing(5)
        self.verticalLayout_5.setObjectName(u"verticalLayout_5")
        self.verticalLayout_5.setContentsMargins(5, 5, 5, 5)
        font1 = QFont()
        font1.setFamily(u"Segoe UI Semilight")
        font1.setPointSize(10)
        self.lab_home_main_disc = QLabel(self.frame_home_main)
        self.lab_home_main_disc.setObjectName(u"lab_home_main_disc")
        font2 = QFont()
        font2.setFamily(u"Segoe UI")
        font2.setPointSize(10)
        self.lab_home_main_disc.setFont(font2)
        self.lab_home_main_disc.setStyleSheet(u"color:rgb(255,255,255);")
        self.lab_home_main_disc.setAlignment(Qt.AlignLeading | Qt.AlignLeft | Qt.AlignTop)
        self.lab_home_main_disc.setWordWrap(True)
        self.lab_home_main_disc.setMargin(5)

        self.verticalLayout_5.addWidget(self.lab_home_main_disc)

        self.horizontalLayout_19.addWidget(self.frame_home_main)

        self.vert_divide = QFrame(self.page_home)
        self.vert_divide.setObjectName(u"vert_divide")
        self.vert_divide.setFrameShape(QFrame.VLine)
        self.vert_divide.setFrameShadow(QFrame.Sunken)

        self.horizontalLayout_19.addWidget(self.vert_divide)

        self.frame_home_stat = QFrame(self.page_home)
        self.frame_home_stat.setObjectName(u"frame_home_stat")
        self.frame_home_stat.setMinimumSize(QSize(220, 0))
        self.frame_home_stat.setMaximumSize(QSize(220, 16777215))
        self.frame_home_stat.setFrameShape(QFrame.NoFrame)
        self.frame_home_stat.setFrameShadow(QFrame.Plain)
        self.verticalLayout_6 = QVBoxLayout(self.frame_home_stat)
        self.verticalLayout_6.setSpacing(5)
        self.verticalLayout_6.setObjectName(u"verticalLayout_6")
        self.verticalLayout_6.setContentsMargins(5, 5, 5, 5)

        self.bn_home_image = QPushButton(self.frame_home_stat)
        self.bn_home_image.setObjectName(u"bn_home_image")
        self.bn_home_image.setEnabled(True)
        self.bn_home_image.setMinimumSize(QSize(205, 25))
        self.bn_home_image.setMaximumSize(QSize(205, 25))
        self.bn_home_image.setFont(font1)
        self.bn_home_image.setStyleSheet(u"QPushButton {\n"
                                         "	border: 2px solid rgb(51,51,51);\n"
                                         "	border-radius: 5px;	\n"
                                         "	color:rgb(255,255,255);\n"
                                         "	background-color: rgb(51,51,51);\n"
                                         "}\n"
                                         "QPushButton:hover {\n"
                                         "	border: 2px solid rgb(0,143,150);\n"
                                         "	background-color: rgb(0,143,150);\n"
                                         "}\n"
                                         "QPushButton:pressed {	\n"
                                         "	border: 2px solid rgb(0,143,150);\n"
                                         "	background-color: rgb(51,51,51);\n"
                                         "}\n"
                                         "\n"
                                         "QPushButton:disabled {	\n"
                                         "	border-radius: 5px;	\n"
                                         "	border: 2px solid rgb(112,112,112);\n"
                                         "	background-color: rgb(112,112,112);\n"
                                         "}")

        self.verticalLayout_6.addWidget(self.bn_home_image)

        self.bn_home_rec = QPushButton(self.frame_home_stat)
        self.bn_home_rec.setObjectName(u"bn_home_rec")
        self.bn_home_rec.setEnabled(True)
        self.bn_home_rec.setMinimumSize(QSize(205, 25))
        self.bn_home_rec.setMaximumSize(QSize(205, 25))
        self.bn_home_rec.setFont(font1)
        self.bn_home_rec.setStyleSheet(u"QPushButton {\n"
                                       "	border: 2px solid rgb(51,51,51);\n"
                                       "	border-radius: 5px;	\n"
                                       "	color:rgb(255,255,255);\n"
                                       "	background-color: rgb(51,51,51);\n"
                                       "}\n"
                                       "QPushButton:hover {\n"
                                       "	border: 2px solid rgb(0,143,150);\n"
                                       "	background-color: rgb(0,143,150);\n"
                                       "}\n"
                                       "QPushButton:pressed {	\n"
                                       "	border: 2px solid rgb(0,143,150);\n"
                                       "	background-color: rgb(51,51,51);\n"
                                       "}\n"
                                       "\n"
                                       "QPushButton:disabled {	\n"
                                       "	border-radius: 5px;	\n"
                                       "	border: 2px solid rgb(112,112,112);\n"
                                       "	background-color: rgb(112,112,112);\n"
                                       "}")

        self.verticalLayout_6.addWidget(self.bn_home_rec)

        self.horizontalLayout_19.addWidget(self.frame_home_stat)

        self.stackedWidget.addWidget(self.page_home)
        self.page_about_home = QWidget()
        self.page_about_home.setObjectName(u"page_about_home")
        self.page_about_home.setStyleSheet(u"background:rgb(91,90,90);")
        self.verticalLayout_13 = QVBoxLayout(self.page_about_home)
        self.verticalLayout_13.setSpacing(5)
        self.verticalLayout_13.setObjectName(u"verticalLayout_13")
        self.verticalLayout_13.setContentsMargins(5, 5, 5, 5)
        self.lab_about_home = QLabel(self.page_about_home)
        self.lab_about_home.setObjectName(u"lab_about_home")
        self.lab_about_home.setMinimumSize(QSize(0, 55))
        self.lab_about_home.setMaximumSize(QSize(16777215, 55))
        font3 = QFont()
        font3.setFamily(u"Segoe UI")
        font3.setPointSize(24)
        self.lab_about_home.setFont(font3)
        self.lab_about_home.setStyleSheet(u"color:rgb(255,255,255);")

        self.verticalLayout_13.addWidget(self.lab_about_home)

        self.frame_about_home = QFrame(self.page_about_home)
        self.frame_about_home.setObjectName(u"frame_about_home")
        self.frame_about_home.setFrameShape(QFrame.StyledPanel)
        self.frame_about_home.setFrameShadow(QFrame.Raised)
        self.horizontalLayout_28 = QHBoxLayout(self.frame_about_home)
        self.horizontalLayout_28.setSpacing(0)
        self.horizontalLayout_28.setObjectName(u"horizontalLayout_28")
        self.horizontalLayout_28.setContentsMargins(5, 5, 0, 5)
        self.text_about_home = QTextEdit(self.frame_about_home)
        self.text_about_home.setObjectName(u"text_about_home")
        self.text_about_home.setEnabled(True)
        self.text_about_home.setFont(font2)
        self.text_about_home.setStyleSheet(u"color:rgb(255,255,255);")
        self.text_about_home.setFrameShape(QFrame.NoFrame)
        self.text_about_home.setFrameShadow(QFrame.Plain)
        self.text_about_home.setReadOnly(True)
        self.text_about_home.setTextInteractionFlags(Qt.TextBrowserInteraction)

        self.horizontalLayout_28.addWidget(self.text_about_home)

        self.vsb_about_home = QScrollBar(self.frame_about_home)
        self.vsb_about_home.setObjectName(u"vsb_about_home")
        self.vsb_about_home.setStyleSheet(u"QScrollBar:vertical {\n"
                                          "	background:rgb(51,51,51);\n"
                                          "    width:20px;\n"
                                          "    margin: 0px 0px 0px 0px;\n"
                                          "}\n"
                                          "QScrollBar::handle:vertical {\n"
                                          "    background:rgb(0,143,170);\n"
                                          "}\n"
                                          "QScrollBar::add-page:vertical {\n"
                                          " 	background:rgb(51,51,51);\n"
                                          "}\n"
                                          "QScrollBar::sub-page:vertical {\n"
                                          " 	background:rgb(51,51,51);\n"
                                          "}")
        self.vsb_about_home.setOrientation(Qt.Vertical)

        self.horizontalLayout_28.addWidget(self.vsb_about_home)
        self.verticalLayout_13.addWidget(self.frame_about_home)
        self.stackedWidget.addWidget(self.page_about_home)

        self.horizontalLayout_14.addWidget(self.stackedWidget)
        self.verticalLayout_2.addWidget(self.frame)

        self.frame_low = QFrame(self.frame_bottom_east)
        self.frame_low.setObjectName(u"frame_low")
        self.frame_low.setMinimumSize(QSize(0, 20))
        self.frame_low.setMaximumSize(QSize(16777215, 20))
        self.frame_low.setStyleSheet(u"")
        self.frame_low.setFrameShape(QFrame.NoFrame)
        self.frame_low.setFrameShadow(QFrame.Plain)
        self.horizontalLayout_11 = QHBoxLayout(self.frame_low)
        self.horizontalLayout_11.setSpacing(0)
        self.horizontalLayout_11.setObjectName(u"horizontalLayout_11")
        self.horizontalLayout_11.setContentsMargins(0, 0, 0, 0)
        self.frame_tab = QFrame(self.frame_low)
        self.frame_tab.setObjectName(u"frame_tab")
        font10 = QFont()
        font10.setFamily(u"Segoe UI")
        self.frame_tab.setFont(font10)
        self.frame_tab.setStyleSheet(u"background:rgb(51,51,51);")
        self.frame_tab.setFrameShape(QFrame.NoFrame)
        self.frame_tab.setFrameShadow(QFrame.Plain)
        self.horizontalLayout_12 = QHBoxLayout(self.frame_tab)
        self.horizontalLayout_12.setSpacing(0)
        self.horizontalLayout_12.setObjectName(u"horizontalLayout_12")
        self.horizontalLayout_12.setContentsMargins(0, 0, 0, 0)
        self.lab_tab = QLabel(self.frame_tab)
        self.lab_tab.setObjectName(u"lab_tab")
        font11 = QFont()
        font11.setFamily(u"Segoe UI Light")
        font11.setPointSize(10)
        self.lab_tab.setFont(font11)
        self.lab_tab.setStyleSheet(u"color:rgb(255,255,255);")
        self.horizontalLayout_12.addWidget(self.lab_tab)
        self.horizontalLayout_11.addWidget(self.frame_tab)

        self.frame_drag = QFrame(self.frame_low)
        self.frame_drag.setObjectName(u"frame_drag")
        self.frame_drag.setMinimumSize(QSize(20, 20))
        self.frame_drag.setMaximumSize(QSize(20, 20))
        self.frame_drag.setStyleSheet(u"background:rgb(51,51,51);")
        self.frame_drag.setFrameShape(QFrame.NoFrame)
        self.frame_drag.setFrameShadow(QFrame.Plain)
        self.horizontalLayout_13 = QHBoxLayout(self.frame_drag)
        self.horizontalLayout_13.setSpacing(0)
        self.horizontalLayout_13.setObjectName(u"horizontalLayout_13")
        self.horizontalLayout_13.setContentsMargins(0, 0, 0, 0)

        self.horizontalLayout_11.addWidget(self.frame_drag)
        self.verticalLayout_2.addWidget(self.frame_low)

        self.horizontalLayout_2.addWidget(self.frame_bottom_east)
        self.verticalLayout.addWidget(self.frame_bottom)

        MainWindow.setCentralWidget(self.centralwidget)
        self.retranslateUi(MainWindow)
        self.stackedWidget.setCurrentIndex(7)

        QMetaObject.connectSlotsByName(MainWindow)

    # setupUi

    def retranslateUi(self, MainWindow):
        MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"MainWindow", None))
        self.toodle.setText("")
        self.lab_appname.setText(
            QCoreApplication.translate("MainWindow", u"<html><head/><body><p><br/></p></body></html>", None))
        self.bn_min.setToolTip(QCoreApplication.translate("MainWindow", u"Minimize", None))
        self.bn_min.setText("")
        self.bn_max.setToolTip(QCoreApplication.translate("MainWindow", u"Maximize", None))
        self.bn_max.setText("")
        self.bn_close.setToolTip(QCoreApplication.translate("MainWindow", u"Close", None))
        self.bn_close.setText("")
        self.bn_home.setToolTip(QCoreApplication.translate("MainWindow", u"Home", None))
        self.bn_home.setText("")
        self.lab_about_home.setText(QCoreApplication.translate("MainWindow", u"How to use", None))
        self.bn_home_image.setText(QCoreApplication.translate("MainWindow", u"Upload Image", None))
        self.bn_home_rec.setText(QCoreApplication.translate("MainWindow", u"Recognition", None))
        self.lab_tab.setText(
            QCoreApplication.translate("MainWindow", u"<html><head/><body><p><br/></p></body></html>", None))
        self.frame_drag.setToolTip(QCoreApplication.translate("MainWindow", u"Drag", None))
class PreprocessingImageWindow(QMainWindow):

    def close_application(self):
        """
            This function close the window.
        """
        sys.exit()
    
    def save(self) :
        self.dico = saveColumn1Dataset (self.dataset_path)
        saveColumn2Dataset (self.training_data, self.dico, self.file_name)
    
    def showTable(self):
        """
            This function display the corresponding matrix to an image
        """
        self.tableWidget.setVisible (True)
        if hasattr (self, 'image') :
            self.image.setVisible (False)
        self.pushButton_table.setEnabled (False)
        self.pushButton_next.setEnabled(True)
        global index_data_pre
    
        self.frame_3.setGeometry (QtCore.QRect (10, 180, 1000, 450))
        self.tableWidget.setRowCount(int (globals.height_m))
        self.tableWidget.setColumnCount(int (globals.length_m))
        matrix_image, id_class = self.training_data[globals.index_data_pre]
        for i, row in enumerate (matrix_image) :
            for j, val in enumerate (row) :
                self.tableWidget.setItem (i, j, QTableWidgetItem (str (val)))
    
    def preprocess(self):
        """
            This function preprocess an image dataset.
        """
        if self.dataset_path != None :
            if self.input_length.text() == "0" or self.input_length.text() == "":
                self.input_length.setText("30")
    
            if self.input_height.text() == "0" or self.input_height.text() == "":
                self.input_height.setText("30")
    
            # Setting values for matrix sizes
        global length_m
        global height_m
        globals.length_m = int(self.input_length.text())
        globals.height_m = int(self.input_height.text())
        ## Preprocessing
        global input_array
        global output_array
        f = open(self.dataset_path,'r')
        categories = list()
        f.readline()
        for ligne in f.readlines() :
            var=ligne.strip().split(',')
            classe=var[1] #class
            if classe not in categories :
                categories.append(classe)
        self.training_data = Preprocessing (self.dataset_path, self.file_path)
        for i in range (len (self.training_data)) :
            matrix, id_class = self.training_data[i]
            globals.input_array.append (matrix)
            globals.output_array.append (categories[id_class])
        self.start.setEnabled (False)
        self.input_height.setEnabled(False)
        self.input_length.setEnabled (False)
        self.pushButton_table.setEnabled (True)
        self.pushButton_save.setEnabled (True)


    def open_dataset (self) :
        """
            This function looks for the csv file and initializes the Window attributes.
        """
        global dataset_name
        dlg = QFileDialog()
        dlg.setFileMode(QFileDialog.AnyFile)
        dlg.selectNameFilter("Csv data files (*.csv)")
        dlg.setNameFilter("Arff data files (*.arff) ;; Csv data files (*.csv) ;; All files (*.*)")
        filenames = []
        if dlg.exec_():
            filenames = dlg.selectedFiles()
            f = open(filenames[0], 'r')
            self.dataset_path = str(filenames[0])
            with f:
                self.textEdit.setText(filenames[0].split('/')[-1])
                self.file_name = filenames[0].split('/')[-1].split('.')[0]
        if self.dataset_path != None :
            self.file_path = os.path.dirname(self.dataset_path) + globals.directory
            globals.dataset_name = self.file_name
    
        ## RESET
        global input_height
        global input_length
        global index_data
        global index_data_pre
        global input_array
        global output_array
    
        globals.input_height = 0
        globals.input_length = 0
        globals.index_data = 0
        globals.index_data_pre = 0
        globals.input_array = []
        globals.output_array = []
        self.frame_3.setGeometry(QtCore.QRect(10, 180, 1000, 450))
        self.pushButton_next.setEnabled (False)
        self.pushButton_previous.setEnabled (False)
        self.start.setEnabled (False)
        self.valider.setEnabled(True)
        self.pushButton_save.setEnabled (False)
        self.pushButton_table.setEnabled (False)
        if hasattr (self, 'tableWidget') :
            self.tableWidget.setVisible (False)
        if hasattr (self, 'image') :
            self.image.setVisible (False)



    def get_dataset_information(self):
        """
            This function gets information about the dataset such as the number of instances and the number of classes.
        """
        text="Nombre d'instances: "+str(get_number_instances(self.dataset_path))
        self.label_instances.setText(text)
        text = "Nombre de classes: " + str (get_number_class (self.dataset_path))
        self.label_classes.setText(text)
    
        self.input_height.setEnabled(True)
        self.input_length.setEnabled(True)
        self.valider.setEnabled (False)
        self.start.setEnabled(True)
        self.pushButton_next.setEnabled (True)
        if hasattr (self, 'training_data') :
            self.pushButton_table.setEnabled (True)
    
        self.frame_3.setGeometry (QtCore.QRect (250, 180, 500, 450))
        if not hasattr (self, 'image') :
            self.image = QLabel (self.frame_3)
            self.image.setGeometry (QtCore.QRect (0,0,500, 450))
            self.image.setObjectName ("image")
        image_list = []
        global index_data
        csv_file = open (self.dataset_path, "r")
        csv_file.readline()
        for line in csv_file.readlines() :
            var = line.strip().split(',')
            image_list.append (var[0])
        csv_file.close()
        self.image.setPixmap (QtGui.QPixmap (self.file_path + image_list[globals.index_data]).scaled (500, 450))
        self.image.show()




    def previous_state(self):
        """
            This function returns to the previous instance in the dataset.
        """
        global index_data
        global index_data_pre
        if self.pushButton_table.isEnabled() or not hasattr(self, 'training_data'):
            if globals.index_data - 1 >= 0 :
                globals.index_data -= 1
            if globals.index_data - 1 < 0:
                self.pushButton_next.setEnabled(True)
                self.pushButton_previous.setEnabled(False)
    
        else :
            if globals.index_data_pre - 1 >= 0 :
                globals.index_data_pre -= 1
            if globals.index_data_pre - 1 < 0:
                self.pushButton_next.setEnabled(True)
                self.pushButton_previous.setEnabled(False)
    
        if not self.valider.isEnabled () and not hasattr(self, "training_data"):
            if hasattr (self, 'training_data') and self.start.isEnabled():
                self.pushButton_table.setEnabled(False)
            elif hasattr (self, 'training_data') :
                self.pushButton_table.setEnabled (True)
    
            self.frame_3.setGeometry (QtCore.QRect (250, 180, 500, 450))
            if not hasattr (self, 'image') :
                self.image = QLabel (self.frame_3)
                self.image.setGeometry (QtCore.QRect (0,0,500, 450))
                self.image.setObjectName ("image")
            image_list = []
            global index_data
            csv_file = open (self.dataset_path, "r")
            csv_file.readline()
            for line in csv_file.readlines() :
                var = line.strip().split(',')
                image_list.append (var[0])
            csv_file.close()
    
            self.image.setPixmap (QtGui.QPixmap (self.file_path + image_list[globals.index_data]).scaled (500, 450))
            self.image.show()
        else :
            self.showTable()


    def next_state(self):
        """
            This function goes to the next instance in the dataset.
        """
        global index_data
        global index_data_pre
        if self.pushButton_table.isEnabled() or not hasattr( self, 'training_data' ): # Image Mode
            if globals.index_data + 1 < get_number_instances (self.dataset_path):
                globals.index_data += 1
            if globals.index_data + 1 >= get_number_instances(self.dataset_path):
                self.pushButton_next.setEnabled(False)
                self.pushButton_previous.setEnabled(True)
    
        else :
            if globals.index_data_pre + 1 < get_number_instances (self.dataset_path) * 2:
                globals.index_data_pre += 1
            if globals.index_data_pre + 1 >= get_number_instances(self.dataset_path):
                self.pushButton_next.setEnabled(False)
                self.pushButton_previous.setEnabled(True)
        if not self.valider.isEnabled () and not hasattr (self, "training_data"):
            if hasattr (self, 'training_data') and self.start.isEnabled():
                self.pushButton_table.setEnabled(False)
            elif hasattr (self, 'training_data') :
                self.pushButton_table.setEnabled (True)
    
            self.frame_3.setGeometry (QtCore.QRect (250, 180, 500, 450))
            if not hasattr (self, 'image') :
                self.image = QLabel (self.frame_3)
                self.image.setGeometry (QtCore.QRect (0,0,500, 450))
                self.image.setObjectName ("image")
            image_list = []
            global index_data
            csv_file = open (self.dataset_path, "r")
            csv_file.readline()
            for line in csv_file.readlines() :
                var = line.strip().split(',')
                image_list.append (var[0])
            csv_file.close()
    
            self.image.setPixmap (QtGui.QPixmap (self.file_path + image_list[globals.index_data]).scaled (500, 450))
            self.image.show()
        else :
            self.showTable ()

## GUI
    
    def __init__(self, *args, **kwargs):
        super(PreprocessingImageWindow, self).__init__(*args, **kwargs)
        self.file_path = None
        self.file_name = None
        self.dataset_path = None


        self.setObjectName("self")
        self.resize(1280, 720)
        self.setAutoFillBackground(True)
        self.setFixedSize(1280, 720)
    
        self.centralwidget = QWidget(self)
        self.centralwidget.setAutoFillBackground(True)
        self.centralwidget.setObjectName("centralwidget")



        self.gridLayout = QGridLayout(self.centralwidget)
        self.gridLayout.setObjectName("gridLayout")
        self.tabWidget = QTabWidget(self.centralwidget)
        self.tabWidget.setAutoFillBackground(True)
        self.tabWidget.setObjectName("tabWidget")


        ## INFO BOX:
        self.tab1 = QWidget()
        self.tab1.setAutoFillBackground(True)
        self.tab1.setObjectName("tab1")
        self.frame = QFrame(self.tab1)
        self.frame.setGeometry(QtCore.QRect(10, 60, 1000, 111))
        self.frame.setAutoFillBackground(True)
        self.frame.setFrameShape(QFrame.StyledPanel)
        self.frame.setFrameShadow(QFrame.Raised)
        self.frame.setObjectName("frame")
        self.label_2 = QLabel(self.frame)
        self.label_2.setGeometry(QtCore.QRect(11, 10, 184, 17))
        font = QtGui.QFont()
        font.setItalic(True)
        self.label_2.setFont(font)
        self.label_2.setObjectName("label_2")
        self.widget = QWidget(self.frame)
        self.widget.setGeometry(QtCore.QRect(100, 30, 301, 65))
        self.widget.setObjectName("widget")
        self.verticalLayout = QVBoxLayout(self.widget)
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout.setObjectName("verticalLayout")
        self.label_instances = QLabel(self.widget)
        self.label_instances.setObjectName("label_instances")
        self.verticalLayout.addWidget(self.label_instances)
        self.label_classes = QLabel(self.widget)
        self.label_classes.setObjectName("label_classes")
        self.verticalLayout.addWidget(self.label_classes)
    
        ## Frame 2 PARAMETERS
        self.frame_2 = QFrame(self.tab1)
        self.frame_2.setGeometry(QtCore.QRect(1030, 60, 211, 261))
        self.frame_2.setAutoFillBackground(True)
        self.frame_2.setFrameShape(QFrame.StyledPanel)
        self.frame_2.setFrameShadow(QFrame.Raised)
        self.frame_2.setObjectName("frame_2")
    
        self.toolBox = QToolBox(self.frame_2)
        self.toolBox.setGeometry(QtCore.QRect(10, 40, 191, 151))
        self.toolBox.setObjectName("toolBox")
    
        self.page_resize = QWidget()
        self.page_resize.setGeometry(QtCore.QRect(100, 0, 191, 89))
        self.page_resize.setObjectName("page_resize")
    
        self.layoutWidget = QWidget(self.page_resize)
        self.layoutWidget.setGeometry(QtCore.QRect(0, 0, 188, 52))
        self.layoutWidget.setObjectName("layoutWidget")
    
        self.verticalLayout_2 = QVBoxLayout(self.layoutWidget)
        self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
    
        self.form = QFormLayout ()
    
        self.input_length = QLineEdit()
        self.input_length.setValidator (QtGui.QIntValidator())
        self.input_length.setObjectName("Choose_length")
        self.verticalLayout_2.addWidget(self.input_length)
        self.input_length.setEnabled (False)


        self.input_height = QLineEdit()
        self.input_height.setValidator (QtGui.QIntValidator())
        self.input_height.setObjectName("Choose_height")
        self.verticalLayout_2.addWidget(self.input_height)
        self.input_height.setEnabled (False)
    
        self.form.addRow ("Length :", self.input_length)
    
        self.start = QPushButton(self.frame_2)
        self.start.setObjectName("pushButton_start")
        self.verticalLayout_2.addWidget(self.start)
        self.page_resize.setLayout (self.form)
    
        self.form.addRow ("height :", self.input_height)
        self.form.addRow (self.start)


        self.input_length.setText ("40")
        self.input_height.setText ("40")



        self.toolBox.addItem(self.page_resize, "")
        self.label_3 = QLabel(self.frame_2)
        self.label_3.setGeometry(QtCore.QRect(10, 10, 181, 17))
        font = QtGui.QFont()
        font.setItalic(True)
        self.label_3.setFont(font)
        self.label_3.setObjectName("label_3")


        ## Frame 3 DISPLAY
        self.frame_3 = QFrame(self.tab1)
        self.frame_3.setGeometry(QtCore.QRect(10, 180, 1000, 450))
        self.frame_3.setAutoFillBackground(True)
        self.frame_3.setFrameShape(QFrame.StyledPanel)
        self.frame_3.setFrameShadow(QFrame.Raised)
        self.frame_3.setObjectName("frame_3")
    
        ## Display matrix
        self.tableWidget = QTableWidget(self.frame_3)
        self.tableWidget.setGeometry(QtCore.QRect(0, 0, 1000, 450))
        self.tableWidget.setAutoFillBackground(True)
        self.tableWidget.setObjectName("tableWidget")
        self.tableWidget.setColumnCount(0)
        self.tableWidget.setRowCount(0)


        ## Frame 4 VISUALIZATION
        self.frame_4 = QFrame(self.tab1)
        self.frame_4.setGeometry(QtCore.QRect(1030, 330, 211, 191))
        self.frame_4.setFrameShape(QFrame.StyledPanel)
        self.frame_4.setFrameShadow(QFrame.Raised)
        self.frame_4.setObjectName("frame_4")


        ## BUTTON FOR VISUALIZATION
        self.pushButton_previous= QPushButton(self.frame_4)
        self.pushButton_previous.setGeometry(QtCore.QRect(50, 40, 121, 41))
        self.pushButton_previous.setIconSize(QtCore.QSize(30, 30))
        self.pushButton_previous.setAutoDefault(False)
        self.pushButton_previous.setDefault(False)
        self.pushButton_previous.setFlat(False)
        self.pushButton_previous.setObjectName("pushButton_previous")
    
        self.pushButton_next = QPushButton(self.frame_4)
        self.pushButton_next.setGeometry(QtCore.QRect(50, 85, 121, 41))
        self.pushButton_next.setObjectName("pushButton_next")


        self.pushButton_table = QPushButton (self.frame_4)
        self.pushButton_table.setGeometry (QtCore.QRect (50, 130, 121, 41))
        self.pushButton_table.setObjectName ("pushButton_table")


        ## SAVE
        self.frame_5 = QFrame(self.tab1)
        self.frame_5.setGeometry(QtCore.QRect(1080, 550, 121, 41))
        self.frame_5.setFrameShape(QFrame.StyledPanel)
        self.frame_5.setFrameShadow(QFrame.Raised)
        self.frame_5.setObjectName("frame_5")
    
        self.pushButton_save = QPushButton (self.frame_5)
        self.pushButton_save.setGeometry (QtCore.QRect (0, 0, 121, 41))
        self.pushButton_save.setObjectName ("pushButton_save")


        ## RETURN BUTTON
        self.frame_6 = QFrame(self.tab1)
        self.frame_6.setGeometry(QtCore.QRect(1080, 10, 121, 41))
        self.frame_6.setFrameShape(QFrame.StyledPanel)
        self.frame_6.setFrameShadow(QFrame.Raised)
        self.frame_6.setObjectName("frame_6")
    
        self.pushButton_return = QPushButton (self.frame_6)
        self.pushButton_return.setGeometry (QtCore.QRect (0, 0, 121, 41))
        self.pushButton_return.setObjectName ("pushButton_return")



        self.label_4 = QLabel(self.frame_4)
        self.label_4.setGeometry(QtCore.QRect(10, 10, 111, 17))
        font = QtGui.QFont()
        font.setItalic(True)
        self.label_4.setFont(font)
        self.label_4.setObjectName("label_4")
        self.layoutWidget2 = QWidget(self.tab1)
        self.layoutWidget2.setGeometry(QtCore.QRect(10, 20, 611, 31))
        self.layoutWidget2.setObjectName("layoutWidget2")
        self.horizontalLayout = QHBoxLayout(self.layoutWidget2)
        self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.label = QLabel(self.layoutWidget2)
        font = QtGui.QFont()
        font.setItalic(True)
        self.label.setFont(font)
        self.label.setObjectName("label")
        self.horizontalLayout.addWidget(self.label)
        self.textEdit = QTextEdit(self.layoutWidget2)
        self.textEdit.setObjectName("textEdit")
        self.horizontalLayout.addWidget(self.textEdit)
        self.toolButton = QToolButton(self.layoutWidget2)
        self.toolButton.setObjectName("toolButton")
        self.horizontalLayout.addWidget(self.toolButton)
        self.valider = QPushButton(self.layoutWidget2)
        self.valider.setObjectName("valider")
        self.horizontalLayout.addWidget(self.valider)
        self.tabWidget.addTab(self.tab1, "")
        self.gridLayout.addWidget(self.tabWidget, 0, 1, 1, 1)
        self.setCentralWidget(self.centralwidget)


        self.lbl = QLabel(self.frame_3)
        self.lbl.setGeometry(QtCore.QRect(10, 180, 0, 381))


        ## ACTIVATED OR NOT
        self.tableWidget.setVisible(False)
        self.pushButton_next.setEnabled(False)
        self.pushButton_previous.setEnabled(False)
        self.valider.setEnabled(False)
        self.start.setEnabled(False)
        self.pushButton_table.setEnabled (False)
        self.pushButton_save.setEnabled (False)


        self.toolButton.clicked.connect(self.open_dataset)
        self.start.clicked.connect(self.preprocess)
        self.pushButton_previous.clicked.connect(self.previous_state)
        self.pushButton_next.clicked.connect(self.next_state)
        self.valider.clicked.connect (self.get_dataset_information)
        self.pushButton_table.clicked.connect (self.showTable)
        self.pushButton_save.clicked.connect (self.save)
    
        p = QtGui.QPalette()
        p.setColor(QtGui.QPalette.Window, QtGui.QColor(133,132,130))
        p.setColor(QtGui.QPalette.Button, QtGui.QColor(153,150,150))
        p.setColor(QtGui.QPalette.WindowText, QtGui.QColor(13,13,12))
        p.setColor(self.toolBox.backgroundRole(), QtGui.QColor(189,187,185))
        p.setColor(QtGui.QPalette.ButtonText, QtGui.QColor(13,13,12))
        self.setPalette(p)
    
        self.retranslateUi(self)
        self.tabWidget.setCurrentIndex(0)
        self.toolBox.setCurrentIndex(0)
        QtCore.QMetaObject.connectSlotsByName(self)
    
    def retranslateUi(self,MainWindow):
        _translate = QtCore.QCoreApplication.translate


        MainWindow.setWindowTitle(_translate("MainWindow", "Graphic Interface"))
        self.label_2.setText(_translate("MainWindow", "Dataset Information:"))
        self.label_instances.setText(_translate("MainWindow", "Number of instances:"))
        self.label_classes.setText(_translate("MainWindow", "Number of classes:"))
        self.label.setText(_translate("MainWindow", "Select a dataset:"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab1), _translate("MainWindow", "Preprocessing"))


        self.toolBox.setItemText(self.toolBox.indexOf(self.page_resize), _translate("MainWindow", "Resizing"))
        self.label_3.setText(_translate("MainWindow", "Preprocessing parameters:"))
        self.start.setText(_translate("MainWindow", "Start"))


        self.pushButton_previous.setText(_translate("MainWindow", "Previous image"))
        self.pushButton_next.setText(_translate("MainWindow", "Next image"))
        self.pushButton_table.setText (_translate ("MainWindow", "Show Matrix"))
        self.pushButton_save.setText (_translate ("MainWindow", "Save"))
        self.pushButton_return.setText (_translate ("MainWindow", "Back"))




        self.label_4.setText(_translate("MainWindow", "Visualization:"))
        self.toolButton.setText(_translate("MainWindow", "..."))
        self.valider.setText(_translate("MainWindow", "Validate"))
Esempio n. 14
0
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        if not MainWindow.objectName():
            MainWindow.setObjectName(u"MainWindow")
        MainWindow.resize(787, 415)
        self.centralwidget = QWidget(MainWindow)
        self.centralwidget.setObjectName(u"centralwidget")
        self.verticalLayout = QVBoxLayout(self.centralwidget)
        self.verticalLayout.setSpacing(0)
        self.verticalLayout.setObjectName(u"verticalLayout")
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.base = QFrame(self.centralwidget)
        self.base.setObjectName(u"base")
        self.base.setStyleSheet(u"QFrame{\n"
                                "\n"
                                "	\n"
                                "	background-color: rgb(97, 101, 157);\n"
                                "}")
        self.base.setFrameShape(QFrame.StyledPanel)
        self.base.setFrameShadow(QFrame.Raised)
        self.horizontalLayout = QHBoxLayout(self.base)
        self.horizontalLayout.setSpacing(0)
        self.horizontalLayout.setObjectName(u"horizontalLayout")
        self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
        self.frame_for_widgets = QFrame(self.base)
        self.frame_for_widgets.setObjectName(u"frame_for_widgets")
        self.frame_for_widgets.setStyleSheet(
            u"QFrame{\n"
            "\n"
            "border-radius:25px;\n"
            "\n"
            "\n"
            "\n"
            "background-color: rgb(24, 25, 39);\n"
            "\n"
            "\n"
            "\n"
            "\n"
            "\n"
            "\n"
            "}")
        self.frame_for_widgets.setFrameShape(QFrame.NoFrame)
        self.frame_for_widgets.setFrameShadow(QFrame.Raised)
        self.verticalLayout_4 = QVBoxLayout(self.frame_for_widgets)
        self.verticalLayout_4.setSpacing(0)
        self.verticalLayout_4.setObjectName(u"verticalLayout_4")
        self.verticalLayout_4.setContentsMargins(0, 0, 0, 0)
        self.frame = QFrame(self.frame_for_widgets)
        self.frame.setObjectName(u"frame")
        sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.frame.sizePolicy().hasHeightForWidth())
        self.frame.setSizePolicy(sizePolicy)
        self.frame.setFrameShape(QFrame.StyledPanel)
        self.frame.setFrameShadow(QFrame.Raised)
        self.horizontalLayout_2 = QHBoxLayout(self.frame)
        self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
        self.select_zip_button = QPushButton(self.frame)
        self.select_zip_button.setObjectName(u"select_zip_button")
        self.select_zip_button.setMinimumSize(QSize(75, 75))
        self.select_zip_button.setMaximumSize(QSize(75, 75))
        font = QFont()
        font.setFamily(u"Segoe UI Light")
        font.setPointSize(24)
        self.select_zip_button.setFont(font)
        self.select_zip_button.setStyleSheet(
            u"QPushButton{\n"
            "	color:rgb(30, 149, 198);\n"
            "	 border: 2px solid black;\n"
            "\n"
            "	border-color:rgb(240, 123, 255);\n"
            "	\n"
            "	background-color: rgb(42, 44, 68);\n"
            "	\n"
            "	border-radius:10px;\n"
            "}\n"
            "QPushButton:hover{\n"
            "\n"
            "\n"
            "border-color:rgb(255, 37, 255);\n"
            "\n"
            "\n"
            "}")

        self.horizontalLayout_2.addWidget(self.select_zip_button)

        self.horizontalSpacer = QSpacerItem(331, 20, QSizePolicy.Expanding,
                                            QSizePolicy.Minimum)

        self.horizontalLayout_2.addItem(self.horizontalSpacer)

        self.verticalLayout_4.addWidget(self.frame)

        self.frame_left_middle = QFrame(self.frame_for_widgets)
        self.frame_left_middle.setObjectName(u"frame_left_middle")
        self.frame_left_middle.setFrameShape(QFrame.StyledPanel)
        self.frame_left_middle.setFrameShadow(QFrame.Raised)
        self.verticalLayout_5 = QVBoxLayout(self.frame_left_middle)
        self.verticalLayout_5.setSpacing(0)
        self.verticalLayout_5.setObjectName(u"verticalLayout_5")
        self.verticalLayout_5.setContentsMargins(0, 0, 0, 0)
        self.frame_left_middle_up = QFrame(self.frame_left_middle)
        self.frame_left_middle_up.setObjectName(u"frame_left_middle_up")
        self.frame_left_middle_up.setFrameShape(QFrame.StyledPanel)
        self.frame_left_middle_up.setFrameShadow(QFrame.Raised)
        self.horizontalLayout_4 = QHBoxLayout(self.frame_left_middle_up)
        self.horizontalLayout_4.setObjectName(u"horizontalLayout_4")
        self.horizontalLayout_3 = QHBoxLayout()
        self.horizontalLayout_3.setObjectName(u"horizontalLayout_3")
        self.label = QLabel(self.frame_left_middle_up)
        self.label.setObjectName(u"label")
        font1 = QFont()
        font1.setFamily(u"Arial Rounded MT Bold")
        font1.setPointSize(11)
        self.label.setFont(font1)
        self.label.setStyleSheet(u"QLabel{\n"
                                 " color:rgb(30, 149, 198);\n"
                                 "\n"
                                 "	\n"
                                 "\n"
                                 "	}")
        self.label.setAlignment(Qt.AlignCenter)

        self.horizontalLayout_3.addWidget(self.label)

        self.lineEdit = QLineEdit(self.frame_left_middle_up)
        self.lineEdit.setObjectName(u"lineEdit")
        self.lineEdit.setStyleSheet(u"QLineEdit{\n"
                                    "color:rgb(30, 149, 198);\n"
                                    "	background-color: rgb(65, 69, 106);\n"
                                    "\n"
                                    "border:2px solid black;\n"
                                    "\n"
                                    "border-radius:3px;\n"
                                    "border-color:rgb(240, 123, 255);\n"
                                    "\n"
                                    "}")

        self.horizontalLayout_3.addWidget(self.lineEdit)

        self.same_as_zip_name_checkbox = QCheckBox(self.frame_left_middle_up)
        self.same_as_zip_name_checkbox.setObjectName(
            u"same_as_zip_name_checkbox")
        font2 = QFont()
        font2.setFamily(u"Arial Rounded MT Bold")
        font2.setPointSize(10)
        self.same_as_zip_name_checkbox.setFont(font2)
        self.same_as_zip_name_checkbox.setStyleSheet(
            u"QCheckBox{\n"
            "color:rgb(30, 149, 198);\n"
            "\n"
            "}\n"
            "QCheckBox:unchecked {\n"
            "   \n"
            "	 color:rgb(30, 149, 198);\n"
            "}\n"
            "QCheckBox::indicator {\n"
            "    width: 13px;\n"
            "    height: 13px;\n"
            "	\n"
            "	color: rgb(30, 149, 198);\n"
            "	background-color: rgb(42, 44, 68);\n"
            "}\n"
            "QCheckBox::indicator:checked {\n"
            "   \n"
            "	\n"
            "	background-color: rgb(192, 98, 204);\n"
            "}\n"
            "QCheckBox:checked {\n"
            "\n"
            "color: rgb(38, 194, 255);\n"
            " \n"
            "}\n"
            "\n"
            "QCheckBox::indicator:checked {\n"
            "color: rgb(253, 111, 54);\n"
            "    \n"
            "}\n"
            "")

        self.horizontalLayout_3.addWidget(self.same_as_zip_name_checkbox)

        self.horizontalLayout_4.addLayout(self.horizontalLayout_3)

        self.horizontalSpacer_2 = QSpacerItem(85, 20, QSizePolicy.Expanding,
                                              QSizePolicy.Minimum)

        self.horizontalLayout_4.addItem(self.horizontalSpacer_2)

        self.verticalLayout_5.addWidget(self.frame_left_middle_up)

        self.frame_3 = QFrame(self.frame_left_middle)
        self.frame_3.setObjectName(u"frame_3")
        self.frame_3.setFrameShape(QFrame.StyledPanel)
        self.frame_3.setFrameShadow(QFrame.Raised)
        self.horizontalLayout_6 = QHBoxLayout(self.frame_3)
        self.horizontalLayout_6.setObjectName(u"horizontalLayout_6")
        self.horizontalLayout_5 = QHBoxLayout()
        self.horizontalLayout_5.setObjectName(u"horizontalLayout_5")
        self.label_2 = QLabel(self.frame_3)
        self.label_2.setObjectName(u"label_2")
        self.label_2.setMinimumSize(QSize(100, 0))
        font3 = QFont()
        font3.setFamily(u"Segoe UI")
        font3.setPointSize(12)
        self.label_2.setFont(font3)
        self.label_2.setStyleSheet(u"QLabel{\n"
                                   "\n"
                                   "	\n"
                                   "	\n"
                                   " color:rgb(30, 149, 198);\n"
                                   "\n"
                                   "	\n"
                                   "\n"
                                   "	}")
        self.label_2.setAlignment(Qt.AlignCenter)

        self.horizontalLayout_5.addWidget(self.label_2)

        self.algorithm_combobox = QComboBox(self.frame_3)
        self.algorithm_combobox.addItem("")
        self.algorithm_combobox.addItem("")
        self.algorithm_combobox.addItem("")
        self.algorithm_combobox.addItem("")
        self.algorithm_combobox.setObjectName(u"algorithm_combobox")
        self.algorithm_combobox.setMinimumSize(QSize(150, 0))
        font4 = QFont()
        font4.setFamily(u"Segoe UI")
        font4.setPointSize(10)
        font4.setBold(True)
        font4.setWeight(75)
        self.algorithm_combobox.setFont(font4)
        self.algorithm_combobox.setStyleSheet(
            u"QComboBox{\n"
            "\n"
            "	\n"
            "	color:rgb(30, 149, 198);\n"
            "\n"
            "	border:2px solid black;\n"
            "	border-color:rgb(240, 123, 255);\n"
            "	background-color: rgb(42, 44, 68);\n"
            "	\n"
            "\n"
            "}\n"
            "QComboBox::down-arrow {\n"
            "  border:1px solid black;\n"
            "border-color:rgb(30, 149, 198);\n"
            "}\n"
            "\n"
            "ComboBox::drop-down {\n"
            "   \n"
            "	color: rgb(30, 149, 198);\n"
            "	background-color: rgb(56, 58, 91);\n"
            "}\n"
            "\n"
            "\n"
            "QComboBox::down-arrow:on { /* shift the arrow when popup is open */\n"
            "    top: 1px;\n"
            "    left: 1px;\n"
            "}\n"
            "")

        self.horizontalLayout_5.addWidget(self.algorithm_combobox)

        self.horizontalLayout_6.addLayout(self.horizontalLayout_5)

        self.horizontalSpacer_3 = QSpacerItem(146, 20, QSizePolicy.Expanding,
                                              QSizePolicy.Minimum)

        self.horizontalLayout_6.addItem(self.horizontalSpacer_3)

        self.verticalLayout_5.addWidget(self.frame_3)

        self.verticalLayout_4.addWidget(self.frame_left_middle)

        self.frame_left_bottom = QFrame(self.frame_for_widgets)
        self.frame_left_bottom.setObjectName(u"frame_left_bottom")
        self.frame_left_bottom.setFrameShape(QFrame.StyledPanel)
        self.frame_left_bottom.setFrameShadow(QFrame.Raised)
        self.verticalLayout_6 = QVBoxLayout(self.frame_left_bottom)
        self.verticalLayout_6.setSpacing(0)
        self.verticalLayout_6.setObjectName(u"verticalLayout_6")
        self.verticalLayout_6.setContentsMargins(0, 0, 0, 0)
        self.frame_for_start_button = QFrame(self.frame_left_bottom)
        self.frame_for_start_button.setObjectName(u"frame_for_start_button")
        self.frame_for_start_button.setFrameShape(QFrame.StyledPanel)
        self.frame_for_start_button.setFrameShadow(QFrame.Raised)
        self.horizontalLayout_8 = QHBoxLayout(self.frame_for_start_button)
        self.horizontalLayout_8.setObjectName(u"horizontalLayout_8")
        self.horizontalLayout_7 = QHBoxLayout()
        self.horizontalLayout_7.setObjectName(u"horizontalLayout_7")
        self.label_3 = QLabel(self.frame_for_start_button)
        self.label_3.setObjectName(u"label_3")
        self.label_3.setMinimumSize(QSize(100, 0))
        self.label_3.setFont(font2)
        self.label_3.setStyleSheet(u"QLabel{\n"
                                   "\n"
                                   "	\n"
                                   " color:rgb(30, 149, 198);\n"
                                   "\n"
                                   "	\n"
                                   "\n"
                                   "	}")
        self.label_3.setAlignment(Qt.AlignCenter)

        self.horizontalLayout_7.addWidget(self.label_3)

        self.toolButton = QToolButton(self.frame_for_start_button)
        self.toolButton.setObjectName(u"toolButton")
        self.toolButton.setStyleSheet(u"QToolButton{\n"
                                      "	color:rgb(30, 149, 198);\n"
                                      "	 border: 2px solid black;\n"
                                      "\n"
                                      "	border-color:rgb(240, 123, 255);\n"
                                      "	\n"
                                      "	background-color: rgb(42, 44, 68);\n"
                                      "	\n"
                                      "	border-radius:1px;\n"
                                      "}\n"
                                      "QToolButton:hover{\n"
                                      "\n"
                                      "\n"
                                      "border-color:rgb(255, 37, 255);\n"
                                      "\n"
                                      "\n"
                                      "}")

        self.horizontalLayout_7.addWidget(self.toolButton)

        self.horizontalLayout_8.addLayout(self.horizontalLayout_7)

        self.horizontalSpacer_4 = QSpacerItem(190, 20, QSizePolicy.Expanding,
                                              QSizePolicy.Minimum)

        self.horizontalLayout_8.addItem(self.horizontalSpacer_4)

        self.start_button = QPushButton(self.frame_for_start_button)
        self.start_button.setObjectName(u"start_button")
        self.start_button.setMinimumSize(QSize(75, 75))
        font5 = QFont()
        font5.setFamily(u"Segoe UI Light")
        font5.setPointSize(28)
        self.start_button.setFont(font5)
        self.start_button.setStyleSheet(u"QPushButton{\n"
                                        "	color:rgb(30, 149, 198);\n"
                                        "	 border: 2px solid black;\n"
                                        "\n"
                                        "	border-color:rgb(240, 123, 255);\n"
                                        "	\n"
                                        "	background-color: rgb(42, 44, 68);\n"
                                        "	\n"
                                        "	border-radius:10px;\n"
                                        "}\n"
                                        "QPushButton:hover{\n"
                                        "\n"
                                        "\n"
                                        "border-color:rgb(255, 37, 255);\n"
                                        "\n"
                                        "\n"
                                        "}")

        self.horizontalLayout_8.addWidget(self.start_button)

        self.verticalLayout_6.addWidget(self.frame_for_start_button)

        self.frame_for_progressbar = QFrame(self.frame_left_bottom)
        self.frame_for_progressbar.setObjectName(u"frame_for_progressbar")
        self.frame_for_progressbar.setFrameShape(QFrame.StyledPanel)
        self.frame_for_progressbar.setFrameShadow(QFrame.Raised)
        self.horizontalLayout_10 = QHBoxLayout(self.frame_for_progressbar)
        self.horizontalLayout_10.setObjectName(u"horizontalLayout_10")
        self.horizontalSpacer_5 = QSpacerItem(13, 20, QSizePolicy.Expanding,
                                              QSizePolicy.Minimum)

        self.horizontalLayout_10.addItem(self.horizontalSpacer_5)

        self.horizontalLayout_9 = QHBoxLayout()
        self.horizontalLayout_9.setObjectName(u"horizontalLayout_9")
        self.label_progress = QLabel(self.frame_for_progressbar)
        self.label_progress.setObjectName(u"label_progress")
        self.label_progress.setFont(font2)
        self.label_progress.setStyleSheet(u"QLabel{\n"
                                          "\n"
                                          " color:rgb(30, 149, 198);\n"
                                          "	\n"
                                          "\n"
                                          "	}")
        self.label_progress.setAlignment(Qt.AlignCenter)

        self.horizontalLayout_9.addWidget(self.label_progress)

        self.progressBar = QProgressBar(self.frame_for_progressbar)
        self.progressBar.setObjectName(u"progressBar")
        self.progressBar.setMinimumSize(QSize(350, 20))
        self.progressBar.setMaximumSize(QSize(450, 20))
        font6 = QFont()
        font6.setFamily(u"Segoe UI")
        font6.setPointSize(9)
        self.progressBar.setFont(font6)
        self.progressBar.setStyleSheet(u"QProgressBar{\n"
                                       "\n"
                                       "	\n"
                                       "	color:rgb(30, 149, 198);\n"
                                       "\n"
                                       "	 border: 1px solid black;\n"
                                       "\n"
                                       "	border-color:rgb(240, 123, 255);\n"
                                       "	\n"
                                       "	background-color: rgb(42, 44, 68);\n"
                                       "	\n"
                                       "	border-radius:2px;\n"
                                       "}\n"
                                       "QProgressBar::chunk{\n"
                                       "\n"
                                       "border-radius:2px;\n"
                                       "\n"
                                       "	background-color:rgb(30, 149, 198);\n"
                                       "}\n"
                                       "QProgressBar:hover{\n"
                                       "border-color:rgb(255, 37, 255);\n"
                                       "}")
        self.progressBar.setMaximum(100)
        self.progressBar.setValue(56)
        self.progressBar.setAlignment(Qt.AlignRight | Qt.AlignTrailing
                                      | Qt.AlignVCenter)
        self.progressBar.setTextVisible(True)
        self.progressBar.setInvertedAppearance(False)

        self.horizontalLayout_9.addWidget(self.progressBar)

        self.horizontalLayout_10.addLayout(self.horizontalLayout_9)

        self.verticalLayout_6.addWidget(self.frame_for_progressbar)

        self.verticalLayout_4.addWidget(self.frame_left_bottom)

        self.horizontalLayout.addWidget(self.frame_for_widgets)

        self.frame_for_textedit = QFrame(self.base)
        self.frame_for_textedit.setObjectName(u"frame_for_textedit")
        sizePolicy1 = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred)
        sizePolicy1.setHorizontalStretch(0)
        sizePolicy1.setVerticalStretch(0)
        sizePolicy1.setHeightForWidth(
            self.frame_for_textedit.sizePolicy().hasHeightForWidth())
        self.frame_for_textedit.setSizePolicy(sizePolicy1)
        self.frame_for_textedit.setMinimumSize(QSize(30, 0))
        self.frame_for_textedit.setMaximumSize(QSize(350, 16777215))
        self.frame_for_textedit.setFrameShape(QFrame.StyledPanel)
        self.frame_for_textedit.setFrameShadow(QFrame.Raised)
        self.verticalLayout_2 = QVBoxLayout(self.frame_for_textedit)
        self.verticalLayout_2.setSpacing(0)
        self.verticalLayout_2.setObjectName(u"verticalLayout_2")
        self.verticalLayout_2.setContentsMargins(-1, 0, 0, 0)
        self.terminal_output = QTextEdit(self.frame_for_textedit)
        self.terminal_output.setObjectName(u"terminal_output")
        self.terminal_output.setFont(font2)
        self.terminal_output.setStyleSheet(
            u"\n"
            "QTextEdit, QListView {\n"
            "   color:rgb(255, 37, 255);\n"
            "    background-color:rgb(40, 41, 65);\n"
            "	border:3px solid black;\n"
            "	border-radius:10px;\n"
            "	border-color:rgb(30, 149, 198);\n"
            "    background-attachment: scroll;\n"
            "}")

        self.verticalLayout_2.addWidget(self.terminal_output)

        self.horizontalLayout.addWidget(self.frame_for_textedit)

        self.verticalLayout.addWidget(self.base)

        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)

        QMetaObject.connectSlotsByName(MainWindow)

    # setupUi

    def retranslateUi(self, MainWindow):
        MainWindow.setWindowTitle(
            QCoreApplication.translate("MainWindow", u"MainWindow", None))
        self.select_zip_button.setText(
            QCoreApplication.translate("MainWindow", u"Zip", None))
        self.label.setText(
            QCoreApplication.translate("MainWindow", u"Video Name :", None))
        self.same_as_zip_name_checkbox.setText(
            QCoreApplication.translate("MainWindow", u"Same as Zip name",
                                       None))
        self.label_2.setText(
            QCoreApplication.translate("MainWindow", u"Algorithm", None))
        self.algorithm_combobox.setItemText(
            0, QCoreApplication.translate("MainWindow", u"Select", None))
        self.algorithm_combobox.setItemText(
            1,
            QCoreApplication.translate("MainWindow", u"Very Fast - Good",
                                       None))
        self.algorithm_combobox.setItemText(
            2, QCoreApplication.translate("MainWindow", u"Fast - Better",
                                          None))
        self.algorithm_combobox.setItemText(
            3, QCoreApplication.translate("MainWindow", u"Slow - Best", None))

        self.label_3.setText(
            QCoreApplication.translate("MainWindow", u"Video Location", None))
        self.toolButton.setText(
            QCoreApplication.translate("MainWindow", u"...", None))
        self.start_button.setText(
            QCoreApplication.translate("MainWindow", u"Start", None))
        self.label_progress.setText(
            QCoreApplication.translate("MainWindow", u"Progress :", None))
        self.terminal_output.setHtml(
            QCoreApplication.translate(
                "MainWindow",
                u"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
                "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
                "p, li { white-space: pre-wrap; }\n"
                "</style></head><body style=\" font-family:'Arial Rounded MT Bold'; font-size:10pt; font-weight:400; font-style:normal;\">\n"
                "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:'Segoe UI Light'; color:#f07bff;\">Zipvy Ready...</span></p></body></html>",
                None))
Esempio n. 15
0
class Ui_MainWindow():
    def __init__(self, MainWindow: QMainWindow):

        # Set main window parameters
        MainWindow.setWindowTitle("ASL Tools")
        MainWindow.setAttribute(Qt.WA_TranslucentBackground)
        MainWindow.setWindowFlag(Qt.FramelessWindowHint)
        MainWindow.setWindowFlag(Qt.WindowStaysOnTopHint)
        MainWindow.setAttribute(Qt.WA_QuitOnClose)

        icon_size = QSize(48, 48)

        # Main frame
        frame = QWidget()
        frame.setObjectName("mainwindow")
        self.v_layout = QVBoxLayout(frame)
        self.v_layout.setMargin(0)
        self.v_layout.setSpacing(0)

        # Top frame
        self.frame_top = QFrame()
        self.frame_top.setObjectName("topframe")
        self.frame_top.setMaximumHeight(20)
        self.frame_top.setCursor(Qt.OpenHandCursor)
        self.v_layout.addWidget(self.frame_top)
        # Ellements in top frame
        self.h_layout = QHBoxLayout(self.frame_top)
        self.h_layout.setMargin(0)
        self.btn_quit = QToolButton()
        self.btn_quit.setIcon(QIcon(":/images/quit.svg"))
        self.btn_quit.setIconSize(QSize(16, 16))
        self.btn_quit.setCursor(Qt.CursorShape.PointingHandCursor)
        self.btn_quit.setAutoRaise(True)
        self.h_layout.addWidget(self.btn_quit, alignment=Qt.AlignRight)

        # Misc
        self.h_layout_misc = QHBoxLayout()
        self.h_layout_misc.setSpacing(0)
        self.h_layout_misc.setMargin(0)
        self.v_layout.addLayout(self.h_layout_misc)
        # Help
        self.btn_help = QToolButton()
        self.btn_help.setIcon(QIcon(":/images/help.svg"))
        self.btn_help.setObjectName("toolsmall")
        self.btn_help.setIconSize(QSize(20, 20))
        self.btn_help.setCursor(Qt.CursorShape.PointingHandCursor)
        self.h_layout_misc.addWidget(self.btn_help)
        # Settings
        self.btn_settings = QToolButton()
        self.btn_settings.setIcon(QIcon(":/images/settings.svg"))
        self.btn_settings.setObjectName("toolsmall")
        self.btn_settings.setIconSize(QSize(20, 20))
        self.btn_settings.setCursor(Qt.CursorShape.PointingHandCursor)
        self.h_layout_misc.addWidget(self.btn_settings)
        # Button create vr3 model
        self.btn_model_vr3 = QToolButton()
        self.btn_model_vr3.setIcon(QIcon(":/images/model-vr3.svg"))
        self.btn_model_vr3.setObjectName("tool")
        self.btn_model_vr3.setIconSize(icon_size)
        self.btn_model_vr3.setCursor(Qt.CursorShape.PointingHandCursor)
        self.v_layout.addWidget(self.btn_model_vr3)
        # Create script
        self.btn_script = QToolButton()
        self.btn_script.setIcon(QIcon(":/images/script.svg"))
        self.btn_script.setObjectName("tool")
        self.btn_script.setIconSize(icon_size)
        self.btn_script.setCursor(Qt.CursorShape.PointingHandCursor)
        self.v_layout.addWidget(self.btn_script)
        # Create dashboard
        self.btn_dashboard = QToolButton()
        self.btn_dashboard.setIcon(QIcon(":/images/dashboard.svg"))
        self.btn_dashboard.setObjectName("tool")
        self.btn_dashboard.setIconSize(icon_size)
        self.btn_dashboard.setCursor(Qt.CursorShape.PointingHandCursor)
        self.v_layout.addWidget(self.btn_dashboard)
        # Create big script
        self.btn_bigscript = QToolButton()
        self.btn_bigscript.setIcon(QIcon(":/images/big-script.svg"))
        self.btn_bigscript.setObjectName("tool")
        self.btn_bigscript.setIconSize(icon_size)
        self.btn_bigscript.setCursor(Qt.CursorShape.PointingHandCursor)
        self.v_layout.addWidget(self.btn_bigscript)
        # # Window fit the layout
        MainWindow.setCentralWidget(frame)
        MainWindow.setFixedSize(frame.sizeHint())