Я создаю программу, которая должна иметь основное текстовое представление (см. textview), где пользователь должен писать, и консоль, где программа должна возвращать сообщения об ошибках. Таким образом, консоль должна быть меньше, чем текстовый редактор.
У меня также есть панель инструментов в верхней части окна, которая позволяет пользователю получить доступ к инструментам моей программы для редактирования текста.
Для этого , я создал глобальное поле, в которое я поместил панель инструментов, текстовое представление и консоль (которая также является объектом текстового представления), используя атрибут pack_start
(self.global_box.pack_start(self.console))
)
Панель инструментов размещена правильно (я поместил кнопку, чтобы она имела длину, и она работает), но остальная часть пространства однородно занята консолью и текстовым представлением, тогда как мне бы хотелось, чтобы console занимать лишь небольшую часть моего окна.
Как я могу заставить свою консоль занимать, например, только 20 пикселей моего окна? или установить процент моего окна только для текстового просмотра?
большое спасибо мне
PS: вот скриншот окна, чтобы вы могли понять, о чем я говорю .
РЕДАКТИРОВАТЬ: спасибо за ответ, вопрос выглядит так же, но решение не работает для меня.
Вот код:
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)
Проблема в строке, где есть комментарий ЗДЕСЬ.
expand
. Параметрexpand
определенно вам нужен. - person oldtechaa   schedule 13.10.2016