2

Python3/GTK3 のクリップボードの機能を最小限に抑えようとしています。を実行した場合にのみ機能しますGtk.main()。私も試しました:

While Gtk.event_pending():
    Gtk.main_iteration()

それが機能せずに。

スクリプトを実行するとGtk.main()、期待どおりに動作し、テキストをテスト GUI エディターに貼り付けることができます。このスクリプトは、テキスト文字列tをクリップボードに入れます。Gtk.main()が呼び出された場合にのみ、文字列テキストが存在します。呼び出されていない場合、クリップボード バッファはそこにあったものはすべてクリアされますが、空です。これについて助けていただければ幸いです。電話をかけずに機能させる方法はありGtk.main()ますか?

#! /usr/bin/env python3
# -*- coding: utf-8 -*-

from gi.repository import Gtk
from gi.repository import Gdk
import signal

class Chars(Gtk.Window):
    def __init__(self):
        super().__init__()
        self.connect('destroy', Gtk.main_quit)
        self.show_all()
        self.cb = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
        t='Some text'
        self.cb.set_text(t, -1)
        while Gtk.events_pending():
            Gtk.main_iteration()




def main():
    chars = Chars()
    signal.signal(signal.SIGINT, signal.SIG_DFL)
    # Gtk.main() # works if this is uncommented

if __name__ == "__main__":
    main()

よろしく、 ナルニー

4

1 に答える 1