मेरे wxPython एप्लिकेशन में मैंने wx.ScrolledPanel
बनाया है, जिसमें एक बड़ा wx.StaticBitmap
है जिसे स्क्रॉल करने की आवश्यकता है।माउस व्हील और तीर कुंजियों के साथ 'wx.ScrolledPanel` के माध्यम से स्क्रॉलिंग
स्क्रॉल बार प्रदर्शित होते हैं और मैं उनके साथ स्क्रॉल कर सकते हैं, लेकिन मैं यह भी माउस पहिया और कीबोर्ड पर तीर कुंजियों के साथ स्क्रॉल करने के लिए सक्षम होने के लिए करना चाहते हैं। यह अच्छा होगा अगर "होम", "पेज अप", और वे अन्य कुंजियां भी अपेक्षित कार्य करती हैं।
मैं यह कैसे कर सकता हूं?
अद्यतन:
मैं इस समस्या को देखते हैं। स्क्रॉल किए गए पैनेल स्क्रॉल करने में सक्षम है, लेकिन केवल तभी जब यह फोकस में है। समस्या यह है कि, मैं फोकस के तहत कैसे हो सकता हूं? यहां तक कि इस पर क्लिक करने से यह नहीं होता है। केवल अगर मैं इसके अंदर एक टेक्स्ट नियंत्रण डालता हूं तो मैं उस पर ध्यान केंद्रित कर सकता हूं और इस प्रकार पहिया के साथ स्क्रॉल कर सकता हूं। लेकिन मैं इसमें टेक्स्ट नियंत्रण नहीं रखना चाहता हूं। तो मैं इसे कैसे फोकस करूं?
अद्यतन 2:
यहाँ एक कोड नमूना है कि इस घटना से पता चलता है। यह देखने के लिए कि कैसे एक पाठ नियंत्रण माउस व्हील काम करता है।
import wx, wx.lib.scrolledpanel
class MyFrame(wx.Frame):
def __init__(self, *args, **kwargs):
wx.Frame.__init__(self, *args, **kwargs)
scrolled_panel = \
wx.lib.scrolledpanel.ScrolledPanel(parent=self, id=-1)
scrolled_panel.SetupScrolling()
text = "Ooga booga\n" * 50
static_text=wx.StaticText(scrolled_panel, -1, text)
sizer=wx.BoxSizer(wx.VERTICAL)
sizer.Add(static_text, wx.EXPAND, 0)
# Uncomment the following 2 lines to see how adding
# a text control to the scrolled panel makes the
# mouse wheel work.
#
#text_control=wx.TextCtrl(scrolled_panel, -1)
#sizer.Add(text_control, wx.EXPAND, 0)
scrolled_panel.SetSizer(sizer)
self.Show()
if __name__=="__main__":
app = wx.PySimpleApp()
my_frame=MyFrame(None, -1)
#import cProfile; cProfile.run("app.MainLoop()")
app.MainLoop()
लेकिन इसे कहां रखा जाए? मैं फोकस को किसी अन्य विजेट पर बदलना चाहता हूं, और फिर स्क्रॉल किए गए पैनेल पर फिर से लौटना चाहूंगा। –
1. मेरी पहली टिप्पणी में प्रश्न देखें। 2. हां, मैंने SetupScrolling कहा है। 3. क्या मुझे वास्तव में घर की चीज के साथ पहिया को फिर से शुरू करने की ज़रूरत है? WxPython इसे लागू नहीं करता है? –
कुछ अजीब है। उदाहरण के लिए wxPython डेमो में, जब माउस प्रत्येक पैनल पर होता है, तो वह पैनल पहिया के साथ स्क्रॉल करेगा। तो कुछ सवाल। यदि आप 'सेटफोकस' कहते हैं तो यह काम करता है? यदि आप सामान्य तरीके से स्क्रॉल करने का प्रयास करते हैं, तो स्क्रॉलबार पर क्लिक करके और आगे बढ़ते हुए, क्या यह चलता है? और यदि आप तुरंत स्क्रॉल व्हील का उपयोग करने के लिए करते हैं, तो क्या यह काम करता है? – tom10