我在PyGTK中创建了一个用于文本输入的1行框:
entry = gtk.Entry(max=0)
entry.set_has_frame(True)
entry.set_size_request(20, 30)
entry.connect("activate", self.enter_callback, entry)
entry.show()
我需要水平居中文本。我尝试了很多选项,例如set_justify
,set_alignment
等,但似乎没有选项与Entry()
一起使用。
如何使文本居中,以便当用户在那里输入时,他们所写的任何文字总是以中心显示?
答案 0 :(得分:2)
在某些GTK语言绑定中,文本小部件内的垂直居中设置为set_alignment(yalign=0.5)
,其中数字表示文本上方“保留”的空白比例,其余部分位于下方(我可能在上面和以下颠倒了)。因此,set_alignment(yalign=0.25)
会将文本的1/4放在小部件的顶部以下,而0.5
是“中途”(这或多或少等同于“中心”)。
在您的情况下,entry.set_alignment(xalign = 0.5)
会将文本居中放置在窗口小部件的中间位置并对齐,以使文本每一侧的比例为“0.5
”(或一半)剩下的白色空间。它不像"center"
那样记录良好或简单,但它对文本的位置提供了更细粒度的控制。