LINUX.ORG.RU

Сообщения ivsatel

 

Появляется NoneType объект treeview path Gtk3 + Python3

Форум — Development

Всем доброго времени суток. Не пойму появления «пустого» объекта treeview path при подключении treeview к сигналу 'cursor_changed'. При каждом первом (только первом) срабатывании функции по сигналу первая попытка получить treepath приводит к TypeError. Последующие уже нормально. Приходится либо через try либо через if отлавливать nonetype obj.

( читать дальше... )

( читать дальше... )

 , ,

ivsatel
()

Gtk+ Python3 Как отослать (эмулировать) нажатие клавиш

Форум — Development

Хочу получить нажатие клавиши Super_L, но не пойму как. Вот пример, но...

( читать дальше... )

 ,

ivsatel
()

Python 3 + PyGObject Как графически отобразить процесс инициализации класса

Форум — Development

Подскажите как правильно это реализовать. Пока такой вариант, но понимаю, что он в корне не правильный:

import time
import threading
from gi.repository import Gtk, Gdk, GLib, GObject


class ProgressBarWindow(Gtk.Window):

    def __init__(self):

        Gtk.Window.__init__(self, title="ProgressWin")

        self.set_border_width(20)
        self.connect("delete-event", self.ex)

        vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=6)
        self.add(vbox)

        self.progressbar = Gtk.ProgressBar()
        vbox.pack_start(self.progressbar, True, True, 0)
        self.show_all()

    def ex(self, *args):
        self.destroy()
        Gtk.main_quit()

    def main(self):
        threading.Thread(target=Gtk.main, daemon=True).start()

    def on_activity(self, *args):
        GLib.idle_add(self.progressbar.set_fraction, args[0])


class TopWindow(Gtk.Window):

    def __init__(self):

        Gtk.Window.__init__(self, title="TopWin")

        self.connect("delete-event", self.m_ex)

        self.s = ProgressBarWindow()
        self.s.main()

        time.sleep(0.5)
        GLib.idle_add(self.s.on_activity, 0.20)

        time.sleep(0.5)
        GLib.idle_add(self.s.on_activity, 0.40)

        self.set_border_width(5)

        time.sleep(0.5)
        GLib.idle_add(self.s.on_activity, 0.60)

        self.set_default_size(200, 150)

        time.sleep(0.5)
        GLib.idle_add(self.s.on_activity, 0.80)

        self.spinner = Gtk.Spinner()
        self.spinner.start()

        time.sleep(0.5)
        GLib.idle_add(self.s.on_activity, 1.00)

        self.add(self.spinner)

        self.show_all()

        self.s.ex()

        self.main()

    def m_ex(self, *args):
        for x in range(Gtk.main_level()):
            Gtk.main_quit()

    def main(self):
        Gtk.main()


GObject.threads_init()
TopWindow()

 , ,

ivsatel
()

RSS подписка на новые темы