WebKit

P
  • 29 Lie '11

Sveiki. Turiu problemėlę, lipdausi lengvą naršyklę ir man truputį spjauna klaidų. Naudojant Python 2.7 versiją man neimportuoja WebKit, o naudojant Python 3.2 versiją išvis neranda gi.repository.
Duodu kodą ir klaidą:
Kodas:

from gi.repository import Gtk, WebKit
import os, sys
UI_FILE = 'narsykle.ui'

class Narsykle:
    def _init_(self):
        self.builder = Gtk.Builder()
        self.builder.add_from_file(UI_FILE)
        self.bulder.connect_signals(self)

        self.window = self.builder.get_object('window')
        self.window.show_all()

    def destroy(self, window):
        Gtk.main_quit()

def main():
    app = Narsykle()
    Gtk.main()

if '_name_'  == '_main_':
    main()

Klaida su Python 2.7:

karolis@karolis-laptop:~/lengvutis$ python Naršyklė.py
ERROR:root:Could not find any typelib for WebKit
Traceback (most recent call last):
  File "Naršyklė.py", line 1, in <module>
    from gi.repository import Gtk, WebKit
ImportError: cannot import name WebKit

Klaida naudojant Python 3.2:

Traceback (most recent call last):
  File "/home/karolis/lengvutis/Naršyklė.py", line 1, in <module>
    import gi.repository
ImportError: No module named gi.repository

Google nieko man padoraus nepasakė, tad jei kas, Iš anksto dėkoju.

A
  • 29 Lie '11

Manau atsakymo reikia ieškoti http://www.webkit.org/ dokumentacijose. Spėju nedaugelis iš mūsų bando lipinti savo browserius :) Taip pat manau jog gali reikėti specialius webkit DEV paketus susidiegti, bet geriau documentacijoj paskaityt kad tiksliai žinomum ko reikia ;)

P
  • 29 Lie '11

Lipinti savo naršyklę nusprendžiau po to, kai mano Firefox perlipo 100 mb RAM ribą, ir tai jau buvo paskutinis lašas. Tad, gerai pagalvojau, kad iš naršyklės man tereikia trijų funkcijų: įvesti adresą, rodyklės atgal ir rodyklės pirmyn. Manau, kad visi su manimi sutiks, kad daugiau nieko iš naršyklės siūlomų funkcijų nelabai ir naudoja, o pačiam sulipdyti nėra taip jau sunku, ir žinoma, kiek toks džiaugsmas gali ryti RAM ? Tikriausiai mažiau nei Chromium .

N
  • 29 Lie '11

Abejoju, kad tavo narsykle veik greiciau/naudos maziau ram nei google Chrome/Chromium. Juo labaiau, kad chrome gali atjungti tai ko tau nereikia (chrome://flags/, chrome://plugins/). Savo narsykles lypdimui pritariu tik del mokynimosi/eksperimentavimo tikslu

P.S. pats megstu "isradineti dviracius" pazinymo tikslais

P
  • 29 Lie '11

Na, kiek mačiau, visos naršyklės turi vadinamuosius programuotojo įrankius, kurias net ir tie programuotojai nesinaudoja, o jie atminties valgo, reikia tai pripažinti. ir daugybė kitų funkcijų, kurių net nepanaudoji, tad, ar tau jų reikia ? Man asmeniškai ne, tad palipdau naršyklę ir nesuku galvos, kas man gali būti reikalingas. Vat, kaip matai, neina taip lengvai to Safari variklio sušerti mano naršykliai, tad bandysiu kažką kito, gal kokį Gecko, bet dar bandysiu WebKit. Bus matyti kas gausis, na, o rezultatą padėsiu čia .

N
  • 29 Lie '11

Na as tuos developer tools tai naudoju, jie gan stipriai palegvina darba (labai naudingos galimybes yra JS console ir galimybe redaguoti CSS realiu laiku)

As pries koki menesiuka kita zaidziau python+GTK+WebKit, tai man viskas veike kuo puikiausiai. Tada as tirinejausi galimybe desktopines programos GUI pastatymo ant HTML5 galimybes

P
  • 29 Lie '11

Jeigu būtum pakėlęs akis, būtum pastebėjęs, kad pas mane irgi tie patys įrankiai .

N
  • 30 Lie '11

na va mano veikiantis pvz:

import gtk, webkit;
class mainWindow(object):
    def __init__(self):
        self.w = gtk.Window()
        self.w.set_title('webkit test')
        self.w.set_default_size(700, 400)

        self.w.connect("destroy", self.stop)

        self.s = gtk.ScrolledWindow()

        self.b = webkit.WebView()
        self.b.open('http://www.google.com');

        self.s.add(self.b)
        self.w.add(self.s)
        self.w.show_all()

    def stop(self, window):
        gtk.main_quit()

    def start(self):
        gtk.main()

mainWindow().start();

Skirtumas pas mus tas, kad tu naudoji kazkoki gtk builderi, o as visa ui aprasinejau tiesiogiai.

Mano atveju reikia susimesti python-webkit (tai gali padaryti per synaptic). Kadangi senokai eksperimentavau, tai nelabai pamnu kokiuos papildomus paketus meciausi, bet lygtais nieko stebuklingo nereikejo

P.S. siaip pastebejimas butu nenaudoti lietuvisku raidziu failu pavadinimuose.

P
  • 31 Lie '11

Na, mano pastebėjimas būtų toks, kad Python 3 leidžia net lietuviškas raides naudoti kaip kintamuosius .

N
  • 31 Lie '11

kad Python 3 pilnai utf-8 yra tai cia faktas, bet tu pagalvok kas su tavo lt failu pavadinimais gali nutikti pvz WinXP kuriuose yra padaryta rusu kalba

O siaip neveltui visi koda raso tik lotiniskais simboliais
Kur matei, kad kas koda rasytu kirilica ar kokiais japoniskai rasmenimis?

Kodas lotiniskais rasmenimis == problemu nebuvimas del suderinamumo.

P.S. siaip koda rasyti deretu prisilaikant standartu, o ne kurti savus standartus.

P
  • 31 Lie '11

Šis kodas skirtas man, o ne masiniam dauginimui . Kai jau nuspręsiu, kad reikia imtis kažko rimčiau, tai bus lotyniškai tamsta .

N
  • 1 Rugp '11

Na geriau iskarto mokintis teisingai rasyti koda nei paskui kariauti su iprociais

P
  • 1 Rugp '11

Tai tu ,čia tik dėl failo vardo ir kabinėsies ?

N
  • 1 Rugp '11

As nesikabineju, o patariu
Is savo patirties sakau, kad geriau iskarto pratintis rasyti koda teisingai, nes paskui sunkoka senu iprociu atsikratyti.

D
  • 27 Lie '12

Labai labai po laiko, bet tačiau
https://github.com/darxx/your-browser

Geriems atsiminimas sužadinti

Jei vis dar noras yra pasimėginti dėl ram naudojimo prašom Pradžia yra Tolimesnis plėtojimas leistinas. Net be autoriaus sutikimo