2011-12-20 15 views
8

मेरे पास एक सूची है जिसमें दो आइटम, एक शब्द और एक संख्या है। यह सूची टेबलविड्ज का उपयोग करके प्रस्तुत की जाएगी।पीईक्यूटी: मैं अलग-अलग शीर्षकों के लिए अलग-अलग शीर्षलेख आकार कैसे सेट करूं?

मेरा लक्ष्य दो स्तंभों और निरंतर पंक्तियों के साथ एक तालिका का उत्पादन करना है, लेकिन कॉलम का शीर्षलेख जिसमें शब्द संख्या कॉलम से बड़ी होनी चाहिए।

मैं सामग्री में आकार बदलने के लिए कॉलम का उपयोग कर सकता हूं, लेकिन मुझे आकार के बाद तालिका के चारों ओर सफेद खाली सफेद जगह के बिना तालिका चाहिए।

गुई कोड के निर्माण के लिए मैं QtDesigner का उपयोग कर रहा हूं। धन्यवाद।

उत्तर

14

QHeaderView कक्षा के कुछ तरीके हैं जो शायद आप जो चाहते हैं वह करेंगे। सबसे सरल है:

table.horizontalHeader().setStretchLastSection(True) 

इस रूप में वे कर रहे हैं (और उपयोगकर्ता द्वारा पुनः आकार देने योग्य) यह सुनिश्चित करेंगे कि अंतिम स्तंभ स्वचालित रूप से तालिका में मौजूद स्थान के अनुसार आकार दिया है, अन्य स्तंभों की चौड़ाई छोड़कर।

वैकल्पिक रूप से, कॉलम के ResizeMode को सेट करने के तरीके हैं।

Qt5 के लिए:

table.setColumnWidth(1, 80) 
table.horizontalHeader().setSectionResizeMode(0, QHeaderView.Stretch) 

क्यूटी 4 के लिए:

table.setColumnWidth(1, 80) 
table.horizontalHeader().setResizeMode(0, QHeaderView.Stretch) 

यह दूसरा कॉलम की चौड़ाई ठीक कर देंगे, और यह सुनिश्चित प्रथम स्तंभ स्वचालित रूप से शेष स्थान को भरने के आकार दिया है (लेकिन रोकने उपयोगकर्ता द्वारा किसी अन्य आकार का आकार)।

+0

वहाँ क्यूटी Desginer का उपयोग कर कि प्राप्त करने के लिए कोई तरीका है? क्या कोई विकल्प है? – GiannisIordanou

+0

'ResizeMode' के लिए डिज़ाइनर में कोई विकल्प नहीं है, लेकिन' setStretchLastSection' 'के लिए है (यानी प्रॉपर्टी एडिटर में हेडर/क्षैतिज हैडर स्ट्रेचलास्टसेक्शन')। – ekhumoro

4

इस लिए सबसे अच्छा समाधान, Qt5 में आप setResizeMode के बजाय setSectionResizeMode उपयोग करने के लिए:

tabv = QTableView() 
tabv.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) 

या

tabv.horizontalHeader().setSectionResizeMode(1) 
संबंधित मुद्दे