嘿伙计们我遇到了一个我不知道如何解决的问题。我刚刚遇到一个团队使用PyGtk在python中设计GUI。
我需要制作一个在屏幕上有可点击区域的GUI。我需要将屏幕分成12个相等的区域,在中心区域中有一个方格。像这样:http://imgur.com/PMT3m
我想过使用按钮但是按钮是矩形的。是否可以制作与图片中显示的不同形状的按钮?如果我能改变窗口的大小,那么这些按钮会重新调整大小吗?
我想到的另一个选项是创建一个侦听鼠标点击的动作侦听器,收集有关点击的位置数据,然后根据它所在的区域调用特定的方法。在这个方法中我需要使用静态图像作为背景,这是不可取的。如果可能的话,我想让它具有抵抗力。
以前有人做过这样的事吗?如果是这样,你使用了什么方法?我不需要一些为我编写代码我只需要帮助入门。哪种方法看起来更健全?我没有很多使用其他python GUI工具的经验,所以我对其他建议如pyQt或wxPython持开放态度。
提前致谢!
答案 0 :(得分:1)
如果您只需获得点击的反馈,那么使用GtkDrawingArea
并在那里听鼠标点击就足够了。您不需要使用静态图像,您可以使用cairo并根据绘图区域的大小绘制自己的形状,以便它始终具有您想要的形状。
但是,如果您计划在那里使用大量鼠标交互(拖放形状等),那么使用像GooCanvas这样的画布将是首选方式。
还要注意pyGTK仅适用于GTK 2,可在Linux和Windows下使用,但它已被pyGObject for GTK 3淘汰(在Linux上,因为目前还没有适用于Windows的pyGObject的官方一体化安装程序)。 / p>
要在GtkDrawingArea
中绘图,您将在GTK 2上使用expose-event
信号,在GTK 3上使用draw
信号。