Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用pygtk设置窗口中图像的位置_Python_Image_Pygtk_Position - Fatal编程技术网

Python 使用pygtk设置窗口中图像的位置

Python 使用pygtk设置窗口中图像的位置,python,image,pygtk,position,Python,Image,Pygtk,Position,是否可以使用pygtk设置图像的位置 import pygtk import gtk class Example: self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) self.image = gtk.Image() self.image.set_from_file("example.png") # Position goes here (it should, shouldn't it?) self.window.

是否可以使用pygtk设置图像的位置

import pygtk
import gtk

class Example:
    self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
    self.image = gtk.Image()
    self.image.set_from_file("example.png")
    # Position goes here (it should, shouldn't it?)
    self.window.add(self.image)
    self.image.show()
    self.window.fullscreen()
    self.window.show_all()

GTK基于相对对齐和填充而不是绝对像素位置来布局小部件。gtk.Image的实例具有属性xalign、xpad、yalign、ypad,如果父对象的空间超过需要,则可以使用这些属性定位小部件

比如说

self.image.xalign = 0.5
self.image.yalign = 0.5
将图像置于窗口的中心

self.image.xalign = 0
self.image.yalign = 0
将图像放置在左上角

self.image.xalign = 1
self.image.yalign = 1
将图像放置在左下角


如果您真的想处理固定位置,那么您需要使用gtk.fixed小部件。它允许在通过方法
put(child,x,y)
添加子对象时指定显式位置。不过,请注意文档中的警告,这是一个坏主意,会导致UI损坏。

GTK基于相对对齐和填充而不是绝对像素位置来布局小部件。gtk.Image的实例具有属性xalign、xpad、yalign、ypad,如果父对象的空间超过需要,则可以使用这些属性定位小部件

比如说

self.image.xalign = 0.5
self.image.yalign = 0.5
将图像置于窗口的中心

self.image.xalign = 0
self.image.yalign = 0
将图像放置在左上角

self.image.xalign = 1
self.image.yalign = 1
将图像放置在左下角


如果您真的想处理固定位置,那么您需要使用gtk.fixed小部件。它允许在通过方法
put(child,x,y)
添加子对象时指定显式位置。不过,请注意文档中的警告,这是一个坏主意,会导致UI损坏。

我明白了。假设我想将一幅图像居中,并在居中图像上方放置一幅约10像素的图像。它会与xalign、xpad等一起工作吗。?我需要做类似于下面的事情吗?self.image.xalign=0.5 self.image.yalign=0.55感谢您花时间提供帮助。@bakerblue,gtk.Window只能有一个子小部件。如果您想拥有多个图像,则需要在小部件层次结构中放置另一个容器。例如,gtk.VBox垂直堆叠其子窗口小部件。您应该阅读pygtk教程的打包小部件部分。也许您应该开始使用cairo。我用它来做你想做的事情,也就是说,把一张图片放在另一张上面。为此,首先创建一个源(顶部图像)并将其粘贴到曲面(现有图像)上。另一种可能是使用Python图像库编写一个“主图像”,并将这个图像添加到容器中。假设我想将一幅图像居中,并在居中图像上方放置一幅约10像素的图像。它会与xalign、xpad等一起工作吗。?我需要做类似于下面的事情吗?self.image.xalign=0.5 self.image.yalign=0.55感谢您花时间提供帮助。@bakerblue,gtk.Window只能有一个子小部件。如果您想拥有多个图像,则需要在小部件层次结构中放置另一个容器。例如,gtk.VBox垂直堆叠其子窗口小部件。您应该阅读pygtk教程的打包小部件部分。也许您应该开始使用cairo。我用它来做你想做的事情,也就是说,把一张图片放在另一张上面。为此,首先创建一个源(顶部图像)并将其粘贴到曲面(现有图像)上。另一种可能是使用Python图像库编写一个“主图像”,并将这个图像添加到容器中。