2012-03-27 89 views
1

我想要一個左對齊的標籤,其中包含一些粗體文本,但使用下面的代碼(不返回任何錯誤)未設置對齊方式...已任何人都有線索? (python2.7,gtk2.24)標籤文本使用pango標記時無法設置標籤對齊

label=gtk.Label("<b>"+text+"</b>") 
label.set_use_markup(True) 
label.set_justify(gtk.JUSTIFY_LEFT) 

在此先感謝!

回答

4

PyGTK documentation of gtk.Label.set_justify() says

如果你想設置的標籤的對齊方式爲一體,使用gtk.Misc.set_alignment()方法來代替。 set_justify()對僅包含一行的標籤沒有影響。

以下鏈接the gtk.Misc.set_alignment() documentation顯示如何正確地做你的要求(如果我理解正確你的問題):

import gtk 

w = gtk.Window() 
w.connect('destroy', gtk.main_quit) 
text = 'whatever' 
label=gtk.Label("<b>"+text+"</b>") 
label.set_use_markup(True) 
label.set_alignment(0, 0.5) 
w.add(label) 

w.show_all() 

gtk.main() 
+0

'.set_alignment(0,0.5)' - 不錯 – YumYumYum 2013-11-11 17:11:51

+0

很高興在信息叢林中找到這樣一個簡單,清晰和完美的工作答案:) – 2015-06-26 17:53:09

+1

問題是PyGTK,但如果任何人現在發現這一點,並正在使用(更新)** PyGObject **綁定也可以在標籤上使用'set_xalign()'。參考:http://lazka.github.io/pgi-docs/#Gtk-3.0/classes/Label.html#Gtk.Label.set_xalign – sunyata 2016-10-13 00:05:22

0

我不是GTK開發者,但我做了一些快速搜索。我想知道gtk.JUSTIFY_LEFT應該是GTK_JUSTIFY_LEFT

參考:http://developer.gnome.org/gtk/2.24/gtk-Standard-Enumerations.html#GtkJustification

typedef enum { 
    GTK_JUSTIFY_LEFT, 
    GTK_JUSTIFY_RIGHT, 
    GTK_JUSTIFY_CENTER, 
    GTK_JUSTIFY_FILL 
} GtkJustification; 
+0

您鏈接到C手動,但問題是關於Python的綁定。 'gtk.JUSTIFY_LEFT'是正確的(語法,至少......它在問題中使用錯誤了)。 – dumbmatter 2012-03-28 02:27:11