Я надеюсь, что все в безопасности.
Я надеюсь, что кто-то может мне помочь, так как я не могу понять, как я могу получить меню правой кнопки мыши, чтобы показать on_click сигнал в терминале.
Я только новичок с языком кодирования, поэтому я буду признателен за любую помощь. Заранее спасибо.
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.1 -->
<interface>
<requires lib="gtk+" version="3.20"/>
<object class="GtkMenu" id="menu1">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
<object class="GtkPopoverMenu" id="Remot">
<property name="can_focus">False</property>
<property name="no_show_all">True</property>
<property name="relative_to">menubutton1</property>
<property name="position">right</property>
<property name="modal">False</property>
<property name="transitions_enabled">False</property>
<property name="constrain_to">none</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="homogeneous">True</property>
<property name="baseline_position">bottom</property>
<child>
<object class="GtkButton" id="close">
<property name="label" translatable="yes">close</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="activate" handler="gtk_main_quit" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="min">
<property name="label" translatable="yes">min</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="activate" handler="gtk_widget_hide" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="u want rice">
<property name="label" translatable="yes">u want rice</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="activate" handler="Power_tv_clicked_cb" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack_type">end</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="submenu">main</property>
</packing>
</child>
</object>
<object class="GtkWindow" id="Remote">
<property name="can_focus">False</property>
<property name="role">1</property>
<property name="window_position">mouse</property>
<property name="destroy_with_parent">True</property>
<property name="icon_name">address-book-new</property>
<property name="skip_taskbar_hint">True</property>
<property name="skip_pager_hint">True</property>
<property name="urgency_hint">True</property>
<property name="gravity">west</property>
<property name="has_resize_grip">True</property>
<child type="titlebar">
<placeholder/>
</child>
<child>
<object class="GtkGrid" id="Grid">
<property name="name">top grid</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="row_homogeneous">True</property>
<property name="column_homogeneous">True</property>
<child>
<object class="GtkButton" id="HDMI_2">
<property name="label" translatable="yes">HDMI-2</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="clicked" handler="HDMI_2_clicked_cb" swapped="no"/>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="HDMI_1">
<property name="label" translatable="yes">HDMI-1</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="clicked" handler="HDMI_1_clicked_cb" swapped="no"/>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="HDMI_3">
<property name="label" translatable="yes">HDMI-3</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="clicked" handler="HDMI_3_clicked_cb" swapped="no"/>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkMenuButton" id="menubutton1">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="relief">none</property>
<property name="popup">menu1</property>
<property name="popover">Remot</property>
<child>
<object class="GtkButton" id="button1">
<property name="label" translatable="yes">button</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="relief">none</property>
</object>
</child>
</object>
<packing>
<property name="left_attach">3</property>
<property name="top_attach">0</property>
</packing>
</child>
</object>
</child>
</object>
</interface>
Мой python скрипт выглядит немного неопрятный
#!/usr/bin/python
# -*- coding: utf-8 -*-
import subprocess
from gi.repository import Gtk
#class GUI:
##class Remote():
# def __init__(self):
# self.builder = Gtk.Builder()
# self.builder.add_from_file("test.glade")
# self.builder.connect_signals(self)
# window = self.builder.get_object("window1")
# window.show_all()
# Gtk.window = Gtk.Window(Gtk.WINDOW_TOPLEVEL)
# #Gtk.Window.__init__(self, title="My Hello World Program")
# Gtk.Window.set_default_size(self, 4770,325)
# Gtk.Window.set_position(self, Gtk.WindowPosition.CENTER)
# Gtk.window.show()
# Gtk.window.connect("destroy", self.destroy)
class Handler:
def HDMI_1_clicked_cb(self, button):
subprocess.call("'/home/user/Documents/Python works/Hdmi 1.sh'", shell=True)
def HDMI_2_clicked_cb(self, button):
subprocess.call("'/home/user/Documents/Python works/Hdmi 2.sh'", shell=True)
def HDMI_3_clicked_cb(self, button):
subprocess.call("'/home/user/Documents/Python works/Hdmi 3.sh'", shell=True)
#def gtk_main_quit(self, button):
# print("You clicked exit")
# Gtk.main_quit()
def Power_tv_clicked_cb(self, button):
subprocess.call("'/home/user/bin/TV-Off.sh'", shell=True)
class Handler1:
@staticmethod
def gtk_main_quit(*args):
Gtk.main_quit()
builder = Gtk.Builder()
builder.add_from_file("Remote.glade")
builder.connect_signals(Handler())
window2 = builder.get_object("Remot")
ournewbutton = builder.get_object("HDMI_1")
ournewbutton = builder.get_object("HDMI_2")
ournewbutton = builder.get_object("HDMI_3")
ournewbutton = builder.get_object("close")
window = builder.get_object("Remote")
window2.connect("delete-event", Gtk.main_quit)
window.set_default_size(100, 20)
#window.set_position(Gtk.WindowPosition.TOP.CENTER)
#window.move (window *window, 500, 500);
window.show_all()
Gtk.main()