Форум сайта python.su
![[RSS Feed] [RSS Feed]](/static/djangobb_forum/img/feed-icon-small.png) 
			 
							 3
  3   
								
								Пытался самостоятельно, но уже совсем сник.
Я только начал изучать Питон и увидел здесь на сайте интересный примерчик создания окна, показывающего координаты курсора. У меня сразу появилась идея на основе этого создать миди-клавиатуру, но для начала я думал, разбираясь с логическими операциями сделать просто, чтоб появлялись не координаты, а названия нот. Для облегчения задачи я использовал wxGlade, но, оказалось, что всё совсем не так просто, ибо курсор виден только за пределами объектов. StaticBitmap не имеет атрибута SetValue. В связи с этим возникло 2 вопроса: как создать этот атрибут для картинки, или как сделать картинку невидимой для курсора?
Я не разобрался ещё как прикрепить файл, но чтобы не сочли, что я тут просто так вот текст:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# generated by wxGlade 0.6.3 on Sun Mar 28 16:40:54 2010
import wx
# begin wxGlade: extracode
# end wxGlade
class MyFrame(wx.Frame):
    def __init__(self, *args, **kwds):
        # begin wxGlade: MyFrame.__init__
        kwds = wx.DEFAULT_FRAME_STYLE
        wx.Frame.__init__(self, *args, **kwds)
        self.panel_1 = wx.Panel(self, -1)
        self.panel_1.Bind(wx.EVT_MOTION, self.OnMove)
        self.text_ctrl_1 = wx.TextCtrl(self.panel_1, -1, “”)
        self.bitmap_1 = wx.StaticBitmap(self.panel_1, -1, wx.Bitmap(“/home/leonid/python/bitmap/midi_vk.png”, wx.BITMAP_TYPE_ANY), style=wx.WANTS_CHARS)
        self.__set_properties()
        self.__do_layout()
        # end wxGlade
    def __set_properties(self):
        # begin wxGlade: MyFrame.__set_properties
        self.SetTitle(“frame_1”)
        self.SetSize((602, 300))
        # end wxGlade
    def __do_layout(self):
        # begin wxGlade: MyFrame.__do_layout
        sizer_1 = wx.BoxSizer(wx.VERTICAL)
        sizer_2 = wx.BoxSizer(wx.VERTICAL)
        sizer_2.Add(self.text_ctrl_1, 0, 0, 0)
        sizer_2.Add(self.bitmap_1, 0, 0, 0)
        self.panel_1.SetSizer(sizer_2)
        sizer_1.Add(self.panel_1, 1, wx.EXPAND, 0)
        self.SetSizer(sizer_1)
        self.Layout()
        # end wxGlade
# end of class MyFrame
    def OnMove(self, event):
        pos = event.GetPosition()
        self.text_ctrl_1.SetValue(“%s, %s” % (pos.x, pos.y))
if __name__ == “__main__”:
    app = wx.PySimpleApp(0)
    wx.InitAllImageHandlers()
    frame_1 = MyFrame(None, -1, “”)
    app.SetTopWindow(frame_1)
    frame_1.Show()
    app.MainLoop()
Офлайн
 
							 
							
						 6
  6   
								
								тебе в другую тему , модераторы перенесите в gui
Офлайн
 
							 36
  36   
								
								sypper-pitА что подразумевается под SetValue для StaticBitmap? :-) Может быть можно обойтись методом SetBitmap?
StaticBitmap не имеет атрибута SetValue.
sypper-pitТ.е Вы хотите отлавливать перемещение курсора над картинкой? Так привяжите к ней соответствующее событие
… как сделать картинку невидимой для курсора?
Офлайн
 
							 3
  3   
								
								sypper-pitТак я же полный новичок, поэтому и вопрос задал в разделе для новичков. Но, тем не менее спасибо, что обратили внимание. Это позволило мне вновь просмотреть и понять, что я, вообще, не того чего-то делал. Нужно же было просто изменить строчку:
Офлайн
![[RSS Feed] [RSS Feed]](/static/djangobb_forum/img/feed-icon-small.png)