From 50b14562fcd1d12f17a053ca6e68f37e078f8ac6 Mon Sep 17 00:00:00 2001 From: "Christopher T. Johnson" Date: Sat, 15 Feb 2025 22:57:19 -0500 Subject: [PATCH] Checkpoint --- dockettableview.py | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/dockettableview.py b/dockettableview.py index cc44dcb..9095ab1 100644 --- a/dockettableview.py +++ b/dockettableview.py @@ -1,9 +1,8 @@ -from typing import Any, cast +from typing import cast from PySide6.QtCore import ( QAbstractItemModel, QDir, - QEvent, QFile, QModelIndex, QObject, @@ -20,9 +19,9 @@ from PySide6.QtGui import ( QColor, QFont, QMouseEvent, + QPaintEvent, QPainter, QPalette, - QShowEvent, QTextDocument, ) from PySide6.QtNetwork import ( @@ -31,7 +30,6 @@ from PySide6.QtNetwork import ( QNetworkRequest, ) from PySide6.QtWidgets import ( - QApplication, QSizePolicy, QStyle, QStyledItemDelegate, @@ -101,10 +99,17 @@ class documentDelegate(QStyledItemDelegate): doc.setTextWidth(options.rect.width()) doc.setHtml(options.text) doc.setTextWidth(options.rect.width()) + print(f"sizeHint: {doc.idealWidth()}, {doc.size().height()}") return QSize(int(doc.idealWidth()), int(doc.size().height())) class docketEntry(QTextEdit): + def __init__(self, parent: QWidget|None = None) -> None: + super(docketEntry, self).__init__(parent) + self.setSizePolicy(QSizePolicy.Policy.Preferred , + QSizePolicy.Policy.Fixed) + return + def mousePressEvent(self, e: QMouseEvent) -> None: super().mousePressEvent(e) anchor = self.anchorAt(e.pos()) @@ -125,9 +130,13 @@ class docketEntry(QTextEdit): doc.setPlainText(self.document().toPlainText()) doc.setTextWidth(size.width()) docSize = doc.size() - print(f"size: {size}, docSize: {docSize}") return QSize(size.width(), int(docSize.height())) + def paintEvent(self, e: QPaintEvent) -> None: + print(f"event.rect: {e.rect()}, size: {self.size()}") + print(self.document().toPlainText()) + return super().paintEvent(e) + class docketTableView(QTableView): manager = QNetworkAccessManager() @@ -191,3 +200,16 @@ class docketTableView(QTableView): widget.setPalette(red) self.setIndexWidget(index, widget) return + + def paintEvent(self, e: QPaintEvent) -> None: + + for row in range(0, self.model().rowCount()): + index = self.model().index(row, 1) + widget = cast(docketEntry, self.indexWidget(index)) + print(f"{row}: {widget.toPlainText()}") + print(f"{row}: {widget.sizeHint()}") + print(f"{row}: {widget.size()}") + print() + widget.resize(75,27) + super().paintEvent(e) + return