ich versuche via wiki
sudo apt-get install libgtk-3-dev
wird auch installiert.
trotzdem dann beim ausführen eines python scripts:
glib.GError: tutorial-1.glade: required gtk+ version 3.10, current version is 2.24
Anmeldungsdatum: Beiträge: 334 |
ich versuche via wiki sudo apt-get install libgtk-3-dev wird auch installiert. trotzdem dann beim ausführen eines python scripts: glib.GError: tutorial-1.glade: required gtk+ version 3.10, current version is 2.24
|
Anmeldungsdatum: Beiträge: 29240 Wohnort: Germany |
Genauer Link, wo das steht, dass du das eingeben sollst? |
(Themenstarter)
Anmeldungsdatum: Beiträge: 334 |
hier http://wiki.ubuntuusers.de/GTK Übrigens bezieht sich mein Problem auf den Thread: http://forum.ubuntuusers.de/topic/glade-unter-kubuntu/#post-6959967 |
Anmeldungsdatum: Beiträge: 29240 Wohnort: Germany |
Warum ist das Thema nun als gelöst markiert? Glade ansich startet und läuft aber? Installier mal: sudo apt-get install libgtk-3-0 ohne -dev, aber mit -0, das auch einzig für sinnvoll befundene in der Paketverwaltung. |
(Themenstarter)
Anmeldungsdatum: Beiträge: 334 |
nützt nichts, schon mehrfach versucht. immer wieder: glib.GError: tutorial-1.glade: required gtk+ version 3.10, current version is 2.24 Bin am überlegen eine alte ubuntu version zu verwenden in der Hoffnung, dass Glade dort nicht crasht, jedoch kann ich diese nicht per USB wegen efi booten. wies erkennt python nicht, dass gtk3+ installiert ist und behauptet immer, ich hätte nur 2.4.... |
Anmeldungsdatum: Beiträge: 29240 Wohnort: Germany |
Hast du auch wirklich 3.10? $ dpkg -l | grep libgtk-3-0 ii libgtk-3-0:i386 3.10.8-0ubuntu1.2 i386 GTK Deine Version über alle Pakete gesucht... dpkg -l | grep 2.24 | sort ...ergibt bei mir auf einem stattlich ausgestatteten Ubuntu nur eine überschauliche Seite Pakete, die in Frage kommen, die du angeblich haben sollst. Edit: Hier noch paar hilfreiche Kommentare: http://askubuntu.com/questions/101306/how-do-i-install-gtk-3-0 Beachte auch den Link am Ende. Vielleicht weiß es aber jemand genauer. Wirst ja nicht der einzige GtK-Programmierer sein. |
(Themenstarter)
Anmeldungsdatum: Beiträge: 334 |
macstar@macstar-desktop:/opt/gtk/bin$ dpkg -l | grep libgtk-3-0 ii libgtk-3-0:amd64 3.10.8-0ubuntu1.2 amd64 GTK+ graphical user interface library |
Anmeldungsdatum: Beiträge: 696 Wohnort: Dortmund |
Wenn du Glade installiert hast, hast du auch gtk3 installiert, denn glade ist selbst mit gtk3 programmiert worden. Das Problem ist, dass du ein Tutorial vewendest, dass für gtk2 geschrieben wurde und glade gtk2 nicht mehr unterstützt. An der Zeile import gtk kann man erkennen, dass ein Programm für gtk2 (mit PyGtk) geschrieben wurde. Wenn du eine Zeile from gi.repository import Gtk siehst, wurde das Programm für gtk3 (mit GObject-Introspection) geschrieben. Das beste wird sein, du suchst dir ein aktuelles Tutorial für gtk3. |
(Themenstarter)
Anmeldungsdatum: Beiträge: 334 |
|
Anmeldungsdatum: Beiträge: 696 Wohnort: Dortmund |
Vielleicht das: http://python-gtk-3-tutorial.readthedocs.org/. Ubuntu 10.10 wird nicht mehr unterstützt, auch sollte man mit gtk2 keine neuen Programme mehr schreiben. Du tust dir damit keinen Gefallen. |
(Themenstarter)
Anmeldungsdatum: Beiträge: 334 |
Jup, das Tutorial hab ich auch schon gefunden ich versuchs jetzt damit, obwohl mir das andere Tutorial wesentlich besser gefällt, da es auch Glade erklärt, während ich mir das beim anderen alles zusammenraten muss. Hab grad Ubuntu 12.10 versucht, da kann ich aber glade gar nicht erst installieren... ich versuch jetzt fudunto, ob ich das überhaupt via usb installieren kann.... Bin gerne für weitere Vorschläge zu haben ... |
Anmeldungsdatum: Beiträge: 696 Wohnort: Dortmund |
Da gibt es auch einen Abschnitt für Glade: http://python-gtk-3-tutorial.readthedocs.org/en/latest/builder.html
Ubuntu 12.10 wird nicht mehr unterstützt. Wenn du unbedingt eine ältere Ubuntu-Version haben willst, dann nimm Ubuntu 12.04 LTS, für die gibt es noch bis 2017 Support (siehe auch LTS und Unterstützt). |
(Themenstarter)
Anmeldungsdatum: Beiträge: 334 |
leider viel zu dürftig das ganze. ich werde weiter suchen und falls ich was gutes finde hier posten. |
(Themenstarter)
Anmeldungsdatum: Beiträge: 334 |
Ich häng das mal hier an: Bin etwas am herumprobieren mit Python und Glade. Meine Grundüberlegung: Ein Programm, welches ungefähr so aussieht: Ungültiges Makro Dieses Makro ist nicht verfügbar Struktur: - Hauptfenster "Testprogramm1" - Menüleiste o Kernel Switcher o noop o cfq o deadline - Apps o Test 1 o Test 2 o Test 3 - Linux Kernel o 3.16.1 o 3.16.0 o 3.15.9 - Progressbar - OKButton, ApplyButton, CancelButton Bin folgendes Tutorial mehr oder weniger durchgegangen. http://python-gtk-3-tutorial.readthedocs.org/en/latest/introduction.html Das Problem dabei ist, dass so gut wie jedes Beispiel ausschliesslich eine "class" definiert. Weiter versucht habe ich es mit: class GridWindow(Gtk.Window): Im Grid Window kann ich sowohl Buttons als auch Checkboxes definieren: Ungültiges Makro Dieses Makro ist nicht verfügbar Der leicht abgeänderte Code sieht dann wie folgt aus: from gi.repository import Gtk class GridWindow(Gtk.Window): def __init__(self): Gtk.Window.__init__(self, title="Grid Example") grid = Gtk.Grid() self.add(grid) button1 = Gtk.Button(label="Button 1") button2 = Gtk.Button(label="Button 2") button3 = Gtk.Button(label="Button 3") button4 = Gtk.Button(label="Button 4") button5 = Gtk.ComboBox(label="combobox1") button6 = Gtk.CheckButton(label="checkbox1") grid.add(button1) grid.attach(button2, 1, 0, 2, 1) grid.attach_next_to(button3, button1, Gtk.PositionType.BOTTOM, 1, 2) grid.attach_next_to(button4, button3, Gtk.PositionType.RIGHT, 2, 1) grid.attach(button5, 1, 2, 1, 1) grid.attach_next_to(button6, button5, Gtk.PositionType.RIGHT, 1, 1) win = GridWindow() win.connect("delete-event", Gtk.main_quit) win.show_all() Gtk.main() durch das Ändern von Gtk.Button in Gtk.CheckButton mit entsprechendem Label bekomme ich also auch meine Checkboxen hin. Jedoch, neues Problem. Will ich auch Gtk.Combobox implementieren, beschwert sich python: TypeError: gobject `GtkComboBox' doesn't support property `label' Ich brauche also entweder einen anderen Layout Container, oder muss das Problem in folgendem Code finden. (Bezieht sich auf Anhang1, wo ich ohne Grid Window arbeite. from gi.repository import Gtk, GObject ### hauptfenster win = Gtk.Window() win.connect("delete-event", Gtk.main_quit) win.show_all() Gtk.main() ### Application Choser class ProgressBarWindow(Gtk.Window): def __init__(self): Gtk.Window.__init__(self, title="Testprogramm1") self.set_border_width(10) vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=6) self.add(vbox) button = Gtk.CheckButton("App1") button.connect("toggled", self.on_show_text_toggled) vbox.pack_start(button, True, True, 0) button = Gtk.CheckButton("Firefox") button.connect("toggled", self.on_activity_mode_toggled) vbox.pack_start(button, True, True, 0) button = Gtk.CheckButton("Test1") button.connect("toggled", self.on_right_to_left_toggled) vbox.pack_start(button, True, True, 0) button = Gtk.CheckButton("Test2") button.connect("toggled", self.on_right_to_left_toggled) vbox.pack_start(button, True, True, 0) self.progressbar = Gtk.ProgressBar() vbox.pack_start(self.progressbar, True, True, 0) self.timeout_id = GObject.timeout_add(50, self.on_timeout, None) self.activity_mode = False def on_show_text_toggled(self, button): show_text = button.get_active() if show_text: text = "some text" else: text = None self.progressbar.set_text(text) self.progressbar.set_show_text(show_text) def on_activity_mode_toggled(self, button): self.activity_mode = button.get_active() if self.activity_mode: self.progressbar.pulse() else: self.progressbar.set_fraction(0.0) def on_right_to_left_toggled(self, button): value = button.get_active() self.progressbar.set_inverted(value) def on_timeout(self, user_data): """ Update value on the progress bar """ if self.activity_mode: self.progressbar.pulse() else: new_value = self.progressbar.get_fraction() + 0.01 if new_value > 1: new_value = 0 self.progressbar.set_fraction(new_value) # As this is a timeout function, return True so that it # continues to get called return True win = ProgressBarWindow() win.connect("delete-event", Gtk.main_quit) win.show_all() Gtk.main() ### Start Kernel Patcher class ComboBoxWindow(Gtk.Window): def __init__(self): Gtk.Window.__init__(self, title="Kernel Patcher") self.set_border_width(10) name_store = Gtk.ListStore(int, str) name_store.append([1, "Noop"]) name_store.append([11, "Deadline"]) name_store.append([12, "CFQ"]) vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=6) name_combo = Gtk.ComboBox.new_with_model_and_entry(name_store) name_combo.connect("changed", self.on_name_combo_changed) name_combo.set_entry_text_column(1) vbox.pack_start(name_combo, False, False, 0) self.add(vbox) def on_name_combo_changed(self, combo): tree_iter = combo.get_active_iter() if tree_iter != None: model = combo.get_model() row_id, name = model[tree_iter][:2] print("Selected: ID=%d, name=%s" % (row_id, name)) else: entry = combo.get_child() print("Entered: %s" % entry.get_text()) win = ComboBoxWindow() win.connect("delete-event", Gtk.main_quit) win.show_all() Gtk.main() ### End Kernel Patcher ### Hauptfenster ende Hier habe ich mehr oder weniger die Codeblöcke von Beispiel 9 (http://python-gtk-3-tutorial.readthedocs.org/en/latest/progressbar.html) , Beispiel 7 (http://python-gtk-3-tutorial.readthedocs.org/en/latest/entry.html) und Beispiel 13 (http://python-gtk-3-tutorial.readthedocs.org/en/latest/combobox.html) zusammengeworfen, so gut es mir möglich war angepasst. Das höchste der Gefühle, was ich mit dieser Methode erreicht habe war, dass mir praktisch die 3 Programme hintereinander aufgerufen wurden. Also: erstes geschlossen, zweites gestartet, etc. Ich brauch sie aber alle in einem Container. Also: Class1 Hauptfenster dann unterkathegorie combo box, etc. Leider hab ich das Codemässig nicht hinbekommen. Mit GridWindow zu arbeiten erscheint mir logischer, allerdings stoße ich auch hier an meine Grenzen. Ich wäre für Vorschläge sehr dankbar. |
(Themenstarter)
Anmeldungsdatum: Beiträge: 334 |
Punkt 5 mit einem Table Container scheitert daran, dass ich diesen in Glade nicht finden kann! Bin jetzt sämtliche Container durchgegangen und sehe ihn nicht. http://python-gtk-3-tutorial.readthedocs.org/en/latest/layout.html |