Portál AbcLinuxu, 7. listopadu 2025 18:50
#!/usr/bin/python
# vim: set fileencoding=utf-8 :
from gi.repository import Gtk, GLib
from math import fmod
tstart = GLib.get_real_time()
text = u'<span size="20000" weight="bold">Je to možné? Niekto hľadá <u>marquee</u>! Ve Windows bych to snadno naprogramoval třeba ve <span color="red">Visual Basicu</span>, ale v Linuxu to neumím. </span>'
def draw(wid, cr):
cr.save()
cr.set_source_rgb(1.0,1.0,1.0)
cr.paint()
cr.restore()
tnow = GLib.get_real_time()
pl = wid.create_pango_layout('')
pl.set_markup(text)
ww = wid.get_allocated_width()
w,h = pl.get_pixel_size()
x = (tnow - tstart)/1e6 * 150.0 + (w - ww)
x = w - fmod(x, w)
ctx = wid.get_style_context()
if x > ww:
Gtk.render_layout(ctx, cr, x-w, 0, pl)
else:
Gtk.render_layout(ctx, cr, x, 0, pl)
Gtk.render_layout(ctx, cr, x-w, 0, pl)
return True
def redraw(wid):
wid.queue_draw()
return True
win = Gtk.Window(Gtk.WindowType.TOPLEVEL)
win.set_default_size(600,40)
win.set_has_resize_grip(False)
win.connect('destroy', Gtk.main_quit)
win.connect('draw', draw)
win.show_all()
GLib.timeout_add(20, redraw, win)
Gtk.main()
Ne, není to kompletní program včetně zadávání z příkazové řádky a pod., protože si fungování budeš muset upravovat tak jako tak.
jen do prostého rámečku, bez ovládacích prvků, bez menu, stavového řádku apod.To všetko sa dá s browserom urobiť.
Co gambas ? To je podobné tomu tvému visualu.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.