def __init__(self, app): super().__init__() self.__app = app self.__config = DowConfig(pathlib.Path(".").joinpath("config.json")) if pathlib.Path(self.__config.ROOT_DIR).joinpath(self.__config.DB_NAME).exists(): self.__db = DowDatabase(self.__config.ROOT_DIR, self.__config.DB_NAME) else: print("No db") self.__slide_view = DowGlImage(self) self.__slide_label = QtWidgets.QLabel("Test") self.__slide_label.setFixedHeight(30) self.__slide_label.setStyleSheet("QLabel { color : blue; font-size : 32px; }") self.__slide_layout = QtWidgets.QVBoxLayout() self.__slide_space = QtWidgets.QWidget() self.__slide_layout.setContentsMargins(QtCore.QMargins(0,0,0,0)) self.__slide_layout.addWidget(self.__slide_label) self.__slide_layout.addWidget(self.__slide_space) self.__slide_layout.setAlignment(self.__slide_label, QtCore.Qt.AlignHCenter) self.__slide_view.setLayout(self.__slide_layout) main_layout = QtWidgets.QVBoxLayout() main_layout.setContentsMargins(QtCore.QMargins(0,0,0,0)) main_layout.addWidget(self.__slide_view) self.setLayout(main_layout) self.__engine = DowSlideShow(self.__config, None)
def __init__(self): self.__log = pathlib.Path("./log.txt").open("w") self.__config = DowConfig(pathlib.Path(".").joinpath("config.json")) self.__db = DowDatabase(self.__config.ROOT_DIR, self.__config.DB_NAME) self.__model = tf.keras.applications.VGG19(weights='imagenet', include_top=False) self.__files, self.__features = self.__load_files() self.__knn = NearestNeighbors(metric='cosine', algorithm='brute', n_jobs=-1) self.__knn.fit(self.__features)
def __init__(self, app): super().__init__() self.__config = DowConfig(pathlib.Path(".").joinpath("config.json")) self.__app = app self.__files = [] self.__iterator = 0 self.__selected_left = True self.__gl_mutex = threading.Lock() self.__main_layout = QtWidgets.QVBoxLayout() self.__images_layout = QtWidgets.QHBoxLayout() self.__left_image_layout = QtWidgets.QVBoxLayout() self.__left_image_widget = QtWidgets.QWidget() self.__left_image_widget_layout = QtWidgets.QGridLayout( self.__left_image_widget) self.__left_image_widget_layout.setContentsMargins(1, 1, 1, 1) self.__left_image_widget.setStyleSheet("background-color: yellow") self.__left_image = DowGlImage(self.__left_image_widget, 0) self.__left_image_widget_layout.addWidget(self.__left_image) self.__left_image_info = QtWidgets.QLabel("") self.__left_image_info.setFixedHeight(30) self.__left_image_layout.addWidget(self.__left_image_widget) self.__left_image_layout.addWidget(self.__left_image_info) self.__right_image_layout = QtWidgets.QVBoxLayout() self.__right_image_widget = QtWidgets.QWidget() self.__right_image_widget_layout = QtWidgets.QGridLayout( self.__right_image_widget) self.__right_image_widget_layout.setContentsMargins(1, 1, 1, 1) self.__right_image = DowGlImage(self.__right_image_widget, 1) self.__right_image_widget_layout.addWidget(self.__right_image) self.__right_image_info = QtWidgets.QLabel("") self.__right_image_info.setFixedHeight(30) self.__right_image_layout.addWidget(self.__right_image_widget) self.__right_image_layout.addWidget(self.__right_image_info) self.__buttons_layout = QtWidgets.QHBoxLayout() self.__open_button = QtWidgets.QPushButton("Open") self.__open_button.clicked.connect(self.__open_button_click) self.__next_button = QtWidgets.QPushButton("Next") self.__next_button.clicked.connect(self.__next_button_click) self.__buttons_layout.addWidget(self.__open_button) self.__buttons_layout.addWidget(self.__next_button) self.__images_layout.addLayout(self.__left_image_layout) self.__images_layout.addLayout(self.__right_image_layout) self.__main_layout.addLayout(self.__images_layout) self.__main_layout.addLayout(self.__buttons_layout) self.setLayout(self.__main_layout) self.__app.installEventFilter(self)
import pathlib import sys from classes.Config import DowConfig from classes.Database import DowDatabase config = DowConfig(pathlib.Path(".").joinpath("config.json")) db = DowDatabase(config.ROOT_DIR, config.DB_NAME) o = db.SelectAllFilesLike(sys.argv[1]) if o is not None: for f in o: print(f[:-1]) print("\n") else: print("None")
def __init__(self, app): super().__init__() self.__app = app self.__config = DowConfig(pathlib.Path(".").joinpath("config.json")) #Controls ## Menu Bar self.__file_menu = QtWidgets.QMenu("File") self.__file_menu.addAction("Open Files", self.__show_open_files_dialog) self.__file_menu.addAction("Open Directory", self.__show_open_dir_dialog) self.__file_menu.addAction("Clear Files", self.__clear_files) self.__file_menu.addAction("Close", self.__close) self.__menu_bar = QtWidgets.QMenuBar() self.__menu_bar.addMenu(self.__file_menu) ## Left side self.__image = DowGlImage(self) #QtWidgets.QLabel() # self.__image.setAlignment(QtCore.Qt.AlignVCenter) self.__controls_left_layout = QtWidgets.QVBoxLayout() self.__left_box = QtWidgets.QWidget() self.__left_box_layout = QtWidgets.QVBoxLayout(self.__left_box) self.__left_box_layout.setContentsMargins(QtCore.QMargins(0, 0, 0, 0)) self.__left_box_layout.addWidget(self.__image) self.__controls_left_layout.addWidget(self.__left_box) ## Right side self.__search_box = QtWidgets.QLineEdit() self.__all_tags = QtWidgets.QListView() self.__all_tags.setMaximumHeight(150) self.__selected_tags = QtWidgets.QListView() self.__files = QtWidgets.QListView() self.__files.setMinimumHeight(200) self.__files.setMaximumHeight(200) self.__back_button = QtWidgets.QPushButton("Back") self.__next_button = QtWidgets.QPushButton("Next") self.__save_button = QtWidgets.QPushButton("Save") self.__buttons_right_layout = QtWidgets.QHBoxLayout() self.__buttons_right_layout.addWidget(self.__back_button) self.__buttons_right_layout.addWidget(self.__next_button) self.__buttons_right_layout.addWidget(self.__save_button) self.__right_box = QtWidgets.QWidget() self.__right_box.setMinimumWidth(200) self.__right_box.setMaximumWidth(300) self.__controls_right_layout = QtWidgets.QVBoxLayout(self.__right_box) self.__controls_right_layout.setContentsMargins( QtCore.QMargins(0, 0, 0, 0)) self.__controls_right_layout.addWidget(self.__search_box) self.__controls_right_layout.addWidget(self.__all_tags) self.__controls_right_layout.addWidget(self.__selected_tags) self.__controls_right_layout.addWidget(self.__files) self.__controls_right_layout.addLayout(self.__buttons_right_layout) #Layouts self.__main_layout = QtWidgets.QHBoxLayout(self) self.__main_layout.addLayout(self.__controls_left_layout) self.__main_layout.addWidget(self.__right_box) self.__main_layout.setMenuBar(self.__menu_bar) #Logic self.__logic = DowTagEditor(self.__all_tags, self.__selected_tags, self.__files, self.__next_button, self.__back_button, self.__save_button, self.__search_box) if pathlib.Path(self.__config.ROOT_DIR).joinpath( self.__config.DB_NAME).exists(): self.__db = DowDatabase(self.__config.ROOT_DIR, self.__config.DB_NAME) self.__logic.SetDatabase(self.__db) self.__logic.ImageChangeEvent(self.__load_image)