Conversione file da glade a xml problemi
« il: Aprile 10, 2012, 21:58 »
Salve è da un pò che non scrivo sul questo forum :ok: adesso passiamo al mio problema, sto creando un image viewer usando le gtk. Per creare la GUI ho usato erroneamente glade3, però seguendo le soluzioni trovate in internet sono riuscito a convertire il file glade con gtk-builder-convert, questo è il codice che uso per avviarlo:
[codice]
'''
Created on 01/apr/2012

@author: plaoo
'''
import pygtk
pygtk.require('2.0')
import gtk

class GuiAmaro:
   
    def __init__(self):
       
        builder = gtk.Builder()
        builder.add_from_file("amaro1.ui")
        builder.connect_signals({ "on_gui_destroy" : gtk.main_quit })
        self.amaro_gui = builder.get_object("amaro_gui")
        self.amaro_gui.show()

if __name__ == "__main__":
    t = GuiAmaro()
    gtk.main()[/codice]
Questo è il file xml:
[codice]<?xml version="1.0"?>
<interface>
  <!-- interface-requires gtk+ 3.0 -->
  <object class="GtkWindow" id="amaro_gui">
    <property name="can_focus">False</property>
    <property name="hexpand">True</property>
    <property name="vexpand">True</property>
    <property name="title" translatable="yes">Amaro</property>
    <property name="default_width">440</property>
    <property name="default_height">250</property>
    <signal handler="on_gui_destroy" name="destroy" swapped="no"/>
    <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="GtkBox" id="box4">
            <property name="visible">True</property>
            <property name="can_focus">False</property>
            <child>
              <object class="GtkBox" id="box5">
                <property name="visible">True</property>
                <property name="can_focus">False</property>
                <child>
                  <object class="GtkButton" id="button_open">
                    <property name="label" translatable="yes">Open</property>
                    <property name="height_request">44</property>
                    <property name="visible">True</property>
                    <property name="can_focus">True</property>
                    <property name="receives_default">True</property>
                    <property name="use_action_appearance">False</property>
                  </object>
                  <packing>
                    <property name="expand">False</property>
                    <property name="fill">True</property>
                    <property name="position">0</property>
                  </packing>
                </child>
                <child>
                  <object class="GtkButton" id="button_save">
                    <property name="label" translatable="yes">Save</property>
                    <property name="visible">True</property>
                    <property name="can_focus">True</property>
                    <property name="receives_default">True</property>
                    <property name="use_action_appearance">False</property>
                  </object>
                  <packing>
                    <property name="expand">False</property>
                    <property name="fill">True</property>
                    <property name="padding">1</property>
                    <property name="position">1</property>
                  </packing>
                </child>
                <child>
                  <object class="GtkButton" id="button_print">
                    <property name="label" translatable="yes">Print</property>
                    <property name="visible">True</property>
                    <property name="can_focus">True</property>
                    <property name="receives_default">True</property>
                    <property name="halign">start</property>
                    <property name="use_action_appearance">False</property>
                  </object>
                  <packing>
                    <property name="expand">False</property>
                    <property name="fill">True</property>
                    <property name="position">2</property>
                  </packing>
                </child>
              </object>
              <packing>
                <property name="expand">False</property>
                <property name="fill">True</property>
                <property name="position">0</property>
              </packing>
            </child>
            <child>
              <object class="GtkBox" id="box6">
                <property name="visible">True</property>
                <property name="can_focus">False</property>
                <child>
                  <object class="GtkButton" id="button_rotateL">
                    <property name="label" translatable="yes">Rotate L</property>
                    <property name="visible">True</property>
                    <property name="can_focus">True</property>
                    <property name="receives_default">True</property>
                    <property name="halign">start</property>
                    <property name="use_action_appearance">False</property>
                  </object>
                  <packing>
                    <property name="expand">False</property>
                    <property name="fill">True</property>
                    <property name="position">0</property>
                  </packing>
                </child>
                <child>
                  <object class="GtkButton" id="button_rotateR">
                    <property name="label" translatable="yes">Rotate R</property>
                    <property name="width_request">0</property>
                    <property name="visible">True</property>
                    <property name="can_focus">True</property>
                    <property name="receives_default">True</property>
                    <property name="halign">start</property>
                    <property name="use_action_appearance">False</property>
                  </object>
                  <packing>
                    <property name="expand">False</property>
                    <property name="fill">True</property>
                    <property name="position">1</property>
                  </packing>
                </child>
                <child>
                  <object class="GtkButton" id="button_mirror">
                    <property name="label" translatable="yes">Mirror</property>
                    <property name="visible">True</property>
                    <property name="can_focus">True</property>
                    <property name="receives_default">True</property>
                    <property name="use_action_appearance">False</property>
                  </object>
                  <packing>
                    <property name="expand">False</property>
                    <property name="fill">True</property>
                    <property name="position">2</property>
                  </packing>
                </child>
              </object>
              <packing>
                <property name="expand">False</property>
                <property name="fill">True</property>
                <property name="padding">11</property>
                <property name="position">1</property>
              </packing>
            </child>
            <child>
              <object class="GtkBox" id="box7">
                <property name="visible">True</property>
                <property name="can_focus">False</property>
                <child>
                  <object class="GtkButton" id="button_prev">
                    <property name="label" translatable="yes">Prev</property>
                    <property name="visible">True</property>
                    <property name="can_focus">True</property>
                    <property name="receives_default">True</property>
                    <property name="halign">start</property>
                    <property name="use_action_appearance">False</property>
                  </object>
                  <packing>
                    <property name="expand">False</property>
                    <property name="fill">True</property>
                    <property name="position">0</property>
                  </packing>
                </child>
                <child>
                  <object class="GtkButton" id="button_next1">
                    <property name="label" translatable="yes">Next</property>
                    <property name="visible">True</property>
                    <property name="can_focus">True</property>
                    <property name="receives_default">True</property>
                    <property name="halign">start</property>
                    <property name="use_action_appearance">False</property>
                  </object>
                  <packing>
                    <property name="expand">False</property>
                    <property name="fill">True</property>
                    <property name="position">1</property>
                  </packing>
                </child>
                <child>
                  <object class="GtkButton" id="button_fullS">
                    <property name="label" translatable="yes">FullS</property>
                    <property name="visible">True</property>
                    <property name="can_focus">True</property>
                    <property name="receives_default">True</property>
                    <property name="halign">start</property>
                    <property name="use_action_appearance">False</property>
                  </object>
                  <packing>
                    <property name="expand">False</property>
                    <property name="fill">True</property>
                    <property name="position">2</property>
                  </packing>
                </child>
              </object>
              <packing>
                <property name="expand">False</property>
                <property name="fill">True</property>
                <property name="padding">11</property>
                <property name="position">2</property>
              </packing>
            </child>
            <child>
              <object class="GtkEntry" id="entry_path">
                <property name="visible">True</property>
                <property name="can_focus">True</property>
                <property name="valign">start</property>
                <property name="hexpand">True</property>
                <property name="invisible_char">&#x25CF;</property>
                <property name="text" translatable="yes">Path or url</property>
                <property name="invisible_char_set">True</property>
              </object>
              <packing>
                <property name="expand">True</property>
                <property name="fill">True</property>
                <property name="position">3</property>
              </packing>
            </child>
            <child>
              <object class="GtkComboBoxText" id="box_share">
                <property name="visible">True</property>
                <property name="can_focus">False</property>
                <property name="valign">start</property>
                <items>
                  <item translatable="yes">Prova1</item>
                  <item translatable="yes">Prova2</item>
                </items>
              </object>
              <packing>
                <property name="expand">False</property>
                <property name="fill">True</property>
                <property name="position">4</property>
              </packing>
            </child>
          </object>
          <packing>
            <property name="expand">False</property>
            <property name="fill">True</property>
            <property name="position">0</property>
          </packing>
        </child>
        <child>
          <object class="GtkBox" id="box2">
            <property name="visible">True</property>
            <property name="can_focus">False</property>
            <property name="vexpand">True</property>
            <child>
              <object class="GtkPaned" id="paned1">
                <property name="visible">True</property>
                <property name="can_focus">True</property>
                <child>
                  <object class="GtkBox" id="box3">
                    <property name="visible">True</property>
                    <property name="can_focus">False</property>
                    <property name="vexpand">True</property>
                    <property name="orientation">vertical</property>
                    <child>
                      <object class="GtkScrolledWindow" id="scrolledwindow3">
                        <property name="visible">True</property>
                        <property name="can_focus">True</property>
                        <property name="shadow_type">in</property>
                        <child>
                          <object class="GtkTreeView" id="view_plugin">
                            <property name="visible">True</property>
                            <property name="can_focus">True</property>
                            <child internal-child="selection">
                              <object class="GtkTreeSelection" id="treeview-selection1"/>
                            </child>
                          </object>
                        </child>
                      </object>
                      <packing>
                        <property name="expand">True</property>
                        <property name="fill">True</property>
                        <property name="position">0</property>
                      </packing>
                    </child>
                    <child>
                      <object class="GtkScrolledWindow" id="scrolledwindow2">
                        <property name="visible">True</property>
                        <property name="can_focus">True</property>
                        <property name="shadow_type">in</property>
                        <child>
                          <object class="GtkTreeView" id="view_file">
                            <property name="visible">True</property>
                            <property name="can_focus">True</property>
                            <property name="model">liststore1</property>
                            <child internal-child="selection">
                              <object class="GtkTreeSelection" id="treeview-selection2"/>
                            </child>
                          </object>
                        </child>
                      </object>
                      <packing>
                        <property name="expand">True</property>
                        <property name="fill">True</property>
                        <property name="position">1</property>
                      </packing>
                    </child>
                    <child>
                      <object class="GtkScrolledWindow" id="scrolledwindow1">
                        <property name="visible">True</property>
                        <property name="can_focus">True</property>
                        <property name="shadow_type">in</property>
                        <child>
                          <object class="GtkTextView" id="textview1">
                            <property name="visible">True</property>
                            <property name="can_focus">True</property>
                            <property name="buffer">buffer_exif</property>
                          </object>
                        </child>
                      </object>
                      <packing>
                        <property name="expand">True</property>
                        <property name="fill">True</property>
                        <property name="position">2</property>
                      </packing>
                    </child>
                  </object>
                  <packing>
                    <property name="resize">False</property>
                    <property name="shrink">True</property>
                  </packing>
                </child>
                <child>
                  <object class="GtkImage" id="image">
                    <property name="visible">True</property>
                    <property name="can_focus">False</property>
                    <property name="pixbuf">2d3c9abd23e9ae7c2c5058b7aff34529.jpg</property>
                  </object>
                  <packing>
                    <property name="resize">True</property>
                    <property name="shrink">True</property>
                  </packing>
                </child>
              </object>
              <packing>
                <property name="expand">True</property>
                <property name="fill">True</property>
                <property name="position">0</property>
              </packing>
            </child>
          </object>
          <packing>
            <property name="expand">False</property>
            <property name="fill">True</property>
            <property name="position">1</property>
          </packing>
        </child>
      </object>
    </child>
  </object>
  <object class="GtkTextBuffer" id="buffer_exif">
    <property name="text" translatable="yes">Ciao questa &#xE8; una prova
della text per
exif data</property>
  </object>
  <object class="GtkListStore" id="liststore1">
    <columns>
      <!-- column-name Sorce -->
      <column type="&quot;&quot;"/>
    </columns>
    <data>
      <row/>
    </data>
  </object>
</interface>
[/codice]
questi gli errori:
[codice]
/home/plaoo/Aptana Studio 3 Workspace/amaro/gui/gui.py:15: GtkWarning: Unknown property: GtkWindow.hexpand
  builder.add_from_file("amaro1.ui")
/home/plaoo/Aptana Studio 3 Workspace/amaro/gui/gui.py:15: GtkWarning: Unknown property: GtkWindow.vexpand
  builder.add_from_file("amaro1.ui")
/home/plaoo/Aptana Studio 3 Workspace/amaro/gui/gui.py:15: Warning: cannot create instance of abstract (non-instantiatable) type `GtkBox'
  builder.add_from_file("amaro1.ui")[/codice]
Durante la conversione non ho avuto problemi visto che ho modificato i tag, ma ancora non riesco ad uscirne, google mi ha aiutato poco o niente per risolvere, se non ci riesco passo alle qt...