<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">I am building a simple data display application, to show several columns from a table. They appear fine, but I can’t get the columns to fit the data correctly. All the columns appear the same width.<o:p></o:p></p>
<p class="MsoNormal">I did not see much by searching for this. I’ve tried several different options. None seem to make any difference. How should one do this? PyQt and PySide2 have the same results<o:p></o:p></p>
<p class="MsoNormal">Using QtDesigner<o:p></o:p></p>
<p class="MsoNormal">QtDesigner 5.13.0<o:p></o:p></p>
<p class="MsoNormal">Python 3.7.4<o:p></o:p></p>
<p class="MsoNormal">PyQt5              5.13.0<o:p></o:p></p>
<p class="MsoNormal">PyQt5-sip          4.19.18<o:p></o:p></p>
<p class="MsoNormal">PyQt5Designer      5.10.1<o:p></o:p></p>
<p class="MsoNormal">PySide2            5.13.1<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I’m restricted in what I can post without obfuscating information, I hope the snippets will help.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Snippet from uic converted .ui<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:8.0pt;font-family:Consolas;color:black">       
<i>self</i>.tableViewArch = QtWidgets.QTableView(<i>self</i>.centralwidget)</span><span style="font-size:8.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:8.0pt;font-family:Consolas;color:black">       
<i>self</i>.tableViewArch.setGeometry(QtCore.QRect(</span><span style="font-size:8.0pt;font-family:Consolas;color:maroon">20</span><span style="font-size:8.0pt;font-family:Consolas;color:black">,
</span><span style="font-size:8.0pt;font-family:Consolas;color:maroon">70</span><span style="font-size:8.0pt;font-family:Consolas;color:black">,
</span><span style="font-size:8.0pt;font-family:Consolas;color:maroon">771</span><span style="font-size:8.0pt;font-family:Consolas;color:black">,
</span><span style="font-size:8.0pt;font-family:Consolas;color:maroon">471</span><span style="font-size:8.0pt;font-family:Consolas;color:black">))</span><span style="font-size:8.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:8.0pt;font-family:Consolas;color:black">       
<i>self</i>.tableViewArch.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContents)</span><span style="font-size:8.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:8.0pt;font-family:Consolas;color:black">       
<i>self</i>.tableViewArch.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)</span><span style="font-size:8.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:8.0pt;font-family:Consolas;color:black">       
<i>self</i>.tableViewArch.setTabKeyNavigation(</span><span style="font-size:8.0pt;font-family:Consolas;color:blue">False</span><span style="font-size:8.0pt;font-family:Consolas;color:black">)</span><span style="font-size:8.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:8.0pt;font-family:Consolas;color:black">       
<i>self</i>.tableViewArch.setProperty(</span><i><span style="font-size:8.0pt;font-family:Consolas;color:#00AA00">"showDropIndicator"</span></i><span style="font-size:8.0pt;font-family:Consolas;color:black">,
</span><span style="font-size:8.0pt;font-family:Consolas;color:blue">False</span><span style="font-size:8.0pt;font-family:Consolas;color:black">)</span><span style="font-size:8.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:8.0pt;font-family:Consolas;color:black">       
<i>self</i>.tableViewArch.setDragDropOverwriteMode(</span><span style="font-size:8.0pt;font-family:Consolas;color:blue">False</span><span style="font-size:8.0pt;font-family:Consolas;color:black">)</span><span style="font-size:8.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:8.0pt;font-family:Consolas;color:black">       
<i>self</i>.tableViewArch.setSortingEnabled(</span><span style="font-size:8.0pt;font-family:Consolas;color:blue">True</span><span style="font-size:8.0pt;font-family:Consolas;color:black">)</span><span style="font-size:8.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:8.0pt;font-family:Consolas;color:black">       
<i>self</i>.tableViewArch.setObjectName(</span><i><span style="font-size:8.0pt;font-family:Consolas;color:#00AA00">"tableViewArch"</span></i><span style="font-size:8.0pt;font-family:Consolas;color:black">)</span><span style="font-size:8.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Class method loading the QTableView<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:8.0pt;font-family:Consolas;color:black">   
</span><span style="font-size:8.0pt;font-family:Consolas;color:blue">def</span><span style="font-size:8.0pt;font-family:Consolas;color:black">
<b>loadTableViewArch</b>(<i>self</i>):</span><span style="font-size:8.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:8.0pt;font-family:Consolas;color:black">        archlist,archcol =
<i>self</i>.dbh.get_arch_for_mnm(<i>self</i>.comboBoxAppMnm.currentText())</span><span style="font-size:8.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:8.0pt;font-family:Consolas;color:black">        cols = [col[</span><span style="font-size:8.0pt;font-family:Consolas;color:maroon">0</span><span style="font-size:8.0pt;font-family:Consolas;color:black">]
</span><span style="font-size:8.0pt;font-family:Consolas;color:blue">for</span><span style="font-size:8.0pt;font-family:Consolas;color:black"> col
</span><span style="font-size:8.0pt;font-family:Consolas;color:blue">in</span><span style="font-size:8.0pt;font-family:Consolas;color:black"> archcol]</span><span style="font-size:8.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:8.0pt;font-family:Consolas;color:black">        curmodel =
<i>self</i>.tableViewArch.model()</span><span style="font-size:8.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:8.0pt;font-family:Consolas;color:black">        model = QStandardItemModel()</span><span style="font-size:8.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:8.0pt;font-family:Consolas;color:black">        model.setHorizontalHeaderLabels(cols)</span><span style="font-size:8.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:8.0pt;font-family:Consolas;color:black">       
<i>self</i>.tableViewArch.setModel(model)</span><span style="font-size:8.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:8.0pt;font-family:Consolas;color:black">       
<i>self</i>.tableViewArch.resizeColumnsToContents()</span><span style="font-size:8.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:8.0pt;font-family:Consolas;color:black">        collen = [</span><span style="font-size:8.0pt;font-family:Consolas;color:maroon">0</span><span style="font-size:8.0pt;font-family:Consolas;color:black">]
 * len(cols)</span><span style="font-size:8.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:8.0pt;font-family:Consolas;color:black">       
</span><span style="font-size:8.0pt;font-family:Consolas;color:blue">for</span><span style="font-size:8.0pt;font-family:Consolas;color:black"> row
</span><span style="font-size:8.0pt;font-family:Consolas;color:blue">in</span><span style="font-size:8.0pt;font-family:Consolas;color:black"> archlist:</span><span style="font-size:8.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:8.0pt;font-family:Consolas;color:black">            items = []</span><span style="font-size:8.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:8.0pt;font-family:Consolas;color:black">           
</span><span style="font-size:8.0pt;font-family:Consolas;color:blue">for</span><span style="font-size:8.0pt;font-family:Consolas;color:black"> cix, col
</span><span style="font-size:8.0pt;font-family:Consolas;color:blue">in</span><span style="font-size:8.0pt;font-family:Consolas;color:black"> enumerate(row):</span><span style="font-size:8.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:8.0pt;font-family:Consolas;color:black">               
</span><span style="font-size:8.0pt;font-family:Consolas;color:blue">if</span><span style="font-size:8.0pt;font-family:Consolas;color:black"> collen[cix] < len(col.strip()):</span><span style="font-size:8.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:8.0pt;font-family:Consolas;color:black">                    collen[cix] = len(col.strip())</span><span style="font-size:8.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:8.0pt;font-family:Consolas;color:black">                citem = QStandardItem(col)
</span><span style="font-size:8.0pt;font-family:Consolas;color:silver">#.setText(<u>col</u>)</span><span style="font-size:8.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:8.0pt;font-family:Consolas;color:black">                Qs = QtCore.QSize()</span><span style="font-size:8.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:8.0pt;font-family:Consolas;color:black">                Qs.setWidth(len(col.strip()))</span><span style="font-size:8.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:8.0pt;font-family:Consolas;color:black">                Qs.setWidth(</span><span style="font-size:8.0pt;font-family:Consolas;color:maroon">100</span><span style="font-size:8.0pt;font-family:Consolas;color:black">)</span><span style="font-size:8.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:8.0pt;font-family:Consolas;color:black">                citem.setSizeHint(Qs)</span><span style="font-size:8.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:8.0pt;font-family:Consolas;color:black">                items.append(citem)</span><span style="font-size:8.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:8.0pt;font-family:Consolas;color:black">            model.appendRow(items)</span><span style="font-size:8.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:8.0pt;font-family:Consolas;color:black">       
</span><span style="font-size:8.0pt;font-family:Consolas;color:blue">for</span><span style="font-size:8.0pt;font-family:Consolas;color:black"> cix,clen
</span><span style="font-size:8.0pt;font-family:Consolas;color:blue">in</span><span style="font-size:8.0pt;font-family:Consolas;color:black"> enumerate(collen):</span><span style="font-size:8.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:8.0pt;font-family:Consolas;color:black">           
<i>self</i>.tableViewArch.setColumnWidth(cix,</span><span style="font-size:8.0pt;font-family:Consolas;color:maroon">100</span><span style="font-size:8.0pt;font-family:Consolas;color:black">)</span><span style="font-size:8.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:8.0pt;font-family:Consolas;color:black">       
</span><span style="font-size:8.0pt;font-family:Consolas;color:blue">del</span><span style="font-size:8.0pt;font-family:Consolas;color:black"> curmodel</span><span style="font-size:8.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Thanks,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Ed Lipson<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Arial",sans-serif;color:#003300">Director<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Arial",sans-serif;color:#003300">BNY Mellon | 2 Hanson Pl AIM 111-0800 | Brooklyn NY 11217<o:p></o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:9.0pt;font-family:"Arial",sans-serif;color:#003300">Information Lifecycle Management
</span></b><span style="font-size:9.0pt;font-family:"Arial",sans-serif;color:#003300"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Arial",sans-serif;color:#003300">T 718.315.4763 |  F 724.540.6622 | C 917.859.5180 |
<a href="mailto:ed.lipson@bnymellon.com"><span style="color:blue">ed.lipson@bnymellon.com</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<br clear="both">
The information contained in this e-mail, and any attachment, is confidential and is intended solely for the use of the intended recipient. Access, copying or re-use of the e-mail or any attachment, or any information contained therein, by any other person is not authorized. If you are not the intended recipient please return the e-mail to the sender and delete it from your computer. Although we attempt to sweep e-mail and attachments for viruses, we do not guarantee that either are virus-free and accept no liability for any damage sustained as a result of viruses. <BR>
<BR>
Please refer to https://disclaimer.bnymellon.com/eu.htm for certain disclosures relating to European legal entities. We take our data protection and privacy responsibilities seriously and our privacy notice explains how we collect, use and share personal information in the course of our business activities. It can be accessed at the privacy section of  www.bnymellon.com.<BR>
</body>
</html>