Strona główna Polish Python Coders Group
   Strona główna   Pomoc Zaloguj się Rejestracja  
Witamy, Gość. Zaloguj się lub zarejestruj.
Czy dotarł do Ciebie email aktywacyjny?

Zaloguj się podając nazwę użytkownika, hasło i długość sesji

Aktualności:
Szukaj Szukaj
Strony: [1]   Do dołu
Drukuj
Wątek: Python import biblioteki GTK  (Przeczytany 2963 razy)
« : 21:05 13/11/18 »
maripoosa Offline
Hello World!

Zobacz profil
*

Reputacja: 0
Wiadomości: 10


Hej,
Mam problem z zaimportowaną biblioteką PyGTK wyskakuje mi taki błąd
File "./panel_project.py", line 5
    import PyGTK
         ^
IndentationError: expected an indented block

Ogólnie robię aplikację w Pythonie + Glade na Ubunt
Już próbowałam wszystkiego co znalazłam na internecie i nie wiem co robić

Zapisane
« Odpowiedz #1 : 02:54 14/11/18 »
Guaz Offline
Professional Python User

Zobacz profil
***

Reputacja: 41
Płeć: Mężczyzna
Wiadomości: 334


Kod:
IndentationError: expected an indented block
W sumie to mówi samo za siebie.
Masz przed import (    import PyGTK) tabulację lub kilka spacji (Strzelam 4 spacje po wklejonym fragmencie)
Usuń wcięcie i powinno zadziałać. Jeśli nie zadziała, wklej linię poprzedzającą Mrugnięcie.
Zapisane

Python 3.5.2 / Mint
« Odpowiedz #2 : 14:54 14/11/18 »
maripoosa Offline
Hello World!

Zobacz profil
*

Reputacja: 0
Wiadomości: 10


Nie mam tam ani tabulatora ani spacji porostu taką przerwę drukuje w terminalu.
Ogólnie to w pliku z pythona moja import biblioteki wygląda tak:
#!/usr/bin/env python

import sys
try:
import PyGTK
pygtk.require(“2.0″)
except:
pass
try:
import gtk
import gtk.glade
except:
sys.exit(1)
próbowałam też zwykłego import PyGTK ale też nie działało.
Zapisane
« Odpowiedz #3 : 15:03 14/11/18 »
jell Offline
Administrator
Expert Python User

Zobacz profil
*****

Reputacja: 70
Płeć: Mężczyzna
Wiadomości: 612


ok, zacznij od przeczytania https://docs.python.org/3/reference/lexical_analysis.html#indentation bo widze brakuje ci podstaw jesli chodzi o sama skladnie pythona.

hint: kazdy z blokow czy to po try, czy po except powinien byc "wciety", tj. poprzedzony tabem lub spacjami (przyjelo sie uzywanie 4 spacji)
Zapisane

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep
« Odpowiedz #4 : 15:38 14/11/18 »
maripoosa Offline
Hello World!

Zobacz profil
*

Reputacja: 0
Wiadomości: 10


Dzięki ale poradziłam sobie z tym błedę w inny sposób.
Zapisane
« Odpowiedz #5 : 15:45 14/11/18 »
jell Offline
Administrator
Expert Python User

Zobacz profil
*****

Reputacja: 70
Płeć: Mężczyzna
Wiadomości: 612


Mimo wszystko prosze doczytaj o roli jaka graja wciecia w pythonie, chyba ze w ogole nie interesuje Cie ten jezyk.
Zapisane

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep
« Odpowiedz #6 : 12:41 15/11/18 »
maripoosa Offline
Hello World!

Zobacz profil
*

Reputacja: 0
Wiadomości: 10


Mam jeszcze jeden mały problem wyskakuje mi taki błąd
Traceback (most recent call last):
  File "./panel_project.py", line 91, in <module>
    x.main()
  File "./panel_project.py", line 89, in main
    Gtk.main()
NameError: global name 'Gtk' is not defined

Gdyż w  swoim programie użyłam
   def main(self):
      Gtk.main()
x = Example()
x.main()
próbowałam ją oczywiście zdefiniować ale ciągle wyskakiwał ten błąd albo inny
Zapisane
« Odpowiedz #7 : 13:42 15/11/18 »
jell Offline
Administrator
Expert Python User

Zobacz profil
*****

Reputacja: 70
Płeć: Mężczyzna
Wiadomości: 612


ok, to moze zaczne od pytania: z jakiego tutoriala korzystasz, probujac przeksztalcic kod w nim podany w cos czego oczekujesz? importy masz inne niz w https://python-gtk-3-tutorial.readthedocs.io/en/latest/introduction.html#simple-example ale uzycie Gtk.main() wskazuje ze byc moze na tym bazujesz, right?
Zapisane

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep
« Odpowiedz #8 : 13:51 15/11/18 »
maripoosa Offline
Hello World!

Zobacz profil
*

Reputacja: 0
Wiadomości: 10


importy mam zmienione tak jak w tym tutorialu którego linka  tu podałeś ja żeby naprawić ten mój poprzedni błąd szukałam różnych importów. Tak ogólnie to korzystałam Glade-Tutorial mit PyGObject Release 0.1 autorstwa Anke K. (encarsia). I teraz już nic się nie wyświetla po wpisaniu komendy ./glade.py
Ja dopiero uczę się pythona więc nie ogarniam co się dzieje.
Zapisane
« Odpowiedz #9 : 14:45 15/11/18 »
jell Offline
Administrator
Expert Python User

Zobacz profil
*****

Reputacja: 70
Płeć: Mężczyzna
Wiadomości: 612


rzecz w tym ze probujesz nauczyc sie 2 rzeczy na raz, tj. jezyka python (skladni, sposobu uzywania bibliotek itd), jak i konkretnej biblioteki (a wlasciwie ich calego zestawu) dodatkowo majacej wlasna specyfike.

nie mieszaj tutoriali. zrob krok po kroku jeden (ten ktory linkowalem), po czym drugi (tez z MIT). najwyrazniej sie roznia i byc moze dotycza roznych wersji biblioteki, przy czym wydaje mi sie ze ten z MIT nieco odbiega juz od obecnej formy uzywania gtk pod pythonem (tj. nie uzywa sie do tego juz pygtk, a tak jak jest tutorialu podlinkowanym przeze mnie - gi, ktory to zapewnia dostep do bibliotek gtk "w nowy sposob").
Zapisane

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep
« Odpowiedz #10 : 10:09 16/11/18 »
maripoosa Offline
Hello World!

Zobacz profil
*

Reputacja: 0
Wiadomości: 10


Przejrzałam to wszystko co jest w w tym linku oraz przejrzałam podstawy Pythona z tym że ja nie mam czasu się go uczyć tak dokładnie bo muszę projekt GUI wykonać do przyszłego tygodnia i jest w sumie mi tylko potrzebne dwie biblioteki GTK i PYGAME.
A mam teraz błąd innego typy znaczy się nic po prostu nie wyświetla mi po wpisaniu w terminalu ./glade.py to się nawet błędy nie pokazują i nie mam pojęcia co zrobić czy może coś brakuje w moim kodzie
#!/usr/bin/env python
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk


class Handler:
   def on_Main_windows_destroy(self,*args):
      Gtk.main_quit()
   
   def on_go_forward_clicked(self,widget): #strzalka do przodu
      print("GO FORWARD")
       
   def on_go_backwards_clicked(self,widget): #strzalka do tylu
      print("GO BACKWARD")

   def on_go_right_clicked(self,widget): #strzalka w prawo
      print("GO RIGHT")

   def on_go_left_clicked(self,widget): #strzalka w lewo
      print("GO LEFT")

   def on_keyb_clicked(self,widget): #klawisze
      print("KEY")

   def on_turn_left_clicked(self,widget): #obrot w lewo
      print("TURN LEFT")

   def on_turn_right_clicked(self,widget): #obrot w prawo
      print("TURN RIGHT")

   def on_go_link_activate_link(self,widget): #przejscie do linku
      print("GO LINK")

   def on_discon_clicked(self,widget): #blokada
      print("DISCONNECT")

   def on_busy_clicked(self,widget): #blokada
      print("BUSY")

   def on_start_toggled(self,widget): #strat
      print("START")


   def on_go_AT_clicked(self,widget):
      x.windows.hide_on_delete()
      x.set_window("AT_dialog") #przycisk przejscia do AT-Panel
   
   def on_go_sensors_clicked(self,widget):
      x.windows.hide_on_delete()
      x.set_window("Sensor_windows") #przycisk przejscia do czujnikow-Panel

   def on_go_contro_clicked(self,widget): #przejscie do panelu kontroli-AT
      x.windows.hide_on_delete()
      x.set_window("Main_windows")


   def on_go_sensor_clicked(self,widget): #przejscie do czujnikow-AT
      x.windows.hide_on_delete()
      x.set_window("Sensor_windows")


   def on_go_control_clicked(self,widget): # przejscie do panelu kontroli-Czujniki
      x.windows.hide_on_delete()
      x.set_window("Main_windows")

   def on_go_A_clicked(self,widget): #przejscie do AT-Czujniki
      x.windows.hide_on_delete()
      x.set_window("AT_dialog")

class Example:
   def _init_(self):
 

      self.builder = Gtk.Builder()
      self.builder.add_from_file("panel_gui.glade") #otwiera panel z glade
      self.builder.connect_signals(Handler()) #odczytuje uchwyty
   
      self.about = self.builder.get_object("AT_dialog") #tworzy okno dialogowe
               

      self.window=self.builder.get_object("Sensor_windows")
      self.window.show_all()

      def set_window(self, Main_windows):
         self.window = self.builder.get_object("Main_windows") #tworzy okno glowne do sterowania
         self.window.connect("destroy", Gtk.main_quit)
         self.window.show_all()
         Gtk.main()

Zapisane
Strony: [1]   Do góry
Drukuj
Skocz do:  

© 2007 - 2018 Polish Python Coders Group
Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines | Theme by PixelSlot