Использование .add () для одного и того же виджета более одного раза

Если вы хотите создать резервную копию списка установленных пакетов, вот вам какой-то скрипт, который упростит вам работу, сначала создав package.list, для этого есть скрипт python. create_package_list.py.Этот сценарий создаст файл packagelist.txt, в котором будут установлены все пакеты, которые вы установили в настоящее время. Далее есть два сценария оболочки, autoaptitude.sh и autoaptget.sh. Сохраните все эти сценарии и package.list в резервном копировании в Ubuntu-one, Dropbox и т. Д. И когда вам нужно, чтобы все ранее установленные пакеты запускали сценарии, и ваша работа будет выполнена.

1
задан 24 June 2012 в 02:03

7 ответов

Gtk имеет различные типы контейнеров. Прямо сейчас вы работаете с контейнером GtkBin , который является типом контейнера, который поддерживает только одного ребенка. Вам нужен контейнер, который поддерживает более одного ребенка. Для этого просто создайте контейнер по вашему выбору и добавьте его в окно просмотра (например, обычный виджет). Здесь есть несколько вариантов, и все они перечислены в документации Gtk на контейнерах .

. Один из способов сделать это с помощью GtkBox :

self.ui.labels = []
for titles in entries:
    label = Gtk.Label()
    self.ui.labels.append(label)         
    self.ui.viewport1.add(self.ui.labels[-1])
self.ui.paned1.show_all()

# First, we need to create a box to hold all our widgets
box = Gtk.Box()
box.set_orientation(Gtk.Orientation.VERTICAL)

# Now add our widgets to the box, one by one, from the bottom
box.add(Gtk.Label())
box.add(Gtk.Button())
box.add(Gtk.Entry())

# We need to add the box to the viewport
self.ui.viewport.add(box)

box.show_all()

Как только вы его повесите, вы можете играть с некоторыми другими функциями. Вместо того, чтобы вслепую добавлять виджеты в окно, функции pack_start и pack_end для GtkBox дают вам контроль над каждым добавляемым виджемом. Вы можете установить, предоставляется ли ребенку все доступное пространство и сколько места для его обхода. В некоторых случаях вас может заинтересовать GtkGrid , который является более мощным контейнером, который поддерживает несколько строк и столбцов.

1
ответ дан 25 July 2018 в 18:21

Gtk имеет различные типы контейнеров. Прямо сейчас вы работаете с контейнером GtkBin , который является типом контейнера, который поддерживает только одного ребенка. Вам нужен контейнер, который поддерживает более одного ребенка. Для этого просто создайте контейнер по вашему выбору и добавьте его в окно просмотра (например, обычный виджет). Здесь есть несколько вариантов, и все они перечислены в документации Gtk на контейнерах .

. Один из способов сделать это с помощью GtkBox :

self.ui.labels = []
for titles in entries:
    label = Gtk.Label()
    self.ui.labels.append(label)         
    self.ui.viewport1.add(self.ui.labels[-1])
self.ui.paned1.show_all()

# First, we need to create a box to hold all our widgets
box = Gtk.Box()
box.set_orientation(Gtk.Orientation.VERTICAL)

# Now add our widgets to the box, one by one, from the bottom
box.add(Gtk.Label())
box.add(Gtk.Button())
box.add(Gtk.Entry())

# We need to add the box to the viewport
self.ui.viewport.add(box)

box.show_all()

Как только вы его повесите, вы можете играть с некоторыми другими функциями. Вместо того, чтобы вслепую добавлять виджеты в окно, функции pack_start и pack_end для GtkBox дают вам контроль над каждым добавляемым виджемом. Вы можете установить, предоставляется ли ребенку все доступное пространство и сколько места для его обхода. В некоторых случаях вас может заинтересовать GtkGrid , который является более мощным контейнером, который поддерживает несколько строк и столбцов.

1
ответ дан 2 August 2018 в 00:33

Gtk имеет различные типы контейнеров. Прямо сейчас вы работаете с контейнером GtkBin , который является типом контейнера, который поддерживает только одного ребенка. Вам нужен контейнер, который поддерживает более одного ребенка. Для этого просто создайте контейнер по вашему выбору и добавьте его в окно просмотра (например, обычный виджет). Здесь есть несколько вариантов, и все они перечислены в документации Gtk на контейнерах .

. Один из способов сделать это с помощью GtkBox :

self.ui.labels = []
for titles in entries:
    label = Gtk.Label()
    self.ui.labels.append(label)         
    self.ui.viewport1.add(self.ui.labels[-1])
self.ui.paned1.show_all()

# First, we need to create a box to hold all our widgets
box = Gtk.Box()
box.set_orientation(Gtk.Orientation.VERTICAL)

# Now add our widgets to the box, one by one, from the bottom
box.add(Gtk.Label())
box.add(Gtk.Button())
box.add(Gtk.Entry())

# We need to add the box to the viewport
self.ui.viewport.add(box)

box.show_all()

Как только вы его повесите, вы можете играть с некоторыми другими функциями. Вместо того, чтобы вслепую добавлять виджеты в окно, функции pack_start и pack_end для GtkBox дают вам контроль над каждым добавляемым виджемом. Вы можете установить, предоставляется ли ребенку все доступное пространство и сколько места для его обхода. В некоторых случаях вас может заинтересовать GtkGrid , который является более мощным контейнером, который поддерживает несколько строк и столбцов.

1
ответ дан 4 August 2018 в 16:03

Gtk имеет различные типы контейнеров. Прямо сейчас вы работаете с контейнером GtkBin , который является типом контейнера, который поддерживает только одного ребенка. Вам нужен контейнер, который поддерживает более одного ребенка. Для этого просто создайте контейнер по вашему выбору и добавьте его в окно просмотра (например, обычный виджет). Здесь есть несколько вариантов, и все они перечислены в документации Gtk на контейнерах .

. Один из способов сделать это с помощью GtkBox :

self.ui.labels = []
for titles in entries:
    label = Gtk.Label()
    self.ui.labels.append(label)         
    self.ui.viewport1.add(self.ui.labels[-1])
self.ui.paned1.show_all()

# First, we need to create a box to hold all our widgets
box = Gtk.Box()
box.set_orientation(Gtk.Orientation.VERTICAL)

# Now add our widgets to the box, one by one, from the bottom
box.add(Gtk.Label())
box.add(Gtk.Button())
box.add(Gtk.Entry())

# We need to add the box to the viewport
self.ui.viewport.add(box)

box.show_all()

Как только вы его повесите, вы можете играть с некоторыми другими функциями. Вместо того, чтобы вслепую добавлять виджеты в окно, функции pack_start и pack_end для GtkBox дают вам контроль над каждым добавляемым виджемом. Вы можете установить, предоставляется ли ребенку все доступное пространство и сколько места для его обхода. В некоторых случаях вас может заинтересовать GtkGrid , который является более мощным контейнером, который поддерживает несколько строк и столбцов.

1
ответ дан 6 August 2018 в 00:41

Gtk имеет различные типы контейнеров. Прямо сейчас вы работаете с контейнером GtkBin , который является типом контейнера, который поддерживает только одного ребенка. Вам нужен контейнер, который поддерживает более одного ребенка. Для этого просто создайте контейнер по вашему выбору и добавьте его в окно просмотра (например, обычный виджет). Здесь есть несколько вариантов, и все они перечислены в документации Gtk на контейнерах .

. Один из способов сделать это с помощью GtkBox :

self.ui.labels = []
for titles in entries:
    label = Gtk.Label()
    self.ui.labels.append(label)         
    self.ui.viewport1.add(self.ui.labels[-1])
self.ui.paned1.show_all()

# First, we need to create a box to hold all our widgets
box = Gtk.Box()
box.set_orientation(Gtk.Orientation.VERTICAL)

# Now add our widgets to the box, one by one, from the bottom
box.add(Gtk.Label())
box.add(Gtk.Button())
box.add(Gtk.Entry())

# We need to add the box to the viewport
self.ui.viewport.add(box)

box.show_all()

Как только вы его повесите, вы можете играть с некоторыми другими функциями. Вместо того, чтобы вслепую добавлять виджеты в окно, функции pack_start и pack_end для GtkBox дают вам контроль над каждым добавляемым виджемом. Вы можете установить, предоставляется ли ребенку все доступное пространство и сколько места для его обхода. В некоторых случаях вас может заинтересовать GtkGrid , который является более мощным контейнером, который поддерживает несколько строк и столбцов.

1
ответ дан 7 August 2018 в 18:06

Gtk имеет различные типы контейнеров. Прямо сейчас вы работаете с контейнером GtkBin , который является типом контейнера, который поддерживает только одного ребенка. Вам нужен контейнер, который поддерживает более одного ребенка. Для этого просто создайте контейнер по вашему выбору и добавьте его в окно просмотра (например, обычный виджет). Здесь есть несколько вариантов, и все они перечислены в документации Gtk на контейнерах .

. Один из способов сделать это с помощью GtkBox :

self.ui.labels = []
for titles in entries:
    label = Gtk.Label()
    self.ui.labels.append(label)         
    self.ui.viewport1.add(self.ui.labels[-1])
self.ui.paned1.show_all()

# First, we need to create a box to hold all our widgets
box = Gtk.Box()
box.set_orientation(Gtk.Orientation.VERTICAL)

# Now add our widgets to the box, one by one, from the bottom
box.add(Gtk.Label())
box.add(Gtk.Button())
box.add(Gtk.Entry())

# We need to add the box to the viewport
self.ui.viewport.add(box)

box.show_all()

Как только вы его повесите, вы можете играть с некоторыми другими функциями. Вместо того, чтобы вслепую добавлять виджеты в окно, функции pack_start и pack_end для GtkBox дают вам контроль над каждым добавляемым виджемом. Вы можете установить, предоставляется ли ребенку все доступное пространство и сколько места для его обхода. В некоторых случаях вас может заинтересовать GtkGrid , который является более мощным контейнером, который поддерживает несколько строк и столбцов.

1
ответ дан 10 August 2018 в 06:53

Gtk имеет различные типы контейнеров. Прямо сейчас вы работаете с контейнером GtkBin , который является типом контейнера, который поддерживает только одного ребенка. Вам нужен контейнер, который поддерживает более одного ребенка. Для этого просто создайте контейнер по вашему выбору и добавьте его в окно просмотра (например, обычный виджет). Здесь есть несколько вариантов, и все они перечислены в документации Gtk на контейнерах .

. Один из способов сделать это с помощью GtkBox :

self.ui.labels = []
for titles in entries:
    label = Gtk.Label()
    self.ui.labels.append(label)         
    self.ui.viewport1.add(self.ui.labels[-1])
self.ui.paned1.show_all()

# First, we need to create a box to hold all our widgets
box = Gtk.Box()
box.set_orientation(Gtk.Orientation.VERTICAL)

# Now add our widgets to the box, one by one, from the bottom
box.add(Gtk.Label())
box.add(Gtk.Button())
box.add(Gtk.Entry())

# We need to add the box to the viewport
self.ui.viewport.add(box)

box.show_all()

Как только вы его повесите, вы можете играть с некоторыми другими функциями. Вместо того, чтобы вслепую добавлять виджеты в окно, функции pack_start и pack_end для GtkBox дают вам контроль над каждым добавляемым виджемом. Вы можете установить, предоставляется ли ребенку все доступное пространство и сколько места для его обхода. В некоторых случаях вас может заинтересовать GtkGrid , который является более мощным контейнером, который поддерживает несколько строк и столбцов.

1
ответ дан 15 August 2018 в 18:50
  • 1
    Спасибо, я должен пропустить эту информацию в документации на видовом экране. Я довольно новичок в программировании GUI, и это был хороший урок. – Dillon Gilmore 24 June 2012 в 02:41
  • 2
    Хороший способ это, если вы возитесь с Glade. Вы получите хорошее представление о том, что возможно, по крайней мере, и как все выглядит. После того, как вы начнете работать с контейнерами, которые делают макет, есть некоторые небольшие детали, которые нужно помнить, как halign и valign (Gtk.Align.FILL делает виджет занимающим столько места, сколько он доступен, а не только то, что ему нужно), hexpand и vexpand, заполнение виджета и интервал между столбцами / рядами. Документация на C действительно удобна для всего этого, тоже :) – Dylan McCall 24 June 2012 в 02:55

Другие вопросы по тегам:

Похожие вопросы: