GtkButton 与 GtkLabel 字体浮雕:如何自定义其中之一?
上下文
我正在使用 PyGtk 开发一个应用程序,它或多或少可以作为面板工作,很像 gnome-panel。理想情况下,在我正在制作的面板上,我想要一个没有边框的按钮(注意:我正在使用 PyGtk 学习 GUI 编码)。
问题
我已经从另一个线程理解以及文档 gtk_button_set_relief(GtkButton, GTK_RELIEF_NONE)
仅取消 GTK_STATE_NORMAL
上的按钮浮雕。因此,当将鼠标悬停在按钮上时,浮雕会再次出现(旁注:坦率地说,这些选项实际上已部分解决,这很烦人)。
解决该问题的另一种方法是使用 GtkLabel 并将 GtkEventBox 设为其父级,并使其充当按钮。然而有一个问题:虽然 GtkButton 字体有浮雕,但 GtkLabel 却没有。请参见下面的屏幕截图:
从左到右:不带字体浮雕的 GtkLabel 和带字体浮雕的 GtkButton
问题
现在也许您可以用您的建议帮助我解决上述问题。我在想的是:
- 是什么导致这些 GtkWidgets 上的字体浮雕:主题还是 Gtk 基础本身?
- 如何为标签字体添加浮雕?或者
- 我如何删除所有状态下按钮的边框浮雕?
- 更一般地说,我如何使用 PyGtk 创建自己的小部件(子类化 GtkLabel 或 GtkButton)? (我已经看到这个线程上的示例,但我相信这是C)
- 有没有其他选择我没想到?
- 我应该完全使用另一个 GUI 库吗?
谢谢。 本杰明:)
编辑: GtkEventBox 的前调整大小握把手柄问题似乎是 Gtk+ 错误。
Context
I'm working on an application with PyGtk that would more or less work as a panel, much like gnome-panel. Ideally, on the panel i am making, i want a button without border (NB: i am in the process of learning GUI coding with PyGtk).
Problem
I have understood from another thread as well as documentation that the gtk_button_set_relief(GtkButton, GTK_RELIEF_NONE)
cancels the button relief on GTK_STATE_NORMAL
only. Hence when hovering the button, relief appears again (side note: this is frankly annoying that such options are partially worked out really).
An alternative to the problem is to use a GtkLabel and make a GtkEventBox its parent and make it function as a button. There is an issue however: while a GtkButton font has a relief, the GtkLabel's has none. See screenshot here below:
From left to right: GtkLabel without font relief and GtkButton with font relief
Questions
Now perhaps you can help me to solve the above with your suggestions. What i am thinking of is:
- What is causing the relief of the font on these GtkWidgets: the theme or the Gtk base itself?
- How can i add relief to the font of the label? OR
- How can i remove the border relief of the button in all states?
- More generally, how can can i create my own widget (subclassing either GtkLabel or GtkButton) using PyGtk? (I have seen an example on this thread, but that's C i believe)
- Is there any alternative i haven't thought of?
- Should i use another GUI library altogether?
Thanks.
Benjamin :)
Edit: the former resize-grip handle issue with GtkEventBox appears to be the effect of a Gtk+ bug.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论