2014-04-10 6 views
6

मैं एक QTableView बनाने की कोशिश कर रहा हूं जिसे Excel में ज़ूम इन और ज़ूम किया जा सकता है।
ऐसा ही एक सवाल यहाँ कहा गया था: Zooming function on a QWidgetQTableView ज़ूम इन/आउट

हालांकि, मैं PyQt में QTableView उपवर्गीकरण रहा हूँ और नहीं सी तो reimplementing पूरे PaintEvent विधि एक सा विकसित है। इसके लिए स्रोत कोड थोड़ा जटिल है: https://qt.gitorious.org/qt/tiittane-qt/source/bdd4a9149789f60974603e1f7621d51378f0a108:src/gui/itemviews/qtableview.cpp#L1282

मैं देख रहा हूं कि ज़ूम सक्षम TableView रखने के लिए कोई अन्य व्यवहार्य विकल्प हैं या नहीं। मेरा पहला प्रयास फ़ॉन्ट आकार को सेट करके था, फिर प्रत्येक कॉलम और पंक्ति चौड़ाई को महसूस किया जाना चाहिए, साथ ही धीमा हो सकता है। फिर फ़ॉन्ट बदलना एहसास प्रिंट बदल जाएगा। यह एक सुरुचिपूर्ण समाधान की तरह प्रतीत नहीं होता था। पेंटिंग से पहले चित्रकार के पैमाने को बदलना अधिक सुरुचिपूर्ण समाधान की तरह लगता है लेकिन ऐसा करने के लिए पाइथन को कोड को दोबारा लागू करना और अनुवाद करना होगा। मैं सोच रहा हूं कि ऐसा करने के लिए कोई अन्य हुक है या नहीं।

धन्यवाद

+0

आप अंत में इस के साथ किसी भी सफलता है? क्या आप जिस तकनीक पर बस गए हैं उसे साझा कर सकते हैं? धन्यवाद! – simon

+2

अंत में कार्य को प्राथमिकता में नीचे ले जाया गया जहां महत्वपूर्ण रूप से इस पर काम नहीं किया गया। किसी बिंदु पर मैं इसे फिर से देखूंगा लेकिन कब नहीं जानता। ग्राफिक्स दृश्य का उपयोग करने के साथ कुछ जटिलताओं और अजीब व्यवहार हैं इसलिए मुझे यकीन नहीं है कि यह – TexasRaptor

+0

में पेंट विधि को पुन: कार्यान्वित करने से कहीं अधिक आसान होगा, मैंने इसके बारे में कुछ दिन पहले पूछा था, मेरी खोज कौशल खराब है I लगता है ... http: //stackoverflow.com/questions/30601123/zooming-a-view-in-pyqt। मुझे लगता है कि मैं सचमुच फ़ॉन्ट आकार बदल रहा हूं और फिर सामग्री को आकार दे सकता हूं, जो बेकार है, लेकिन ओह अच्छी तरह से ... – neuronet

उत्तर

1

आप QTableWidget बजाय का उपयोग कर सकते हैं तो आप एक QGraphicsScene और add it to that बना सकते हैं। फिर आप आसानी से विजेट के पैमाने को नियंत्रित करते हैं।

यदि आप लंबवत और क्षैतिज शीर्षलेख हमेशा दिखाना चाहते हैं तो मुझे लगता है कि आपको तालिका के स्क्रॉलबार को बंद करना होगा (जो ज़ूम हो जाएगा, संभवतः आप जो भी चाहते हैं उसे नहीं) और इसमें स्क्रॉलबार पैनल का हिस्सा है जिसमें ग्राफिक्स हैं दृश्य (शायद पैनल QAbstractScrollArea लेआउट में 4 सेल्स के साथ होगा: दृश्य के लिए एक सेल, क्षितिज स्क्रॉलबार के लिए एक, वर्ट स्क्रॉलबार के लिए एक, और कोने के लिए एक खाली हो सकता है), और उन्हें तालिका के स्क्रॉल व्यवहार से कनेक्ट करें।

+0

यह एक उत्कृष्ट विचार की तरह लगता है। मुझे इसे कार्यान्वित करने में परेशानी हो रही है क्योंकि स्क्रॉल बार ग्राफिक्स व्यू के साथ क्षैतिज और लंबवत शीर्षलेख दिखाई देने वाली समस्या को ध्यान में रखते हुए एक समस्या के साथ प्रतीत होते हैं। – TexasRaptor

+0

@TexasRaptor अपडेट किया गया। यह कुछ काम करेगा। – Schollii

0

दृश्य पर ज़ूम करने के लिए कोई अंतर्निहित विधि नहीं है।

स्क्रीन पर फ़ॉन्ट के आकार को अलग करने का सबसे आसान तरीका, सहेजे गए या मुद्रित फ़ॉन्ट के आकार के विरुद्ध, मूल रूप से दो फ़ॉन्ट हैं। स्क्रीन पर प्रदर्शित होने वाला एक जिसे आप 'ज़ूम' कह सकते हैं, दूसरे को बनाम/मुद्रित करने के लिए और उस 'फ़ॉन्ट आकार' को कॉल करें।

नोट इस जवाब में कटौती और एक ही सवाल से चिपकाया जाता है: Zooming a view in PyQt?