More updates for pyqt6

This commit is contained in:
Andrew Senetar 2022-07-07 21:26:45 -05:00
parent 66e69a3854
commit 4d56bd3515
Signed by: arsenetar
GPG Key ID: C63300DCE48AB2F1
5 changed files with 53 additions and 46 deletions

View File

@ -1,5 +1,5 @@
from typing import Tuple, List, Union
from PyQt5.QtGui import QImage
from PyQt6.QtGui import QImage
_block = Tuple[int, int, int]

View File

@ -6,8 +6,9 @@
# which should be included with this package. The terms are also available at
# http://www.gnu.org/licenses/gpl-3.0.html
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import (
from PyQt6.QtCore import Qt
from PyQt6.QtGui import QShowEvent
from PyQt6.QtWidgets import (
QDialog,
QVBoxLayout,
QHBoxLayout,
@ -17,8 +18,10 @@ from PyQt5.QtWidgets import (
QLabel,
QTableView,
QAbstractItemView,
QWidget,
)
from core.gui.problem_dialog import ProblemDialog as ProblemDiaglogModel
from qt.util import move_to_screen_center
from hscommon.trans import trget
from qt.problem_table import ProblemTable
@ -27,52 +30,56 @@ tr = trget("ui")
class ProblemDialog(QDialog):
def __init__(self, parent, model, **kwargs):
flags = Qt.CustomizeWindowHint | Qt.WindowTitleHint | Qt.WindowSystemMenuHint
def __init__(self, parent: QWidget, model: ProblemDiaglogModel, **kwargs) -> None:
flags = Qt.WindowType.CustomizeWindowHint | Qt.WindowType.WindowTitleHint | Qt.WindowType.WindowSystemMenuHint
super().__init__(parent, flags, **kwargs)
self._setupUi()
self.model = model
self.model.view = self
self.table = ProblemTable(self.model.problem_table, view=self.tableView)
self.table_view = QTableView(self)
self.table = ProblemTable(self.model.problem_table, view=self.table_view)
self._setupUi()
self.revealButton.clicked.connect(self.model.reveal_selected_dupe)
self.closeButton.clicked.connect(self.accept)
def _setupUi(self):
def _setupUi(self) -> None:
self.setWindowTitle(tr("Problems!"))
self.resize(413, 323)
self.verticalLayout = QVBoxLayout(self)
self.label = QLabel(self)
main_layout = QVBoxLayout(self)
notice_label = QLabel(self)
msg = tr(
"There were problems processing some (or all) of the files. The cause of "
"these problems are described in the table below. Those files were not "
"removed from your results."
)
self.label.setText(msg)
self.label.setWordWrap(True)
self.verticalLayout.addWidget(self.label)
self.tableView = QTableView(self)
self.tableView.setEditTriggers(QAbstractItemView.NoEditTriggers)
self.tableView.setSelectionMode(QAbstractItemView.SingleSelection)
self.tableView.setSelectionBehavior(QAbstractItemView.SelectRows)
self.tableView.setShowGrid(False)
self.tableView.horizontalHeader().setStretchLastSection(True)
self.tableView.verticalHeader().setDefaultSectionSize(18)
self.tableView.verticalHeader().setHighlightSections(False)
self.verticalLayout.addWidget(self.tableView)
self.horizontalLayout = QHBoxLayout()
self.revealButton = QPushButton(self)
self.revealButton.setText(tr("Reveal Selected"))
self.horizontalLayout.addWidget(self.revealButton)
spacer_item = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacer_item)
self.closeButton = QPushButton(self)
self.closeButton.setText(tr("Close"))
self.closeButton.setDefault(True)
self.horizontalLayout.addWidget(self.closeButton)
self.verticalLayout.addLayout(self.horizontalLayout)
notice_label.setText(msg)
notice_label.setWordWrap(True)
main_layout.addWidget(notice_label)
def showEvent(self, event):
self.table_view.setEditTriggers(QAbstractItemView.EditTrigger.NoEditTriggers)
self.table_view.setSelectionMode(QAbstractItemView.SelectionMode.SingleSelection)
self.table_view.setSelectionBehavior(QAbstractItemView.SelectionBehavior.SelectRows)
self.table_view.setShowGrid(False)
self.table_view.horizontalHeader().setStretchLastSection(True)
self.table_view.verticalHeader().setDefaultSectionSize(18)
self.table_view.verticalHeader().setHighlightSections(False)
main_layout.addWidget(self.table_view)
button_layout = QHBoxLayout()
reveal_button = QPushButton(self)
reveal_button.setText(tr("Reveal Selected"))
button_layout.addWidget(reveal_button)
spacer_item = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
button_layout.addItem(spacer_item)
close_button = QPushButton(self)
close_button.setText(tr("Close"))
close_button.setDefault(True)
button_layout.addWidget(close_button)
main_layout.addLayout(button_layout)
reveal_button.clicked.connect(self.model.reveal_selected_dupe)
close_button.clicked.connect(self.accept)
def showEvent(self, event: QShowEvent) -> None:
# have to do this here as the frameGeometry is not correct until shown
move_to_screen_center(self)
super().showEvent(event)

8
run.py
View File

@ -9,9 +9,9 @@ import sys
import os.path as op
import gc
from PyQt5.QtCore import QCoreApplication
from PyQt5.QtGui import QIcon, QPixmap
from PyQt5.QtWidgets import QApplication
from PyQt6.QtCore import QCoreApplication
from PyQt6.QtGui import QIcon, QPixmap
from PyQt6.QtWidgets import QApplication
from hscommon.trans import install_gettext_trans_under_qt
from qt.error_report_dialog import install_excepthook
@ -61,7 +61,7 @@ def main():
# Let the Python interpreter runs every 500ms to handle signals. This is
# required because Python cannot handle signals while the Qt event loop is
# running.
from PyQt5.QtCore import QTimer
from PyQt6.QtCore import QTimer
timer = QTimer()
timer.start(500)

View File

@ -32,15 +32,15 @@ install_requires =
Send2Trash>=1.3.0
mutagen>=1.45.1
distro>=1.5.0
PyQt5 >=5.14.1,<6.0; sys_platform != 'linux'
PyQt6 >=6.3.0,<7.0; sys_platform != 'linux'
pywin32>=228; sys_platform == 'win32'
semantic-version>=2.0.0,<3.0.0
xxhash>=3.0.0,<4.0.0
setup_requires =
sphinx>=3.0.0
sphinx>=5.0.0
polib>=1.1.0
tests_require =
pytest >=6,<7
pytest >=7,<8
include_package_data = true
[options.entry_points]

View File

@ -245,7 +245,7 @@ Section "Uninstall"
; Remove Files & Folders in Install Folder
RMDir /r "$INSTDIR\core"
RMDir /r "$INSTDIR\help"
RMDir /r "$INSTDIR\PyQt5"
RMDir /r "$INSTDIR\PyQt6"
RMDir /r "$INSTDIR\qt"
RMDir /r "$INSTDIR\locale"
Delete "$INSTDIR\*.exe"