wip: settings

This commit is contained in:
2023-08-19 19:19:33 +08:00
parent 3390b21800
commit 11c56ba051
12 changed files with 361 additions and 171 deletions

View File

@ -0,0 +1,19 @@
from PySide6.QtWidgets import QSizePolicy, QWidget
from ui.designer.components.settings.resettableItem_ui import Ui_ResettableItem
class ResettableItem(Ui_ResettableItem, QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.setupUi(self)
def setWidget(self, widget: QWidget):
firstItem = self.horizontalLayout.itemAt(0)
if firstItem.objectName() != "resetButton":
self.horizontalLayout.removeItem(firstItem)
sizePolicy = widget.sizePolicy()
sizePolicy.setHorizontalPolicy(QSizePolicy.Policy.Expanding)
widget.setSizePolicy(sizePolicy)
self.horizontalLayout.insertWidget(0, widget)

View File

@ -1,4 +1,5 @@
from arcaea_offline.database import Database
import logging
from PySide6.QtCore import Slot
from PySide6.QtWidgets import QWidget
@ -6,6 +7,8 @@ from ui.designer.settings.settingsDefault_ui import Ui_SettingsDefault
from ui.extends.ocr import load_devices_json
from ui.extends.settings import *
logger = logging.getLogger(__name__)
class SettingsDefault(Ui_SettingsDefault, QWidget):
def __init__(self, parent=None):
@ -29,6 +32,12 @@ class SettingsDefault(Ui_SettingsDefault, QWidget):
self.tesseractFileSelector.accepted.connect(
self.on_tesseractFileSelector_accepted
)
self.knnModelFileSelector.accepted.connect(
self.on_knnModelFileSelector_accepted
)
self.siftDatabaseFileSelector.accepted.connect(
self.on_siftDatabaseFileSelector_accepted
)
def setDevicesJsonFile(self):
try:
@ -37,7 +46,7 @@ class SettingsDefault(Ui_SettingsDefault, QWidget):
assert isinstance(devices, list)
self.settings.setDevicesJsonFile(filename)
except Exception as e:
print(e)
logger.exception("set deviceJsonFile error")
# QMessageBox
return
@ -71,3 +80,17 @@ class SettingsDefault(Ui_SettingsDefault, QWidget):
def on_tesseractFileSelector_accepted(self):
self.setTesseractFile()
def setKnnModelFile(self):
file = self.knnModelFileSelector.selectedFiles()[0]
self.settings.setKnnModelFile(file)
def on_knnModelFileSelector_accepted(self):
self.setKnnModelFile()
def setSiftDatabaseFile(self):
file = self.siftDatabaseFileSelector.selectedFiles()[0]
self.settings.setSiftDatabaseFile(file)
def on_siftDatabaseFileSelector_accepted(self):
self.setSiftDatabaseFile()

View File

@ -12,6 +12,7 @@ from PySide6.QtWidgets import QWidget
from ui.designer.tabs.tabOcr.tabOcr_B30_ui import Ui_TabOcr_B30
from ui.extends.components.ocrQueue import OcrQueueModel
from ui.extends.settings import Settings
from ui.extends.shared.cv2_utils import cv2BgrMatToQImage, qImageToCvMatBgr
from ui.extends.tabs.tabOcr.tabOcr_B30 import (
ChieriV4OcrRunnable,
@ -54,6 +55,11 @@ class TabOcr_B30(Ui_TabOcr_B30, QWidget):
self.tryPrepareOcr.connect(self.prepareOcr)
settings = Settings()
logger.info("Applying default settings...")
self.knnModelSelector.selectFile(settings.knnModelFile())
self.siftDatabaseSelector.selectFile(settings.siftDatabaseFile())
self.ocrQueueModel = OcrQueueModel(self)
self.ocrQueue.setModel(self.ocrQueueModel)

View File

@ -1,3 +1,5 @@
import logging
import cv2
import pytesseract
@ -16,6 +18,8 @@ from ui.extends.tabs.tabOcr.tabOcr_Device import (
TabDeviceV2OcrRunnable,
)
logger = logging.getLogger(__name__)
class TabOcr_Device(Ui_TabOcr_Device, QWidget):
def __init__(self, parent=None):
@ -35,9 +39,12 @@ class TabOcr_Device(Ui_TabOcr_Device, QWidget):
self.siftDatabaseSelector.filesSelected.connect(self.siftDatabaseFileSelected)
settings = Settings()
logger.info("Applying default settings...")
self.deviceFileSelector.selectFile(settings.devicesJsonFile())
self.tesseractFileSelector.selectFile(settings.tesseractPath())
self.deviceComboBox.selectDevice(settings.deviceUuid())
self.knnModelSelector.selectFile(settings.knnModelFile())
self.siftDatabaseSelector.selectFile(settings.siftDatabaseFile())
self.ocrQueueModel = OcrQueueModel(self)
self.ocrQueue.setModel(self.ocrQueueModel)