我正在创建一个应该有一个主要的 textview 的程序(参见textview)用户应该写的和一个控制台,程序应该返回错误消息。所以控制台应该比文本编辑器更小。
我还在窗口顶部有一个工具栏,允许用户使用我的程序工具来编辑文本。
为此,我创建了一个全局框,我使用pack_start
属性(self.global_box.pack_start(self.console))
)
工具栏已正确放置(我按了一个按钮,因此它可以有一个长度,并且它可以工作),但其余的空间是均匀由控制台和textview采取,而我我希望控制台只占用我窗户的一小部分空间 我怎么能强制我的控制台只占用我的窗口的20个像素?或者仅为textview设置窗口的百分比?
非常感谢 我
PS:here is a screenshot of the window, so you can have an idea of what I'm talking about.
编辑: 感谢回复,问题看起来是一样的,但解决方案对我没有用 这是代码:
class Window(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self,title='Text editor')
self.maximize()
self.global_box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
self.add(self.global_box)
self.create_textview()
self.create_console()
def create_textview(self):
self.scrolled_window = Gtk.ScrolledWindow()
self.scrolled_window.set_hexpand(True)
self.scrolled_window.set_vexpand(True)
self.global_box.pack_start(self.scrolled_window, True, True, 0)
self.textview = Gtk.TextView()
self.textbuffer = self.textview.get_buffer()
self.scrolled_window.add(self.textview)
self.tag_found = self.textbuffer.create_tag('found',background='yellow')
def create_console(self):
self.console_scrolled_window = Gtk.ScrolledWindow()
self.console_scrolled_window.set_hexpand(True)
self.console_scrolled_window.set_vexpand(True)
self.global_box.pack_start(self.console_scrolled_window, False, False, 0) #HERE /!\ the first one is expand argument, second one is irrelevant (the fill one)
self.console = Gtk.TextView()
self.console_scrolled_window.add(self.console)
self.console.set_editable(False)
问题在于此处有评论。
答案 0 :(得分:1)
您将set_hexpand
和set_vexpand
设置为True
,这意味着它们会展开。删除它们,它将正常工作。