LINUX.ORG.RU

История изменений

Исправление Novator, (текущая версия) :

как теперь имея ссылку на element, задать ему размер и координаты позиции?

У Gtk своеобразная идеалогия по размещению виджетов на форме, отличная от WinAPI. Например, в Delphi мы задаем координату верхнего левого угла, ширину и высоту, а остальное пространство формы остается пустым. В Gtk все виджеты расплываются в ячейках так называемых "контейнеров".

Контейнеры могут быть одновиджетные, вертикальные (VBox), горизонтальные (HBox) и другие. Рекомендую ограничиваться VBox и HBox. Контейнеры могут (и должны) вкладываться один в другой. Хитрость программирования Gtk заключается в трёх вещах:
1) создать необходимую комбинацию контейнеров
2) определить свойства ячеек контейнера
3) при необходимости жёстко задать размер виджета

Ячейка может быть «резиновой», или с жесткой шириной/высотой. У ячейки может быть свой бордюр (пустое поле). Свойства ячейки задаются в момент добавления виджета в контейнер:

window = Gtk::Window.new('Cool programm')
hbox = Gtk::HBox.new
label = Gtk::Label.new('Фамилия')
entry = Gtk::Entry.new
entry.text = 'Иванов'
hbox.pack_start(label, false, false, 2)
hbox.pack_start(entry, false, false, 2)
window.add(hbox)
window.set_default_size(640, 420)
window.show_all
Очередной виджет добавляется методом pack_start(child, expand = true, fill = true, padding = 0).
А Window - это одновиджетный контейнер, для него достаточно метода add(child, child_properties = nil). В принципе add() работает и для многовиджетных, но там «резиновость» и бордюр задается каким-то по умолчанию.

У виджетов в плане размеров обычно можно менять только рекомендательную ширину и высоту методом:

entry.set_size_request(300,50)
При этом она будет «отрабатывать», когда оба свойства, и expand (ячейка расплывается по форме), и fill (виджет заполняет всю ячейку) заданы в «false».

Я всегда ищу инфу по функциям таким запросом в гугле например:
«ruby gtk entry»

Исправление Novator, :

как теперь имея ссылку на element, задать ему размер и координаты позиции?

У Gtk своеобразная идеалогия по размещению виджетов на форме, отличная от WinAPI. Например, в Delphi мы задаем координату верхнего левого угла, ширину и высоту, а остальное пространство формы остается пустым. В Gtk все виджеты расплываются в ячейках так называемых "контейнеров".

Контейнеры могут быть одновиджетные, вертикальные (VBox), горизонтальные (HBox) и другие. Рекомендую ограничиваться VBox и HBox. Контейнеры могут (и должны) вкладываться один в другой. Хитрость программирования Gtk заключается в трёх вещах:
1) создать необходимую комбинацию контейнеров
2) определить свойства ячеек контейнера 3) при необходимости жёстко задать размер виджета

Ячейка может быть «резиновой», или с жесткой шириной/высотой. У ячейки может быть свой бордюр (пустое поле). Свойства ячейки задаются в момент добавления виджета в контейнер:

window = Gtk::Window.new('Cool programm')
hbox = Gtk::HBox.new
label = Gtk::Label.new('Фамилия')
entry = Gtk::Entry.new
entry.text = 'Иванов'
hbox.pack_start(label, false, false, 2)
hbox.pack_start(entry, false, false, 2)
window.add(hbox)
window.set_default_size(640, 420)
window.show_all
Очередной виджет добавляется методом pack_start(child, expand = true, fill = true, padding = 0).
А Window - это одновиджетный контейнер, для него достаточно метода add(child, child_properties = nil). В принципе add() работает и для многовиджетных, но там «резиновость» и бордюр задается каким-то по умолчанию.

У виджетов в плане размеров обычно можно менять только рекомендательную ширину и высоту методом:

entry.set_size_request(300,50)
При этом она будет «отрабатывать», когда оба свойства, и expand (ячейка расплывается по форме), и fill (виджет заполняет всю ячейку) заданы в «false».

Я всегда ищу инфу по функциям таким запросом в гугле например:
«ruby gtk entry»

Исправление Novator, :

как теперь имея ссылку на element, задать ему размер и координаты позиции?

У Gtk своеобразная идеалогия по размещению виджетов на форме, отличная от WinAPI. Если в Delphi мы задаем координату верхнего левого угла, ширину и высоту, то в Gtk все виджеты размещаются в так называемых "контейнерах".

Контейнеры могут быть одновиджетные, вертикальные (VBox), горизонтальные (HBox) и другие. Рекомендую ограничиваться VBox и HBox. Контейнеры могут (и должны) вкладываться один в другой. Хитрость программирования Gtk заключается в двух вещах:
1) создать необходимую комбинацию контейнеров
2) задать свойства ячейки контейнера.

Ячейка может быть «резиновой», или с жесткой шириной/высотой. У ячейки может быть свой бордюр (пустое поле). Свойства ячейки задаются в момент добавления виджета в контейнер:

window = Gtk::Window.new('Cool programm')
hbox = Gtk::HBox.new
label = Gtk::Label.new('Фамилия')
entry = Gtk::Entry.new
entry.text = 'Иванов'
hbox.pack_start(label, false, false, 2)
hbox.pack_start(entry, false, false, 2)
window.add(hbox)
window.set_default_size(640, 420)
window.show_all
Очередной виджет добавляется методом pack_start(child, expand = true, fill = true, padding = 0).
А Window - это одновиджетный контейнер, для него достаточно метода add(child, child_properties = nil). В принципе add() работает и для многовиджетных, но там «резиновость» и бордюр задается каким-то по умолчанию.

У виджетов в плане размеров обычно можно менять только рекомендательную ширину и высоту методом:

entry.set_size_request(300,50)
При этом она будет «отрабатывать», когда оба свойства, и expand (ячейка расплывается по форме), и fill (виджет заполняет всю ячейку) заданы в «false».

Я всегда ищу инфу по функциям таким запросом в гугле например:
«ruby gtk entry»

Исходная версия Novator, :

как теперь имея ссылку на element, задать ему размер и координаты позиции?

У Gtk своеобразная идеалогия по размещению виджетов на форме, отличная от WinAPI. Если в Delphi мы задаем координату верхнего левого угла, ширину и высоту, то в Gtk всё виджеты размещаются в так называемых "контейнерах".

Контейнеры могут быть одновиджетные, вертикальные (VBox) и горизонтальные (HBox), другие. Рекомендую ограничиваться VBox и HBox. Контейнеры могут (и должны) вкладываться один в другой. Хитрость программирования Gtk заключается в двух вещах:
1) создать необходимую комбинацию контейнеров
2) задать свойства ячейки контейнера.

Ячейка может быть «резиновой», или с жесткой шириной/высотой. У ячейки может быть свой бордюр (пустое поле). Свойства ячейки задаются в момент добавления виджета в контейнер:

window = Gtk::Window.new('Cool programm')
hbox = Gtk::HBox.new
label = Gtk::Label.new('Фамилия')
entry = Gtk::Entry.new
entry.text = 'Иванов'
hbox.pack_start(label, false, false, 2)
hbox.pack_start(entry, false, false, 2)
window.add(hbox)
window.set_default_size(640, 420)
window.show_all
Очередной виджет добавляется методом pack_start(child, expand = true, fill = true, padding = 0).
А Window - это одновиджетный контейнер, для него достаточно метода add(child, child_properties = nil). В принципе add() работает и для многовиджетных, но там «резиновость» и бордюр задается каким-то по умолчанию.

У виджетов в плане размеров обычно можно менять только рекомендательную ширину и высоту методом:

entry.set_size_request(300,50)
При этом она будет «отрабатывать», когда оба свойства, и expand (ячейка расплывается по форме), и fill (виджет заполняет всю ячейку) заданы в «false».

Я всегда ищу инфу по функциям таким запросом в гугле например:
«ruby gtk entry»