Thanks, Mark, that&#39;s closer.&nbsp; But it still only shows part of the note, &#39;emergency broadcast system&#39;.<br><br><div><span class="gmail_quote">On 1/12/08, <b class="gmail_sendername">Mark Summerfield</b> &lt;<a href="mailto:mark@qtrac.eu">
mark@qtrac.eu</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">On 2008-01-11, Kerri Reno wrote:<br>&gt; Below is my code.&nbsp;&nbsp;The first column wraps, but the third column doesn&#39;t,
<br>&gt; and shows ....<br>&gt;<br>&gt; What am I doing wrong?&nbsp;&nbsp;I would like both columns to wrap.<br><br>(1) After you&#39;ve set word wrap you need to call:<br><br>&nbsp;&nbsp; self.setTextElideMode(Qt.ElideNone)<br><br>&nbsp;&nbsp; This stops PyQt making long texts short by inserting an ellipsis
<br><br>(2) Do not call resizeColumnsToContents()<br><br>&nbsp;&nbsp;&nbsp;&nbsp;The call you have is pointless anyway because you resize before<br>&nbsp;&nbsp;&nbsp;&nbsp;you&#39;ve got any data, but if you call this after you have data the<br>&nbsp;&nbsp;&nbsp;&nbsp;columns will simply grow as wide as needed and you&#39;ll get a
<br>&nbsp;&nbsp;&nbsp;&nbsp;horizontal scrollbar<br><br>(3) Call resizeRowsToContents() whenever the model&#39;s data changes (or at<br>&nbsp;&nbsp;&nbsp;&nbsp;least after the initial data is loaded)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;This is to ensure that each row is tall enough to show the wrapped
<br>&nbsp;&nbsp;&nbsp;&nbsp;text.<br><br>from PyQt4.QtGui import *<br>from PyQt4.QtCore import *<br>import sys<br><br>class notesView(QTableView):<br><br>&nbsp;&nbsp;&nbsp;&nbsp;def __init__(self,parent, notes):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;QTableView.__init__(self,parent)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
self.setSizePolicy(QSizePolicy.Preferred,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;QSizePolicy.Fixed)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v = self.verticalHeader()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v.hide()<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.model = notesModel(notes)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.setWordWrap(True)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
self.setTextElideMode(Qt.ElideNone) # ADD<br>#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.resizeRowsToContents()<br>#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.resizeColumnsToContents()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.setModel(self.model)<br><br>class notesModel(QAbstractTableModel):<br><br>&nbsp;&nbsp;&nbsp;&nbsp;def __init__(self, notes):
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;QAbstractTableModel.__init__(self)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.notes = notes<br><br>&nbsp;&nbsp;&nbsp;&nbsp;def flags(self,index):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if not index.isValid():<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return Qt.ItemIsEnabled<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return Qt.ItemFlags(QAbstractTableModel.flags
(self,index))<br><br>&nbsp;&nbsp;&nbsp;&nbsp;def rowCount(self, index=QModelIndex()):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return len(self.notes)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;def columnCount(self,index=QModelIndex()):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 3<br><br>&nbsp;&nbsp;&nbsp;&nbsp;def headerData(self,section,orientation,role=
Qt.DisplayRole):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if role == Qt.TextAlignmentRole:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if orientation == Qt.Horizontal:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return QVariant(int(Qt.AlignHCenter|Qt.AlignVCenter))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return QVariant(int(Qt.AlignRight|Qt.AlignVCenter
))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if role != Qt.DisplayRole:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return QVariant()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if orientation == Qt.Horizontal:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if section == 0:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return QVariant(&#39;Date&#39;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elif section == 1:
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return QVariant(&#39;Author&#39;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elif section == 2:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return QVariant(&#39;Note&#39;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return QVariant(int(section+1))<br><br>&nbsp;&nbsp;&nbsp;&nbsp;def data(self,index,role=Qt.DisplayRole
):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if not index.isValid() or not (0 &lt;= index.row() &lt; len(self.notes)):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return QVariant()<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;note = self.notes[index.row()]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;column = index.column()<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if role == 
Qt.DisplayRole:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if column ==&nbsp;&nbsp;0:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return QVariant(QString(note[&#39;stamp&#39;]))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elif column == 1:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return QVariant(QString(&quot;%1,<br>%2&quot;).arg(note[&#39;last_name&#39;],note[&#39;first_name&#39;]))
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elif column == 2:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return QVariant(QString(note[&#39;note&#39;]))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elif role == Qt.TextAlignmentRole:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return QVariant(int(Qt.AlignLeft|Qt.AlignVCenter))<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return QVariant()
<br><br>if __name__ == &#39;__main__&#39;:<br><br>&nbsp;&nbsp;&nbsp;&nbsp;app = QApplication(sys.argv)<br>&nbsp;&nbsp;&nbsp;&nbsp;form = QDialog()<br>&nbsp;&nbsp;&nbsp;&nbsp;notes_list = [{&#39;id&#39;:1,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;stamp&#39;: &#39;1/3/2008 4:31:04 PM&#39;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;last_name&#39;:&#39;Blow&#39;,
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;first_name&#39;:&#39;Joe&#39;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;note&#39;:&#39;This is a test of the emergency broadcast system.&nbsp;&nbsp;This<br>is only a test.&#39;}]<br>&nbsp;&nbsp;&nbsp;&nbsp;notes = notesView(form, notes_list)<br>&nbsp;&nbsp;&nbsp;&nbsp;notes.resizeRowsToContents
() # ADD<br>&nbsp;&nbsp;&nbsp;&nbsp;notes.setMinimumWidth(400)<br>&nbsp;&nbsp;&nbsp;&nbsp;notes.setMinimumHeight(200)<br>&nbsp;&nbsp;&nbsp;&nbsp;form.show()<br>&nbsp;&nbsp;&nbsp;&nbsp;app.exec_()<br><br><br><br>--<br>Mark Summerfield, Qtrac Ltd., www.qtrac.eu<br><br></blockquote></div><br><br clear="all">
<br>-- <br>Yuma Educational Computer Consortium<br>Compass Development Team<br>Kerri Reno<br><a href="mailto:kreno@yumaed.org">kreno@yumaed.org</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(928) 502-4240<br>.·:*¨¨*:·.&nbsp;&nbsp; .·:*¨¨*:·.&nbsp;&nbsp; .·:*¨¨*:·.