[prev in list] [next in list] [prev in thread] [next in thread]
List: pykde
Subject: [PyQt] Resize the height of the header in QTableWidget
From: Starglider Developer <starglider.dev () gmail ! com>
Date: 2014-10-23 22:10:33
Message-ID: CAJdNm3-1t8bJT2UvacQRor-tfM2HrZK+q-jg3CFf1JV-fQPCQQ () mail ! gmail ! com
[Download RAW message or body]
[Attachment #2 (multipart/alternative)]
Hi,
I need to resize the header of a QTableWidget, rows and columns is easy.
Here is the sample code I use for testing, the
self.grid.horizontalHeader().setResizeMode(QHeaderView.Fixed) and
self.grid.horizontalHeader().resizeSection( 1, 20 ) should work but it
don't.
Thank you in advance,
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class TagsInputDialog(QDialog):def __init__(self, parent = None):
super(TagsInputDialog, self).__init__(parent)
self.setWindowTitle('test')
masterLayout = QVBoxLayout(self)
self.tags_list = []
t = QCheckBox()
# t = QLineEdit()
t.setMaximumWidth(30)
d = QHBoxLayout()
d.addStretch()
d.addWidget(t)
d.addStretch()
masterLayout.addLayout(d)
btn = QPushButton('test')
masterLayout.addWidget(btn)
self.connect(btn, SIGNAL("clicked()"), self.run_click)
self.grid = QTableWidget()
masterLayout.addWidget(self.grid)
self.fill_table()
def run_click(self):
for linha in range(0, self.grid.rowCount()):
if self.grid.cellWidget(linha, 0) is not None:
self.grid.cellWidget(linha, 0).children()
# for n in dir(self.grid.cellWidget(linha, 0)):
# print n
print '\n\n'
if self.grid.cellWidget(linha, 0).isChecked() :
print int(self.grid.item(linha, 0).text())
def fill_table(self):
self.grid.setSelectionBehavior(QTableWidget.SelectRows)
self.grid.setSelectionMode(QTableWidget.SingleSelection)
self.grid.setEditTriggers(QTableWidget.NoEditTriggers)
self.grid.verticalHeader().setDefaultSectionSize(20)
self.grid.setAlternatingRowColors (True)
self.grid.verticalHeader().setVisible(False)
self.grid.setColumnCount(3)
self.grid.setHorizontalHeaderLabels(['Data0','Data1','Data2'])
self.grid.setRowCount(5)
line = 0
self.grid.setRowHeight(0,20)
for n in ['data1','data2','data3','data4','data5']:
self.grid.setCellWidget(line, 0, self.checkBoxGrid('mark'))
self.grid.setCellWidget(line, 1, QCheckBox())
item = QTableWidgetItem()
self.grid.setItem(line, 2,item )
item.setText(n)
line +=1
# this should work
self.grid.horizontalHeader().setResizeMode(QHeaderView.Fixed)
self.grid.horizontalHeader().resizeSection( 1, 20 );
def checkBoxGrid(self, label = ''):
w = QWidget()
l = QHBoxLayout(w)
l.setContentsMargins(0,0,0,0)
l.addStretch()
c = QCheckBox(label)
l.addWidget(c)
l.addStretch()
return wdef main():
app = QApplication(sys.argv)
form = TagsInputDialog()
form.show()
app.exec_()
if __name__ == '__main__':
main()
[Attachment #5 (text/html)]
<div dir="ltr"><div class="" itemprop="text">
<p>Hi,<br></p><p>I need to resize the header of a QTableWidget,
rows and columns is easy.</p>
<p>Here is the sample code I use for testing,
the self.grid.horizontalHeader().setResizeMode(QHeaderView.Fixed) and
self.grid.horizontalHeader().resizeSection( 1, 20 )
should work but it don't.</p><p>Thank you in advance,</p><p><br></p>
<pre style class=""><code><span class=""> </span><span \
class="">#!/usr/bin/python</span><span class=""> </span><span class=""># -*- coding: \
utf-8 -*-</span><span class="">
</span><span class="">import</span><span class=""> sys
</span><span class="">from</span><span class=""> </span><span \
class="">PyQt4</span><span class="">.</span><span class="">QtCore</span><span \
class=""> </span><span class="">import</span><span class=""> </span><span \
class="">*</span><span class=""> </span><span class="">from</span><span class=""> \
</span><span class="">PyQt4</span><span class="">.</span><span \
class="">QtGui</span><span class=""> </span><span class="">import</span><span \
class=""> </span><span class="">*</span><span class="">
</span><span class="">class</span><span class=""> </span><span \
class="">TagsInputDialog</span><span class="">(</span><span \
class="">QDialog</span><span class="">):</span><span class=""> </span><span \
class="">def</span><span class=""> __init__</span><span class="">(</span><span \
class="">self</span><span class="">,</span><span class=""> parent </span><span \
class="">=</span><span class=""> </span><span class="">None</span><span \
class="">):</span><span class=""> super</span><span class="">(</span><span \
class="">TagsInputDialog</span><span class="">,</span><span class=""> \
self</span><span class="">).</span><span class="">__init__</span><span \
class="">(</span><span class="">parent</span><span class="">)</span><span class=""> \
self</span><span class="">.</span><span class="">setWindowTitle</span><span \
class="">(</span><span class="">'test'</span><span class="">)</span><span \
class=""> masterLayout </span><span class="">=</span><span class=""> </span><span \
class="">QVBoxLayout</span><span class="">(</span><span class="">self</span><span \
class="">)</span><span class=""> self</span><span class="">.</span><span \
class="">tags_list </span><span class="">=</span><span class=""> </span><span \
class="">[]</span><span class="">
t </span><span class="">=</span><span class=""> </span><span \
class="">QCheckBox</span><span class="">()</span><span class=""> </span><span \
class=""># t = QLineEdit()</span><span class=""> t</span><span \
class="">.</span><span class="">setMaximumWidth</span><span class="">(</span><span \
class="">30</span><span class="">)</span><span class=""> d </span><span \
class="">=</span><span class=""> </span><span class="">QHBoxLayout</span><span \
class="">()</span><span class=""> d</span><span class="">.</span><span \
class="">addStretch</span><span class="">()</span><span class=""> d</span><span \
class="">.</span><span class="">addWidget</span><span class="">(</span><span \
class="">t</span><span class="">)</span><span class=""> d</span><span \
class="">.</span><span class="">addStretch</span><span class="">()</span><span \
class="">
masterLayout</span><span class="">.</span><span class="">addLayout</span><span \
class="">(</span><span class="">d</span><span class="">)</span><span class="">
btn </span><span class="">=</span><span class=""> </span><span \
class="">QPushButton</span><span class="">(</span><span \
class="">'test'</span><span class="">)</span><span class=""> \
masterLayout</span><span class="">.</span><span class="">addWidget</span><span \
class="">(</span><span class="">btn</span><span class="">)</span><span class=""> \
self</span><span class="">.</span><span class="">connect</span><span \
class="">(</span><span class="">btn</span><span class="">,</span><span class=""> \
SIGNAL</span><span class="">(</span><span class="">"clicked()"</span><span \
class="">),</span><span class=""> self</span><span class="">.</span><span \
class="">run_click</span><span class="">)</span><span class="">
self</span><span class="">.</span><span class="">grid </span><span \
class="">=</span><span class=""> </span><span class="">QTableWidget</span><span \
class="">()</span><span class=""> masterLayout</span><span class="">.</span><span \
class="">addWidget</span><span class="">(</span><span class="">self</span><span \
class="">.</span><span class="">grid</span><span class="">)</span><span class=""> \
self</span><span class="">.</span><span class="">fill_table</span><span \
class="">()</span><span class="">
</span><span class="">def</span><span class=""> run_click</span><span \
class="">(</span><span class="">self</span><span class="">):</span><span class=""> \
</span><span class="">for</span><span class=""> linha </span><span \
class="">in</span><span class=""> range</span><span class="">(</span><span \
class="">0</span><span class="">,</span><span class=""> self</span><span \
class="">.</span><span class="">grid</span><span class="">.</span><span \
class="">rowCount</span><span class="">()):</span><span class=""> </span><span \
class="">if</span><span class=""> self</span><span class="">.</span><span \
class="">grid</span><span class="">.</span><span class="">cellWidget</span><span \
class="">(</span><span class="">linha</span><span class="">,</span><span class=""> \
</span><span class="">0</span><span class="">)</span><span class=""> </span><span \
class="">is</span><span class=""> </span><span class="">not</span><span class=""> \
</span><span class="">None</span><span class="">:</span><span class=""> \
self</span><span class="">.</span><span class="">grid</span><span \
class="">.</span><span class="">cellWidget</span><span class="">(</span><span \
class="">linha</span><span class="">,</span><span class=""> </span><span \
class="">0</span><span class="">).</span><span class="">children</span><span \
class="">()</span><span class="">
</span><span class=""># for n in dir(self.grid.cellWidget(linha, \
0)):</span><span class=""> </span><span class=""># print n</span><span class="">
</span><span class="">print</span><span class=""> </span><span \
class="">'\n\n'</span><span class=""> </span><span class="">if</span><span \
class=""> self</span><span class="">.</span><span class="">grid</span><span \
class="">.</span><span class="">cellWidget</span><span class="">(</span><span \
class="">linha</span><span class="">,</span><span class=""> </span><span \
class="">0</span><span class="">).</span><span class="">isChecked</span><span \
class="">()</span><span class=""> </span><span class="">:</span><span class=""> \
</span><span class="">print</span><span class=""> int</span><span \
class="">(</span><span class="">self</span><span class="">.</span><span \
class="">grid</span><span class="">.</span><span class="">item</span><span \
class="">(</span><span class="">linha</span><span class="">,</span><span class=""> \
</span><span class="">0</span><span class="">).</span><span class="">text</span><span \
class="">())</span><span class="">
</span><span class="">def</span><span class=""> fill_table</span><span \
class="">(</span><span class="">self</span><span class="">):</span><span class=""> \
self</span><span class="">.</span><span class="">grid</span><span \
class="">.</span><span class="">setSelectionBehavior</span><span \
class="">(</span><span class="">QTableWidget</span><span class="">.</span><span \
class="">SelectRows</span><span class="">)</span><span class=""> self</span><span \
class="">.</span><span class="">grid</span><span class="">.</span><span \
class="">setSelectionMode</span><span class="">(</span><span \
class="">QTableWidget</span><span class="">.</span><span \
class="">SingleSelection</span><span class="">)</span><span class=""> \
self</span><span class="">.</span><span class="">grid</span><span \
class="">.</span><span class="">setEditTriggers</span><span class="">(</span><span \
class="">QTableWidget</span><span class="">.</span><span \
class="">NoEditTriggers</span><span class="">)</span><span class=""> \
self</span><span class="">.</span><span class="">grid</span><span \
class="">.</span><span class="">verticalHeader</span><span class="">().</span><span \
class="">setDefaultSectionSize</span><span class="">(</span><span \
class="">20</span><span class="">)</span><span class=""> self</span><span \
class="">.</span><span class="">grid</span><span class="">.</span><span \
class="">setAlternatingRowColors </span><span class="">(</span><span \
class="">True</span><span class="">)</span><span class=""> self</span><span \
class="">.</span><span class="">grid</span><span class="">.</span><span \
class="">verticalHeader</span><span class="">().</span><span \
class="">setVisible</span><span class="">(</span><span class="">False</span><span \
class="">)</span><span class=""> self</span><span class="">.</span><span \
class="">grid</span><span class="">.</span><span class="">setColumnCount</span><span \
class="">(</span><span class="">3</span><span class="">)</span><span class=""> \
self</span><span class="">.</span><span class="">grid</span><span \
class="">.</span><span class="">setHorizontalHeaderLabels</span><span \
class="">([</span><span class="">'Data0'</span><span class="">,</span><span \
class="">'Data1'</span><span class="">,</span><span \
class="">'Data2'</span><span class="">])</span><span class=""> \
self</span><span class="">.</span><span class="">grid</span><span \
class="">.</span><span class="">setRowCount</span><span class="">(</span><span \
class="">5</span><span class="">)</span><span class="">
line </span><span class="">=</span><span class=""> </span><span \
class="">0</span><span class=""> self</span><span class="">.</span><span \
class="">grid</span><span class="">.</span><span class="">setRowHeight</span><span \
class="">(</span><span class="">0</span><span class="">,</span><span \
class="">20</span><span class="">)</span><span class=""> </span><span \
class="">for</span><span class=""> n </span><span class="">in</span><span class=""> \
</span><span class="">[</span><span class="">'data1'</span><span \
class="">,</span><span class="">'data2'</span><span class="">,</span><span \
class="">'data3'</span><span class="">,</span><span \
class="">'data4'</span><span class="">,</span><span \
class="">'data5'</span><span class="">]:</span><span class="">
self</span><span class="">.</span><span class="">grid</span><span \
class="">.</span><span class="">setCellWidget</span><span class="">(</span><span \
class="">line</span><span class="">,</span><span class=""> </span><span \
class="">0</span><span class="">,</span><span class=""> self</span><span \
class="">.</span><span class="">checkBoxGrid</span><span class="">(</span><span \
class="">'mark'</span><span class="">))</span><span class=""> \
self</span><span class="">.</span><span class="">grid</span><span \
class="">.</span><span class="">setCellWidget</span><span class="">(</span><span \
class="">line</span><span class="">,</span><span class=""> </span><span \
class="">1</span><span class="">,</span><span class=""> </span><span \
class="">QCheckBox</span><span class="">())</span><span class="">
item </span><span class="">=</span><span class=""> </span><span \
class="">QTableWidgetItem</span><span class="">()</span><span class=""> \
self</span><span class="">.</span><span class="">grid</span><span \
class="">.</span><span class="">setItem</span><span class="">(</span><span \
class="">line</span><span class="">,</span><span class=""> </span><span \
class="">2</span><span class="">,</span><span class="">item </span><span \
class="">)</span><span class="">
item</span><span class="">.</span><span class="">setText</span><span \
class="">(</span><span class="">n</span><span class="">)</span><span class="">
line </span><span class="">+=</span><span class="">1</span><span class="">
</span><span class=""># this should work</span><span class="">
self</span><span class="">.</span><span class="">grid</span><span \
class="">.</span><span class="">horizontalHeader</span><span class="">().</span><span \
class="">setResizeMode</span><span class="">(</span><span \
class="">QHeaderView</span><span class="">.</span><span class="">Fixed</span><span \
class="">)</span><span class=""> self</span><span class="">.</span><span \
class="">grid</span><span class="">.</span><span \
class="">horizontalHeader</span><span class="">().</span><span \
class="">resizeSection</span><span class="">(</span><span class=""> </span><span \
class="">1</span><span class="">,</span><span class=""> </span><span \
class="">20</span><span class=""> </span><span class="">);</span><span class="">
</span><span class="">def</span><span class=""> checkBoxGrid</span><span \
class="">(</span><span class="">self</span><span class="">,</span><span class=""> \
label </span><span class="">=</span><span class=""> </span><span \
class="">''</span><span class="">):</span><span class=""> w </span><span \
class="">=</span><span class=""> </span><span class="">QWidget</span><span \
class="">()</span><span class=""> l </span><span class="">=</span><span class=""> \
</span><span class="">QHBoxLayout</span><span class="">(</span><span \
class="">w</span><span class="">)</span><span class=""> l</span><span \
class="">.</span><span class="">setContentsMargins</span><span class="">(</span><span \
class="">0</span><span class="">,</span><span class="">0</span><span \
class="">,</span><span class="">0</span><span class="">,</span><span \
class="">0</span><span class="">)</span><span class=""> l</span><span \
class="">.</span><span class="">addStretch</span><span class="">()</span><span \
class=""> c </span><span class="">=</span><span class=""> </span><span \
class="">QCheckBox</span><span class="">(</span><span class="">label</span><span \
class="">)</span><span class=""> l</span><span class="">.</span><span \
class="">addWidget</span><span class="">(</span><span class="">c</span><span \
class="">)</span><span class=""> l</span><span class="">.</span><span \
class="">addStretch</span><span class="">()</span><span class=""> </span><span \
class="">return</span><span class=""> w </span><span class="">def</span><span \
class=""> main</span><span class="">():</span><span class=""> app </span><span \
class="">=</span><span class=""> </span><span class="">QApplication</span><span \
class="">(</span><span class="">sys</span><span class="">.</span><span \
class="">argv</span><span class="">)</span><span class=""> form </span><span \
class="">=</span><span class=""> </span><span class="">TagsInputDialog</span><span \
class="">()</span><span class=""> form</span><span class="">.</span><span \
class="">show</span><span class="">()</span><span class=""> app</span><span \
class="">.</span><span class="">exec_</span><span class="">()</span><span class="">
</span><span class="">if</span><span class=""> __name__ </span><span \
class="">==</span><span class=""> </span><span \
class="">'__main__'</span><span class="">:</span><span class=""> \
main</span><span class="">()</span></code></pre>
</div></div>
[Attachment #6 (text/plain)]
_______________________________________________
PyQt mailing list PyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic