<div dir="ltr"><div>It behaves similarly to other classes that have a mono dimensional "length" (eg. having a count(), like QLayout or QListWidget).</div><div>When QTableWidget is created with 0 rows or columns, the respective headers will have a length based on those counts.</div><div><br></div><div>The following will print, respectively, "no" and "yes":<br></div><div><br></div><div><span style="font-family:monospace">tw = QTableWidget(1, 0)</span></div><div><span style="font-family:monospace">print('yes' if tw.horizontalHeader() else 'no')</span></div><div><span style="font-family:monospace">print('yes' if tw.verticalHeader() else 'no')</span></div><div><br></div><div>That's because there is only one row (so the truthiness of the vertical header is true) but no column (and the truthiness of the horizontal header is false).<br></div><div><br></div><div>QTableView *always* has both a horizontal and vertical header, so it will never return None for their getter functions.</div><div><br></div><div>Regards,</div><div>MaurizioB<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Il giorno lun 2 set 2024 alle ore 20:14 Colin Macdonald <<a href="mailto:cbm@math.ubc.ca">cbm@math.ubc.ca</a>> ha scritto:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Sometime "recently" (maybe 6.6 or 6.7) I think the truthiness of <br>
QHeaderView has changed, so that `if header:` is no longer True.<br>
<br>
Here is the __init__ method of my subclass of QTableWidget:<br>
<br>
         header = self.horizontalHeader()<br>
         print(header)<br>
         if header:<br>
             print(f"truthiness of {header} confirmed")<br>
         else:<br>
             print(f"{header} is not truthy!")<br>
         if header is not None:<br>
             print(f"{header} is not None")<br>
<br>
The output is unexpected (to me):<br>
<br>
<PyQt6.QtWidgets.QHeaderView object at 0x7fcc20d3ee90><br>
<PyQt6.QtWidgets.QHeaderView object at 0x7fcc20d3ee90> is not truthy!<br>
<PyQt6.QtWidgets.QHeaderView object at 0x7fcc20d3ee90> is not None<br>
<br>
I could probably try to narrow this down a bit, make a MWE etc.  But <br>
before I do, does this look familiar?  Are my expectations valid?  Is it <br>
normal to explicitly check for None rather than to assume truthiness of <br>
PyQt objects?<br>
<br>
thanks,<br>
Colin<br>
<br>
-- <br>
Colin Macdonald<br>
Associate Professor<br>
Dept of Math, UBC<br>
</blockquote></div><br clear="all"><br><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature">È difficile avere una convinzione precisa quando si parla delle ragioni del cuore. - "Sostiene Pereira", Antonio Tabucchi<br><a href="http://www.jidesk.net" target="_blank">http://www.jidesk.net</a></div>