fix label feature on Windows (#1413)

This commit is contained in:
Alex Xu authored and GitHub committed 2026-08-01 15:58:45 -07:00
1 parent ff80d275e6
commit 846a755761
4 files changed
+27 -20

No files matched your search

+8 -7
View File
@@ -730,13 +730,14 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
dst.save(os.path.join(workdir, f'label-{i:04}.png'))
images.append(os.path.join(workdir, f'label-{i:04}.png'))
dlg = LabelSpreadsDialog(APP.primaryScreen().availableGeometry().height(), images, spreads)
dlg.setWindowTitle(job)
if dlg.exec() == 1:
with open(job+'.json', "w") as fp:
# TODO: not very clean to grab index from filename
spreads = [int(filename[6:10]) for filename in spreads]
json.dump({'spreads': sorted(set(spreads))} , fp)
if images:
dlg = LabelSpreadsDialog(APP.primaryScreen().availableGeometry().height(), images, spreads)
dlg.setWindowTitle(job)
if dlg.exec() == 1:
with open(job+'.json', "w") as fp:
# TODO: not very clean to grab index from filename
spreads = [int(filename[6:10]) for filename in spreads]
json.dump({'spreads': sorted(set(spreads))} , fp)
rmtree(path, True)
rmtree(workdir, True)
+12 -13
View File
@@ -2,7 +2,7 @@ import os
from PySide6.QtCore import (Qt)
from PySide6.QtGui import (QKeyEvent, QPixmap)
from PySide6.QtWidgets import (QDialogButtonBox, QHBoxLayout, QLabel, QDialog)
from PySide6.QtWidgets import (QHBoxLayout, QLabel, QDialog)
class LabelSpreadsDialog(QDialog):
def __init__(self, available_height, images, spreads):
@@ -17,14 +17,6 @@ class LabelSpreadsDialog(QDialog):
# self.setMaximumSize(APP.primaryScreen().availableSize())
self.available_height = available_height
QBtn = (
QDialogButtonBox.Yes | QDialogButtonBox.No
)
self.buttonBox = QDialogButtonBox(QBtn)
self.buttonBox.accepted.connect(self.accept)
self.buttonBox.rejected.connect(self.reject)
layout = QHBoxLayout()
self.setLayout(layout)
@@ -37,14 +29,14 @@ class LabelSpreadsDialog(QDialog):
label2.setText("not a spread")
help_text = [
"Press Yes to save labels to file.",
"Use arrows to change index.",
"Use space bar to confirm spreads.",
"Use spread shift option to offset by 1.",
"Use enter key to confirm all spreads."
"Close window to cancel."
]
buttonLabel = QLabel('\n'.join(help_text))
layout.addWidget(buttonLabel)
layout.addWidget(self.buttonBox)
# print(label.size())
# print(label.maximumSize())
# l, t, r, b = layout.getContentsMargins()
@@ -59,6 +51,7 @@ class LabelSpreadsDialog(QDialog):
# label2.setPixmap(pixmap2)
#label2.setScaledContents(True)
#self.resize(pixmap2.width(), pixmap2.height())
def keyReleaseEvent(self, event):
# t = 20
# b = 20
@@ -85,8 +78,14 @@ class LabelSpreadsDialog(QDialog):
# pixmap2 = QPixmap(images[self.index]).scaledToHeight(self.frameGeometry().height() - t - b - t - b)
# self.label2.setPixmap(pixmap2)
elif event.key() == Qt.Key.Key_Space:
self.spreads.append(os.path.basename(self.images[self.index]))
self.label2.setText('spread')
if self.label2.text() == "not a spread":
self.spreads.append(os.path.basename(self.images[self.index]))
self.label2.setText('spread')
else:
self.spreads.remove(os.path.basename(self.images[self.index]))
self.label2.setText('not a spread')
elif event.key() == Qt.Key.Key_Return or event.key() == Qt.Key.Key_Enter:
self.accept()
else:
super().keyReleaseEvent(event)
else:
+1
View File
@@ -390,6 +390,7 @@ class Ui_mainWindow(object):
self.labelSpreadsButton = QPushButton(self.toolWidget)
self.labelSpreadsButton.setObjectName(u"labelSpreadsButton")
self.labelSpreadsButton.setMinimumSize(QSize(0, 30))
self.gridLayout_6.addWidget(self.labelSpreadsButton, 0, 1, 1, 1)