如何更改笔记本页面上标签的默认宽度?
.configure(width=30)
我需要将默认标签宽度设置得更宽,以适应标签名称。我无法访问tab宽度属性。我尝试使用 class User(object):
def __init__(self, userid):
self.userid = userid
self.user = api.get_user(self.userid)
的最后一行,这对标签没有影响!
答案 0 :(得分:2)
好的,我已经得到了解决方案,虽然很难看。它确实可以操纵标签宽度。
class TextBookGUI:
# class constructor
# populates each note book page
def __init__(self, master):
#place hash tables here
"""
Create 5 pages on using Pmw notebook widget.
Documenation for notebook:
http://pmw.sourceforge.net/doc/NoteBook.html
"""
Pmw.initialise(master)
self.nb = Pmw.NoteBook(master,borderwidth=2,arrownavigation=True,tabpos='n')
self.HomeTab = self.nb.add("Welcome")
self.nb.tab('Welcome').focus_set()
self.StudentTab = self.nb.add("Students")
self.BookTab = self.nb.add("Books")
self.LoanTab = self.nb.add("Loans")
self.HelpTab = self.nb.add("Help")
*self.nb._pageAttrs['Welcome']['tabreqwidth'] = 200
self.nb._pageAttrs["Welcome"]['tabreqheight'] = 100
self.nb._pageAttrs["Students"]['tabreqwidth'] = 200
self.nb._pageAttrs["Students"]['tabreqheight'] = 100
self.nb._pageAttrs["Books"]['tabreqwidth'] = 200
self.nb._pageAttrs["Books"]['tabreqheight'] = 100
self.nb._pageAttrs['Loans']['tabreqwidth'] = 200
self.nb._pageAttrs["Loans"]['tabreqheight'] = 100
self.nb._pageAttrs['Help']['tabreqwidth'] = 200
self.nb._pageAttrs["Help"]['tabreqheight'] = 100*
#format the house style of tabs: yellow bg and blue text
self.nb.component('Welcome-tab').configure(font= ('Helviticva',20 ,'bold italic'),
fg= "yellow",bg="blue",wraplength=150)
self.nb.component('Students-tab').configure(font= ('Helviticva',20 ,'bold italic'),
fg= "yellow",bg="blue",wraplength=150)
self.nb.component('Books-tab').configure(font= ('Helviticva',20 ,'bold italic'),
fg= "yellow",bg="blue",wraplength=150)
self.nb.component('Loans-tab').configure(font= ('Helviticva',20 ,'bold italic'),
fg= "yellow",bg="blue",wraplength=150)
self.nb.component('Help-tab').configure(font= ('Helviticva',20,'bold italic'),
fg= "yellow",bg="blue",wraplength=150)
self.nb.pack(fill = 'both', expand = 1, padx = 10, pady = 10)
self.nb.setnaturalsize()
搜索网后,有人建议使用iterrkeys()迭代页面属性字典。这不起作用,所以我把代码从循环中取出并使用了pageAttrs字典中的属性,这些属性是[reqtabwidth],[reqtabheight]。它工作正常!代码周围有星星,并被添加到上面的代码中。你可以看到文本大小现在是20,它显示在一个漂亮的大标签中。这是一个简单的任务浪费了两个晚上。
答案 1 :(得分:-1)
令人讨厌的是,虽然您已经在窗口小部件中正确设置了标签宽度(我可以使用cget('width')
看到它),但是megawidget看起来并不符合宽度设置。
但是,它会调整每个标签的大小以确保其足够宽以正确显示文本。如果您没有看到每个标签的全文,可能是因为根窗口的大小不够宽,无法显示整个宽度。尝试添加强制尺寸(例如root.geometry('500x200')
)并查看是否有帮助。
我希望能为你找到更好的答案,但这是我能做的最好的事情。祝你好运!