मैं PyQt4 में QTableWidget
घटक के साथ काम कर रहा हूँ और मैं उनके संबंधित हैडर लंबाई के अनुसार, सही ढंग से आकार करने के लिए कॉलम प्राप्त नहीं कर पा रहे।सेट न्यूनतम स्तंभ चौड़ाई PyQt4 QTableWidget में चौड़ाई हेडर को
यहाँ तालिका लेआउट (, बिना पाइप जाहिर है) कैसा दिखना चाहिए:
Index | Long_Header | Longer_Header
1 | 102402 | 100
2 | 123123 | 2
3 | 454689 | 18
कोड के साथ मैं काम कर रहा हूँ इस तरह दिखता है:
import sys
from PyQt4.QtCore import QStringList, QString
from PyQt4.QtGui import QApplication, QMainWindow, QSizePolicy
from PyQt4.QtGui import QTableWidget, QTableWidgetItem
def createTable():
table = QTableWidget(5, 3)
table.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
headers = QStringList()
headers.append(QString("Index"))
headers.append(QString("Long_Header"))
headers.append(QString("Longer_Header"))
table.setHorizontalHeaderLabels(headers)
table.horizontalHeader().setStretchLastSection(True)
# ignore crappy names -- this is just an example :)
cell1 = QTableWidgetItem(QString("1"))
cell2 = QTableWidgetItem(QString("102402"))
cell3 = QTableWidgetItem(QString("100"))
cell4 = QTableWidgetItem(QString("2"))
cell5 = QTableWidgetItem(QString("123123"))
cell6 = QTableWidgetItem(QString("2"))
cell7 = QTableWidgetItem(QString("3"))
cell8 = QTableWidgetItem(QString("454689"))
cell9 = QTableWidgetItem(QString("18"))
table.setItem(0, 0, cell1)
table.setItem(0, 1, cell2)
table.setItem(0, 2, cell3)
table.setItem(1, 0, cell4)
table.setItem(1, 1, cell5)
table.setItem(1, 2, cell6)
table.setItem(2, 0, cell7)
table.setItem(2, 1, cell8)
table.setItem(2, 2, cell9)
return table
if __name__ == '__main__':
app = QApplication(sys.argv)
mainW = QMainWindow()
mainW.setMinimumWidth(300)
mainW.setCentralWidget(createTable())
mainW.show()
app.exec_()
जब आवेदन निष्पादित करता है, पहला कॉलम काफी चौड़ा है जबकि अन्य कॉलम कुछ हद तक संपीड़ित हैं।
क्या डेटा के बजाए शीर्षलेख चौड़ाई के अनुसार तालिका को आकार में मजबूर करने का कोई तरीका है? बेहतर अभी तक, क्या प्रत्येक कॉलम चौड़ाई को डेटा और हेडर मानों की अधिकतम चौड़ाई के रूप में बल देने का कोई तरीका है?
अद्यतन: मैं मेज पर resizeColumnsToContents()
बुला की कोशिश की है, लेकिन दृश्य बुरी तरह घायल हो जाता है:
Python Table http://img514.imageshack.us/img514/8633/tablef.png
** Update2 **: resizeColumnsToContents()
काम करता है ठीक जब तक यह कहा जाता है के बाद सभी कक्षों और शीर्षकों को तालिका में डाला गया है।
उत्तर के लिए धन्यवाद, लेकिन मैंने पहले ही आकार बदलने की कोशिश की है कॉलम ट्यूटेंट्स()। यह डेटा को कॉलम का आकार देता है, और हेडर अपठनीय हो जाते हैं। मेरे पास प्रलेखन मौजूद है (मैं इसे लगातार उपयोग करता हूं), लेकिन मुझे इस परेशानी के मुद्दे का समाधान नहीं मिल रहा है। – bedwyr
@bedwyr: हो सकता है समस्या कहीं और शुरू हो रहा है (एक .ui (डिजाइनर में गुण) फ़ाइल शायद से विरासत?)। मैं यहां समस्या को पुन: पेश नहीं कर सकता (पीईक्यूटी 4.5.4 आईआईआरसी, मैक)। यह आपका उदाहरण कोड है (एक सरल 'table.resizeColumnsToContents()' जोड़ा गया) के साथ ऐसा लगता है: http://img210.imageshack.us/img210/9968/screenshot20100704at225.png – ChristopheD
मैंने सबकुछ हाथ से बनाया है (उपयोग नहीं कर रहा है क्यूटी डिजाइनर), तो संभव है कि मैं कुछ गलत कर रहा हूं: ^) मैं लिनक्स पर 4.7.2 का उपयोग कर रहा हूं, इसलिए यह संभव है कि लिनक्स-पोर्ट में कुछ अलग हो; हालांकि मुझे शक है। समस्या मेरे अंत में सबसे अधिक संभावना है। मैं खुदाई रखूंगा - धन्यवाद! – bedwyr