Справка по разработке приложений PYGTK [закрыто]

Может ли кто-нибудь дать мне общее представление о том, что здесь используется для изменения окна, когда разные кнопки, такие как обзор, папки для сохранения, папки для игнорирования. Как несколько окон встроены в одно окно

Image of the application is shown here

0
задан 7 March 2017 в 10:53

1 ответ

Путем это сделано в снимке экрана, который Вы отправили, через TreeView и ListStore. Вы захотите создать окно с виджетом Сетки в нем, создать виджет TreeView в нем и обеспечить содержание через ListStore. После этого можно присоединить некоторый другой виджет на праве с помощью grid.attach_next_to(self.some_other_widget, view, Gtk.PositionType.RIGHT, 2, 1). В этом случае примером является маркировка, но Вы, вероятно, могли присоединить Gtk. Поле внутри с другими виджетами в.

Примечание, что этот пример обеспечивает пример Gtk-3. PyGTK для Gtk-2, который медленно становится все меньше и меньше широко распространенным.

enter image description here

from gi.repository import Gtk
import sys

class MyWindow(Gtk.ApplicationWindow):

    def __init__(self, app):
        Gtk.Window.__init__(self, title="Some Title", application=app)
        self.set_default_size(100,100)

        listmodel = Gtk.ListStore(str)
        listmodel.append(['one'])
        listmodel.append(['two'])
        listmodel.append(['three'])

        view = Gtk.TreeView(model=listmodel)

        cell = Gtk.CellRendererText()
        col = Gtk.TreeViewColumn("Column Header", cell, text=0)
        view.append_column(col)

        view.get_selection().connect("changed", self.on_changed)

        self.label = Gtk.Label()
        self.label.set_text("")

        grid = Gtk.Grid()
        grid.attach(view, 0, 0, 1, 1)
        grid.attach_next_to(self.label, view, Gtk.PositionType.RIGHT, 2, 1)

        self.add(grid)

    def on_changed(self, selection):
        model,iterator = selection.get_selected()
        self.label.set_text("You selected "+model[iterator][0])
        return True


class MyApplication(Gtk.Application):

    def __init__(self):
        Gtk.Application.__init__(self)

    def do_activate(self):
        win = MyWindow(self)
        win.show_all()

    def do_startup(self):
        Gtk.Application.do_startup(self)

app = MyApplication()
exit_status = app.run(sys.argv)
sys.exit(exit_status)

, С другой стороны, это, вероятно, было бы более простым и более симпатичным для использования Gtk. Ноутбук .

Видят больше информации:

1
ответ дан 3 November 2019 в 16:11

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

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