- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用自定义容器,我需要在其中重新排序小部件,但没有方法可以做到。所以我尝试删除所有小部件并按顺序再次添加它们。
问题是这不能很好地工作,再次添加它们后我看不到小部件,我想发生的事情是当我删除小部件时,它们变得无法实现。
有没有办法删除小部件并在以后重用它?
最佳答案
pygtk docs提供一点见解。
Note that the container will own a reference to widget, and that this may be the last reference held; so removing a widget from its container can cause that widget to be destroyed. If you want to use widget again, you should add a reference to it.
#!/usr/bin/env python
# example helloworld2.py
import pygtk
pygtk.require('2.0')
import gtk
class HelloWorld2:
# Our new improved callback. The data passed to this method
# is printed to stdout.
def callback_remove(self, widget, data):
self.box1.remove(self.button1);
def callback_add(self, widget, data):
self.box1.pack_start(self.button1, True, True, 0)
# another callback
def delete_event(self, widget, event, data=None):
gtk.main_quit()
return False
def __init__(self):
# Create a new window
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
# This is a new call, which just sets the title of our
# new window to "Hello Buttons!"
self.window.set_title("Hello Buttons!")
# Here we just set a handler for delete_event that immediately
# exits GTK.
self.window.connect("delete_event", self.delete_event)
# Sets the border width of the window.
self.window.set_border_width(10)
# We create a box to pack widgets into. This is described in detail
# in the "packing" section. The box is not really visible, it
# is just used as a tool to arrange widgets.
self.box1 = gtk.HBox(False, 0)
# Put the box into the main window.
self.window.add(self.box1)
# Creates a new button with the label "Button 1".
self.button1 = gtk.Button("Button 1")
# Now when the button is clicked, we call the "callback" method
# with a pointer to "button 1" as its argument
self.button1.connect("clicked", self.callback_remove, "button 1")
# Instead of add(), we pack this button into the invisible
# box, which has been packed into the window.
self.box1.pack_start(self.button1, True, True, 0)
# Always remember this step, this tells GTK that our preparation for
# this button is complete, and it can now be displayed.
self.button1.show()
# Do these same steps again to create a second button
self.button2 = gtk.Button("Button 2")
# Call the same callback method with a different argument,
# passing a pointer to "button 2" instead.
self.button2.connect("clicked", self.callback_add, "button 2")
self.box1.pack_start(self.button2, True, True, 0)
# The order in which we show the buttons is not really important, but I
# recommend showing the window last, so it all pops up at once.
self.button2.show()
self.box1.show()
self.window.show()
def main():
gtk.main()
if __name__ == "__main__":
hello = HelloWorld2()
main()
关于gtk - Pygtk:从容器中删除小部件并稍后重用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5614840/
我只想在给定 X 和 Y 的屏幕上放置一个图像。 最佳答案 使用 GtkFixed 容器到 GtkWindow 内的绝对位置 如果要绝对定位顶层窗口本身,请使用 gtk_window_move()。
如何将菜单栏粘贴在窗口顶部? 我正在使用 Gtk.VBox我添加了 Gtk.MenuBar里面。我正在使用 Gtk3 代码来源:http://pastebin.com/YHZQLzZg 谢谢 最佳答案
当有人建议我考虑使用 Twisted 时,我正在努力让一些异步事件在 PyGTK 下工作。 我知道 Twisted 最初是一个网络框架,但它可以用于其他事情。但是,我见过的每个示例都涉及大量基于网络的
操作系统:Ubuntu 15.10 我使用默认的 Python 解释器导入 pygtk 没有问题。但是我无法使用 Anaconda 解释器这样做。 Python 2.7.11 |Anaconda 2.
我正在设计一个 pygtk GUI 并想在其中嵌入一个外部应用程序。 有人知道如何做到这一点吗? 最佳答案 这取决于您要嵌入的应用程序,但如果另一个应用程序是 GTK 应用程序(或支持 XEMBED
我有一个 gtk.Notebook,我想从当前的 gtk.noteBook 选项卡中获取标签文本。我做到了: text = self.get_tab_label(self.get_nth_page(s
我正在使用自定义容器,我需要在其中重新排序小部件,但没有方法可以做到。所以我尝试删除所有小部件并按顺序再次添加它们。 问题是这不能很好地工作,再次添加它们后我看不到小部件,我想发生的事情是当我删除小部
我希望窗口透明,但标签的不透明度为 100%。我怎样才能做到这一点?顺便说一句:当我升级到 Ubuntu 12.04 的统一界面时,我注意到 window.set_opacity 不像在 GNOME
是否可以通过PyGTK取消选中组中的所有单选按钮?启动时没有选中任何单选按钮,因此我认为必须有一种方法可以将它们全部恢复为未选中状态。 最佳答案 应该没有。从本质上讲,单选按钮组是“选择多个”控件类型
我有一个 gtk.Entry() 对象,我想手动发出 focus-out-event。我需要传递给 emit 方法的第二个参数是什么? In [10]: d.emit('focus-out-event
我到处找,但似乎找不到改变边框颜色的方法。 例如我需要一个这样的按钮: gb = gtk.Button("Hi") gb.set_border_width(50) 现在我希望将边框着色为红色(这是一个
如果我在 pyGTK 中有一个组合框,并且想要设置一个字符串列表,然后单击其中一个激活命令,我该怎么做? 目前我有: self.combo_key = gtk.Combo() self
我想将一个窗口嵌入到另一个窗口中,有点像这样: 编辑:屏幕截图已删除,抱歉! 那是一个 wingdows 程序,不是用 GTK很难做的。 我尝试使用插头和 socket ,但显然我无法将 gtk.Wi
我正在尝试使用 PyGTK 创建一个窗口,该窗口已根据字符串数组动态创建单选按钮(一个看起来像 ["option 1", "option 2", "option 3"] 的数组将创建3 个单选按钮,带
如何创建将一个像素值设置为透明的 PyGTK 像素图?我知道它与创建深度为 1 的像素图并将其设置为 mask 有关,但我发现它要么不执行任何操作,要么在绘制时完全删除我的像素图。目前,我制作了一个像
我在更新自定义 GTK+ 小部件时遇到问题:VUWidget。Generator 类正在更新类Section 的level 属性,该类的子类具有VUWidget 属性。 Generator 类正确更新
我正在尝试学习 pygtk,并且正在为 axel 开发 GUI。 我的问题是我需要在主窗口中显示下载进度。 我使用了两个线程,一个用于下载,第二个用于进度计算。下载是由axel完成的但我的第二个线程直
我想设置窗口的大小,然后能够在程序运行时调整它的大小。我已经能够使窗口变大,但无法将其调整为小于原始设置大小。对于不同的项目,我还想知道如何制作它,使窗口根本无法调整大小。 最佳答案 对于第一个问题:
我正在做一个项目,我想从 MySQL 数据库加载数据并将其显示在 PyGTK 应用程序中以便于查看和配置。我的目标是让程序根据数据库内容自动添加新行,即。如果我向数据库添加一个新命令,我不需要对我的
我按照 this post. 中的说明进行操作一切都安装成功。但是,当我运行 python 时,我无法导入 pygtk。具体来说,它是这样说的: >>> 导入 pygtk\n “导入错误:没有名为 p
我是一名优秀的程序员,十分优秀!