为什么不能添加多个自定义按钮?
Why can't add more than one custom button?
我尝试在 Gtk.Box 中添加 3 个按钮,这个盒子是在我的 Window 设计中创建的(使用 Glade)。看代码;
# Button for IPCamera (MJpeg stream)
self.buttonIPCam1 = Gtk.Button()
self.buttonIPCam1.add(self.imageIPCam)
self.buttonIPCam1.connect("clicked", self.triggerIPCam1)
self.buttonIPCam1.props.relief = Gtk.ReliefStyle.NONE
self.placeButtonCameras.add(self.buttonIPCam1)
self.buttonIPCam2 = Gtk.Button()
self.buttonIPCam2.add(self.imageIPCam)
self.buttonIPCam2.connect("clicked", self.triggerIPCam2)
self.buttonIPCam2.props.relief = Gtk.ReliefStyle.NONE
self.placeButtonCameras.add(self.buttonIPCam2)
self.buttonIPCam3 = Gtk.Button()
self.buttonIPCam3.add(self.imageIPCam)
self.buttonIPCam3.connect("clicked", self.triggerIPCam3)
self.buttonIPCam3.props.relief = Gtk.ReliefStyle.NONE
self.placeButtonCameras.add(self.buttonIPCam3)
self.placeButtonCameras.show_all()
只显示一个带图标的按钮并收到此错误消息;
(app_pre.py:3068): Gtk-WARNING **: 13:30:27.422: Attempting to add a widget with type GtkImage to a container of type GtkButton, but the widget is already inside a container of type GtkButton, please remove the widget from its existing container first.
我是初学者,不知道为什么我不能一次为这个名为“Box”的容器添加多个带图像的按钮; self.placeButtonCameras.
将来,用于从配置中添加按钮(可能有 0 到 5 个摄像头)
问题不在于您添加了多个按钮,而是您试图在多个 GtkButton 中重新使用 GtkImage。与其尝试重复使用小部件,不如每次都创建一个新小部件。
换句话说,您当前的代码是这样做的:
// somewhere earlier: self.imageIPCam = new Gtk.Image()
self.buttonIPCam1.add(self.imageIPCam)
// ...
self.buttonIPCam2.add(self.imageIPCam)
// ...
self.buttonIPCam3.add(self.imageIPCam)
要修复它,您可以这样做:
imageIPCam1 = new Gtk.Image()
self.buttonIPCam1.add(self.imageIPCam1)
// ...
imageIPCam2 = new Gtk.Image()
self.buttonIPCam2.add(self.imageIPCam2)
// ...
imageIPCam3 = new Gtk.Image()
self.buttonIPCam3.add(self.imageIPCam3)
我尝试在 Gtk.Box 中添加 3 个按钮,这个盒子是在我的 Window 设计中创建的(使用 Glade)。看代码;
# Button for IPCamera (MJpeg stream)
self.buttonIPCam1 = Gtk.Button()
self.buttonIPCam1.add(self.imageIPCam)
self.buttonIPCam1.connect("clicked", self.triggerIPCam1)
self.buttonIPCam1.props.relief = Gtk.ReliefStyle.NONE
self.placeButtonCameras.add(self.buttonIPCam1)
self.buttonIPCam2 = Gtk.Button()
self.buttonIPCam2.add(self.imageIPCam)
self.buttonIPCam2.connect("clicked", self.triggerIPCam2)
self.buttonIPCam2.props.relief = Gtk.ReliefStyle.NONE
self.placeButtonCameras.add(self.buttonIPCam2)
self.buttonIPCam3 = Gtk.Button()
self.buttonIPCam3.add(self.imageIPCam)
self.buttonIPCam3.connect("clicked", self.triggerIPCam3)
self.buttonIPCam3.props.relief = Gtk.ReliefStyle.NONE
self.placeButtonCameras.add(self.buttonIPCam3)
self.placeButtonCameras.show_all()
只显示一个带图标的按钮并收到此错误消息;
(app_pre.py:3068): Gtk-WARNING **: 13:30:27.422: Attempting to add a widget with type GtkImage to a container of type GtkButton, but the widget is already inside a container of type GtkButton, please remove the widget from its existing container first.
我是初学者,不知道为什么我不能一次为这个名为“Box”的容器添加多个带图像的按钮; self.placeButtonCameras.
将来,用于从配置中添加按钮(可能有 0 到 5 个摄像头)
问题不在于您添加了多个按钮,而是您试图在多个 GtkButton 中重新使用 GtkImage。与其尝试重复使用小部件,不如每次都创建一个新小部件。
换句话说,您当前的代码是这样做的:
// somewhere earlier: self.imageIPCam = new Gtk.Image()
self.buttonIPCam1.add(self.imageIPCam)
// ...
self.buttonIPCam2.add(self.imageIPCam)
// ...
self.buttonIPCam3.add(self.imageIPCam)
要修复它,您可以这样做:
imageIPCam1 = new Gtk.Image()
self.buttonIPCam1.add(self.imageIPCam1)
// ...
imageIPCam2 = new Gtk.Image()
self.buttonIPCam2.add(self.imageIPCam2)
// ...
imageIPCam3 = new Gtk.Image()
self.buttonIPCam3.add(self.imageIPCam3)