Auteur Sujet: [réglé] Faire une interface graphique en ruby avec gtk  (Lu 6439 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Koala

  • Contributeur de Kali-linux.fr
  • Membre sérieux
  • *****
  • Messages: 322
  • +18/-0
[réglé] Faire une interface graphique en ruby avec gtk
« le: 26 février 2015 à 02:24:38 »
Bonsoir  8)

J'essaye depuis un bon momentde modeler une interface graphique avec gtk.Le mieux est pour commencer une image de manière a mieux comprendre la chose.




Ce que je veux c'est juste rajouter plus de bouton pour chaque tab dans le Gtk::Notebook et pas seulement 1 mais le bouton n'a semble t-il le droit d'avoir qu'un parent donc si je veux mettre un autre bouton en dessous ça bloque et me renvoi une erreur comme quoi on peut pas assigner le widget a quelque chose qui a déja un parent.Quand je tente la meme chose avec glade et juste 3 onglets ça passe:



Mais ça me renvoie je sais pas combien d'erreur quand je tente de le convertir en rb...

Voici le code ruby en brut de la première image.

#!/usr/bin/env ruby
require 'gtk2'

def report_press(w); puts "Lauching (button) w=#{w}"; end

window = Gtk::Window.new(Gtk::Window::TOPLEVEL)
window.set_title  "Securethis 1.2 by Koala"
window.border_width = 89
window.set_size_request(700, -1)

window.signal_connect('delete_event') { Gtk.main_quit }

nb = Gtk::Notebook.new
label1 = Gtk::Label.new("Scan")
label2 = Gtk::Label.new("WEP")
label3 = Gtk::Label.new("WPA")
label4 = Gtk::Label.new("RogueAP")
label5 = Gtk::Label.new("Hostapd")
label6 = Gtk::Label.new("WPS")
label7 = Gtk::Label.new("Deauth attack")
label8 = Gtk::Label.new("Experimental")
button = Gtk::Button.new("Discover the networks")
button1 = Gtk::Button.new("Injection")
button2 = Gtk::Button.new("Bruteforce")
button3 = Gtk::Button.new("Local access")
button4 = Gtk::Button.new("Encrypted AP with WPS")
button5 = Gtk::Button.new("Reaver")
button6 = Gtk::Button.new("mdk3")
button7 = Gtk::Button.new("WPS PBC access")

button.signal_connect( "clicked" ) {|w| report_press(w) }

nb.signal_connect('change-current-page') { another_tab }

nb.append_page(button, label1)
nb.append_page(button1, label2)
nb.append_page(button2, label3)
nb.append_page(button3, label4)
nb.append_page(button4, label5)
nb.append_page(button5, label6)
nb.append_page(button6, label7)
nb.append_page(button7, label8)


window.add(nb)
window.show_all
Gtk.main

Et le code xml généré par glade pour la seconde image.

<?xml version="1.0" encoding="UTF-8"?>
<interface>
  <!-- interface-requires gtk+ 3.0 -->
  <object class="GtkWindow" id="window1">
    <property name="can_focus">False</property>
    <property name="title" translatable="yes">Securethis 1.2 by Koala</property>
    <property name="gravity">center</property>
    <child>
      <object class="GtkNotebook" id="notebook1">
        <property name="visible">True</property>
        <property name="can_focus">True</property>
        <child>
          <object class="GtkBox" id="box1">
            <property name="visible">True</property>
            <property name="can_focus">False</property>
            <property name="orientation">vertical</property>
            <child>
              <object class="GtkButton" id="Discover the networks">
                <property name="label" translatable="yes">Discover the networks</property>
                <property name="use_action_appearance">False</property>
                <property name="visible">True</property>
                <property name="can_focus">True</property>
                <property name="receives_default">True</property>
                <property name="halign">center</property>
                <property name="use_action_appearance">False</property>
              </object>
              <packing>
                <property name="expand">False</property>
                <property name="fill">True</property>
                <property name="padding">30</property>
                <property name="position">0</property>
              </packing>
            </child>
            <child>
              <object class="GtkButton" id="Prevent intrusion">
                <property name="label" translatable="yes">Prevent or check intrusion</property>
                <property name="use_action_appearance">False</property>
                <property name="visible">True</property>
                <property name="can_focus">True</property>
                <property name="receives_default">True</property>
                <property name="halign">center</property>
                <property name="use_action_appearance">False</property>
              </object>
              <packing>
                <property name="expand">False</property>
                <property name="fill">True</property>
                <property name="padding">20</property>
                <property name="position">1</property>
              </packing>
            </child>
          </object>
        </child>
        <child type="tab">
          <object class="GtkLabel" id="label1">
            <property name="visible">True</property>
            <property name="can_focus">False</property>
            <property name="xalign">0.92000001668930054</property>
            <property name="label" translatable="yes">Scan</property>
            <property name="use_underline">True</property>
            <property name="selectable">True</property>
          </object>
          <packing>
            <property name="tab_fill">False</property>
          </packing>
        </child>
        <child>
          <object class="GtkBox" id="box4">
            <property name="visible">True</property>
            <property name="can_focus">False</property>
            <property name="orientation">vertical</property>
            <child>
              <object class="GtkButton" id="button1">
                <property name="label" translatable="yes">Using injection method</property>
                <property name="use_action_appearance">False</property>
                <property name="visible">True</property>
                <property name="can_focus">True</property>
                <property name="receives_default">True</property>
                <property name="halign">center</property>
                <property name="use_action_appearance">False</property>
              </object>
              <packing>
                <property name="expand">False</property>
                <property name="fill">True</property>
                <property name="padding">10</property>
                <property name="position">0</property>
              </packing>
            </child>
            <child>
              <object class="GtkButton" id="button2">
                <property name="label" translatable="yes">Using -p0841 method</property>
                <property name="use_action_appearance">False</property>
                <property name="visible">True</property>
                <property name="can_focus">True</property>
                <property name="receives_default">True</property>
                <property name="halign">center</property>
                <property name="use_action_appearance">False</property>
              </object>
              <packing>
                <property name="expand">False</property>
                <property name="fill">True</property>
                <property name="padding">10</property>
                <property name="position">1</property>
              </packing>
            </child>
            <child>
              <object class="GtkButton" id="button3">
                <property name="label" translatable="yes">WEP with MAC filter</property>
                <property name="use_action_appearance">False</property>
                <property name="visible">True</property>
                <property name="can_focus">True</property>
                <property name="receives_default">True</property>
                <property name="halign">center</property>
                <property name="use_action_appearance">False</property>
              </object>
              <packing>
                <property name="expand">False</property>
                <property name="fill">True</property>
                <property name="padding">10</property>
                <property name="position">2</property>
              </packing>
            </child>
          </object>
          <packing>
            <property name="position">1</property>
          </packing>
        </child>
        <child type="tab">
          <object class="GtkLabel" id="label2">
            <property name="visible">True</property>
            <property name="can_focus">False</property>
            <property name="label" translatable="yes">WEP</property>
          </object>
          <packing>
            <property name="position">1</property>
            <property name="tab_fill">False</property>
          </packing>
        </child>
        <child>
          <object class="GtkBox" id="box5">
            <property name="visible">True</property>
            <property name="can_focus">False</property>
            <property name="orientation">vertical</property>
            <child>
              <object class="GtkButton" id="button4">
                <property name="label" translatable="yes">Sample bruteforce</property>
                <property name="use_action_appearance">False</property>
                <property name="visible">True</property>
                <property name="can_focus">True</property>
                <property name="receives_default">True</property>
                <property name="halign">center</property>
                <property name="use_action_appearance">False</property>
              </object>
              <packing>
                <property name="expand">False</property>
                <property name="fill">True</property>
                <property name="padding">30</property>
                <property name="position">0</property>
              </packing>
            </child>
            <child>
              <object class="GtkButton" id="button5">
                <property name="label" translatable="yes">Crunch and pyrit</property>
                <property name="use_action_appearance">False</property>
                <property name="visible">True</property>
                <property name="can_focus">True</property>
                <property name="receives_default">True</property>
                <property name="halign">center</property>
                <property name="use_action_appearance">False</property>
              </object>
              <packing>
                <property name="expand">False</property>
                <property name="fill">True</property>
                <property name="padding">30</property>
                <property name="position">1</property>
              </packing>
            </child>
          </object>
          <packing>
            <property name="position">2</property>
          </packing>
        </child>
        <child type="tab">
          <object class="GtkLabel" id="label3">
            <property name="visible">True</property>
            <property name="can_focus">False</property>
            <property name="label" translatable="yes">WPA</property>
            <property name="track_visited_links">False</property>
          </object>
          <packing>
            <property name="position">2</property>
            <property name="tab_fill">False</property>
          </packing>
        </child>
      </object>
    </child>
  </object>
</interface>

Je vais prendre un kisscool et une bière maintenant  ;D
« Modifié: 28 février 2015 à 07:41:48 par admin »

Hors ligne coyotus

  • Contributeur de Kali-linux.fr
  • Membre Elite
  • *****
  • Messages: 3793
  • +264/-30
  • IN GNU WE TRUST
    • Groupe d'Utilisateurs de GNU/Linux...
Re : Faire une interface graphique en ruby avec gtk
« Réponse #1 le: 26 février 2015 à 08:03:55 »
Je ne connais pas Glade désolé, ni ruby d’ailleurs, en python j'ai galéré aussi pour ça, car il y a très (trop) peu d'exemple dispo sur le net pour se faire une idée et trop de méthode différente de construction de fenêtre (gtk avec ou sans glade ou gtkbuilder, tk, wx etc.. rien que pour python).

Hors ligne Koala

  • Contributeur de Kali-linux.fr
  • Membre sérieux
  • *****
  • Messages: 322
  • +18/-0
Re : Faire une interface graphique en ruby avec gtk
« Réponse #2 le: 26 février 2015 à 13:17:33 »
C'est vrai qu' il y a peu de chose...  :-\ je vais quand meme continuer a explorer des pistes.

Hors ligne Koala

  • Contributeur de Kali-linux.fr
  • Membre sérieux
  • *****
  • Messages: 322
  • +18/-0
Re : Faire une interface graphique en ruby avec gtk
« Réponse #3 le: 28 février 2015 à 02:41:11 »
J'ai résolu mon problème et l'interface est faite, manque plus qu'a coder tout en amont, sa va prendre du temps mais j'ai déja une partie  8)

Hors ligne admin

  • Contributeur de Kali-linux.fr
  • Membre Elite
  • *****
  • Messages: 1711
  • +74/-3
    • Communauté FR de Kali-linux
Re : Faire une interface graphique en ruby avec gtk
« Réponse #4 le: 28 février 2015 à 07:41:39 »
N'hésites pas à partager ton outil  ;)

Hors ligne Koala

  • Contributeur de Kali-linux.fr
  • Membre sérieux
  • *****
  • Messages: 322
  • +18/-0
Re : [réglé] Faire une interface graphique en ruby avec gtk
« Réponse #5 le: 28 février 2015 à 14:02:56 »
ça sera avec plaisir  :)

Hors ligne kcdtv

  • Contributeur de Kali-linux.fr
  • Membre VIP
  • *****
  • Messages: 633
  • +59/-3
    • crack-wifi.com
Re : [réglé] Faire une interface graphique en ruby avec gtk
« Réponse #6 le: 28 février 2015 à 15:56:45 »
C'est sympa ça.... Je veux apprendre aussi  :D

Hors ligne Koala

  • Contributeur de Kali-linux.fr
  • Membre sérieux
  • *****
  • Messages: 322
  • +18/-0
Re : [réglé] Faire une interface graphique en ruby avec gtk
« Réponse #7 le: 28 février 2015 à 20:40:58 »
Citer
C'est sympa ça.... Je veux apprendre aussi


Je suis dans le meme cas que toi étant a la base un noob en prog ;) perso je trouve ruby plutot cool est assez accessible et je vais tenter de faire quelque chose de complet avec, je pense qu'une fois que j'aurais réussi a créer cette interface avec son code, j'aurais acquis les bases pour coder quelque chose de plus gros comme pourquoi pas un site en ruby... mais comme tout l'apprentissage prends du temps mais vaut le coup je pense.J'ai souvent été handicapé par ce manque de notion en programmation pour mettre mes idées a exécution et j'aimerais bien que ça change  :)