back next

Your First Widget (Writing Widgets in Python, Part 1)

Updated May 31, 2003 | February 2003 | Fredrik Lundh

The Widget Construction Kit (WCK) is a simple programming interface that you can use to create new widgets in Python.

The WCK is currently available for the Tkinter library, but implementations for other environments are perfectly possible.

This effbot.org article introduces the library, and shows how to create a very simple widget. Future articles will teach you more about the art of widget making.

In this article:

Installing the Library
Testing the Library
Writing Your First Widget
Precomputing Graphics Objects
Widget Options

Installing the Library #

For the examples in this article series, I will use the Tkinter 3000 implementation of the WCK.

Here’s how to install the Tkinter 3000 WCK on your computer:

  1. Make sure you have a working installation of Tkinter (dead link).

  2. Download the Tkinter 3000 source code. The most current version is available from the effbot.org downloads site. For this article series, I’m using the 1.0 release (but any 1.0 beta should work, unless otherwise noted).

  3. Unpack it into a temporary build directory.

  4. Build the library, in the usual way (dead link).

If your system has wget, unzip, and a working C compiler, you can use the following commands to download, build and install the library:

 
$ wget http://effbot.org/downloads/tkinter3000-1.0-20031212.zip
$ unzip tkinter3000-1.0-20031212.zip
$ cd tkinter3000-1.0-20031212
$ python setup.py install

You can of course use other tools to download and unpack the library (e.g. your favourite browser, and unzipping tools like winzip). If you’re on Windows, you may find prebuilt versions at the effbot.org downloads site.

Testing the Library #

The Tkinter 3000 WCK ships with a number of demo scripts (in files named demoSomething.py. Before you start writing your own widget, it’s a good idea to try one or more of the demos, to make sure everything is properly installed.

Some examples:

$ python demoScrolledText.py
$ python demoLissajou.py

Writing Your First Widget #

The Tkinter 3000 implementation of the WCK consists of a single public module, called WCK. This module provides a number of base classes and helper functions, including the Widget base class.

Note (May 2003): In releases before 1.0b4, the WCK code was located in a module named tk3. In newer releases, the code has been moved to a package, and should be accessed via the WCK module. Just replace tk3 with WCK in your programs (or use import WCK as tk3). The tk3 module is still available, but will most likely be removed in a future release.

(Other implementations should provide the same WCK components, but via a different module or namespace.)

The Widget base class implements a generic WCK widget. By default, the widget behaves pretty much like a Tkinter Frame widget; it has a configurable background color and a border style, but has no other behavior.

To create a more expressive widget, you have to create a subclass of the Widget base class, and implement necessary drawing and event handling methods. The framework will call methods in your subclass when the widget needs to be redrawn, when the widget is resized, when the widget is reconfigured, and so on.

For example, the ui_handle_repair method is called every time the widget needs to be redrawn:

from WCK import Widget

class SomeWidget(Widget):
    def ui_handle_repair(self, draw, x0, y0, x1, y1):
        ...

This method is called when the widget is first displayed, and later on when the window manager decides that the widget contents have been “damaged” (for example, when the window becomes visible after having been covered by another window).

The method takes five arguments:

ui_handle_repair(draw, x0, y0, x1, y1)

The first argument, draw, provides an interface to the underlying graphics library. All WCK implementations allow you to draw text, lines, rectangles, and other 2D graphic elements via this interface. (Some implementations offer more functionality, including image support and 3D graphics. More on this in a later article.)

The rest of the arguments are coordinates (in pixel units) for the upper-left and lower-right coordinates of the widget’s drawing area.

Here’s a simple widget implementation:

Example: Drawing text in a widget
from Tkinter import Tk
from WCK import Widget

class MyTextWidget(Widget):

    def ui_handle_repair(self, draw, x0, y0, x1, y1):
        font = self.ui_font("black", "times")
        draw.text((0, 0), "hello!", font)

root = Tk()

widget = MyTextWidget(root)
widget.pack()

root.mainloop()

In this example, the ui_handle_repair method calls the WCK’s ui_font method to obtain a font object for the “times” font, and passes the string “hello!” and the font object to the text method of the drawing object.

Running this example produces a window looking something like:

Starting with release 1.0b4, the Tkinter WCK supports Unicode strings. In earlier versions, you can pass in text as standard 8-bit strings, encoded in ASCII or UTF-8.

The Tkinter implementation also handles strings encoded in ISO-8859-1 (Latin-1).

Precomputing Graphics Objects #

In the first example, a font object is created for each call to ui_handle_repair. For a simple widget like this, creating new objects every time the widget needs to be redrawn is usually not much of a problem; the object factory is reasonably fast, and Python’s garbage collector will make sure we’re not leaking objects.

However, if you need to use lots of fonts in your widget, a more efficient approach would be to create all font objects at once, and reuse the same objects every time the widget is redrawn.

One way to do this is to add a custom constructor (an __init__ method), and create the font object when the widget itself is created. Adding a constructor also allows you to pass in the text and the font as arguments:

 
Example: Precomputing drawing objects
from Tkinter import Tk
from WCK import Widget

class MyTextWidget(Widget):

    def __init__(self, master, text="", font="times", color="black"):
        Widget.__init__(self, master)
        self.font = self.ui_font(color, font)
        self.text = text

    def ui_handle_repair(self, draw, x0, y0, x1, y1):
        draw.text((0, 0), self.text, self.font)

root = Tk()

widget = MyTextWidget(root, text="hello!")
widget.pack()

root.mainloop()

Note that the base class constructor must be called before calling any other WCK methods. If you don’t do this, ui_font will most likely raise an exception.

Widget Options #

The previous example has a possibly serious problem; once you’ve created an instance of the widget, there’s no way to change the text or the font. You could solve this by adding configuration methods (e.g. settext, setfont), but that can quickly become unwieldy. A simpler approach is to use the WCK’s Tkinter-style option database interface.

Widgets that use the option database behave like standard Tkinter widgets. You can pass in options when you create the widget, and you can use the config method to change the configuration later on, if you need. You can also use cget to fetch the current value of an option.

To make a your widget support a given option, all you have to do is to add a class attribute to your widget subclass. The class attribute should have a name of the form ui_option_name, where name is the name of the option, and the value should be the default value for the corresponding widget option.

class MyWidget(Widget):
    ui_option_name = "default"

When an instance of this widget is created, the framework creates an instance attribute with the same name as the class attribute. For example, if you call the widget constructor with a value for the name option, the value will be assigned to the ui_option_name instance attribute:

widget = MyWidget(root, name="a better name")

# peek inside the widget
print widget.ui_option_name

The ui_option attributes should be treated as “protected” attributes. Don’t access them from outside the widget implementation.

To get the current value for an option, use the standard Tkinter-style interface:

widget = MyWidget(root, name="a better name")

# use the official tkinter-style api
print widget.cget("name")

Inside the widget implementation, you should always access the option value via the self instance variable:

class MyWidget(Widget):
    def getname(self):
        return self.ui_option_name

It’s important that you always use Python’s standard mechanims for attribute access. The reason for this is that a WCK implementation may choose to save some space by falling back on the the class attribute for options that are not set, and also for options that are explicitly set to their default value. If you access the attributes via self, Python will automatically do the right thing in those cases.

:::

To allow the user to change the option value at any time, you need to make sure that your widget is always using the current value for each option.

One way to do this is to revert to the approach used in the first example; simply create new graphics objects every time you need them.

    def ui_handle_repair(self, draw, x0, y0, x1, y1):
        font = self.ui_font(
            self.ui_option_color, self.ui_option_font
            )
        draw.text((0, 0), self.ui_option_text, font)

A better approach is to track changes to the options, and recompute the graphics objects every time the configuration changes, instead of doing it every time the widget needs to be updated. The framework provides a special method for this purpose, called ui_handle_config. This method is called when the widget is first created, and every time the configuration is changed.

ui_handle_config()

Note that the ui_handle_config method does not take any arguments; if you need to check if a given option has changed, you may need to store the current value somewhere yourself, and compare it with the new value inside the config method.

The following example uses option attributes for the text, font, and color options, and a ui_handle_config method that is used to to update the font object when necessary:

Example: Adding widget options
from Tkinter import Tk
from WCK import Widget

class MyTextWidget(Widget):

    ui_option_text = ""
    ui_option_font = "times"
    ui_option_color = "black"

    def ui_handle_config(self):
        self.font = self.ui_font(
            self.ui_option_color, self.ui_option_font
            )

    def ui_handle_repair(self, draw, x0, y0, x1, y1):
        draw.text((0, 0), self.ui_option_text, self.font)

root = Tk()

widget = MyTextWidget(root, text="hello!")
widget.pack()

widget.config(color="blue", background="white")

root.mainloop()

The background option used in the config example is a standard option, inherited from the Widget base class. The base class provides the following standard options:

background

The widget’s background color. By default, the background is drawn in the system’s standard background color.

relief
borderwidth
highlightthickness

Controls the appearance of the widget border. (the default is no border and no focus highlight).

cursor

What mouse cursor to show when the mouse pointer is moved over the widget. If not set, the widget will use the system’s default cursor (usually an arrow).

 

A Django site. rendered by a django application. hosted by webfaction.

avanafil
купить диплом института
https://originality-diplomx24.com
купить свидетельство о браке
https://originality-diploms24.com
купить диплом фармацевта
https://originality-diploma24.com
купить диплом техникума
https://originality-diploman24.com
купить диплом
https://originality-diplomans24.com
купить аттестат за 9 класс
https://originality-diplomik24.com
купить аттестат за 11 класс
https://originality-diplomix24.com
купить аттестат за 11 класс
https://originality-diplomas24.com
купить диплом в москве
https://originality-diplomiks24.com
купить диплом ссср
https://originality-diplomiki24.com
купить аттестат за 9 класс
купить диплом колледжа
ru-diplomirovan.com
купить диплом
www.ru-diplomirovany.com
купить диплом автомеханика
ru-diplomirovanay.com
купить диплом колледжа
http://www.ru-diplomirovannie.com
купить диплом техникума
www.rudiplomir.com
купить диплом врача
https://rudiplomirs.com
купить диплом колледжа
https://rudiplomira.com
купить диплом университета
http://www.rudiplomiry.com
купить диплом института
https://rudiplomiru.com
купить диплом кандидата наук
https://diplom-msk24.ru
купить диплом ссср
http://www.rudik-attestats365.com
где купить диплом
купить диплом магистра
https://premialnie-diploms24.com
купить диплом ссср
www.premialnie-diplomy24.com
купить дипломы о высшем
http://www.premialnie-diplomas24.com
купить аттестат
http://www.premialnie-diploman24.com
купить аттестат за 9 класс
http://www.premialnie-diplomx24.com
купить диплом о среднем специальном
premialnie-diplomix24.com
купить диплом вуза
https://premialnie-diplomik24.com
купить диплом в москве
premialnie-diplomans24.com
купить диплом бакалавра
originality-diplomix.com
купить диплом в москве
https://russiany-diplomx.com
купить диплом кандидата наук
http://www.russiany-diplomix.com
купить аттестат
https://premialnie-diplomx.com
купить диплом колледжа
http://www.premialnie-diplomix.com
купить аттестат за 9 класс
http://www.diplomx-asx.com
купить аттестат за 11 класс
www.diplomix-asx.com купить диплом о среднем образовании цена
купить свидетельство о браке
можно ли купить диплом вуза
купить диплом бакалавра
https://premialnie-diplomansy.com/купить-диплом-института/
купить дипломы о высшем
https://premialnie-diplomansy.com/купить-диплом-колледжа/
купить диплом
https://russiany-diplomans.com/attestat-9-klassov
купить диплом
https://russiany-diplomans.com/kupit-diplom-tehnikuma
купить свидетельство о браке
https://russiany-diplomans.com/srednee-spetsialnoe-obrazovanie
купить аттестат за 11 класс
http://lands-diploms.com/attestat-11-klassov.html http://lands-diploms.com/specialnosti/yurist.html http://lands-diploms.com/goroda/novosibirsk.html http://lands-diploms.com/goroda/omsk.html http://lands-diploms.com/goroda/tula.html
купить диплом техникума
http://radiploma.com/kupit-diplom-s-reestrom http://radiploma.com/kupit-attestat-11-klassov http://radiploma.com/kupit-diplom-o-vysshem-obrazovanii http://radiploma.com/kupit-diplom-kosmetologa
купить диплом бакалавра
http://rudiplomisty24.com/диплом-техникума rudiplomisty24.com/диплом-специалиста-российского-вуза http://www.rudiplomisty24.com/купить-диплом-пермь http://rudiplomisty24.com/купить-диплом-воронеж
купить диплом фармацевта
купить аттестат за 9 класс
http://www.diploman-dok.com
купить диплом института
https://diploman-doks.com
купить диплом о среднем специальном
https://diploman-doky.com
купить свидетельство о рождении
diploman-doku.com
купить диплом автомеханика
https://diplomy-servise.com
купить диплом магистра
www.education-ua.com/kupit-legalnyij-diplom-v-ukraine.html
купить дипломы о высшем
http://education-ua.com/attestat-diplom.html
купить диплом о среднем специальном
http://education-ua.com/zaporozhe.html
купить диплом врача
http://www.education-ua.com/kieve.html
купить диплом автомеханика
http://education-ua.com/odesse.html
купить диплом техникума
education-ua.com/summah.html
купить аттестат
www.education-ua.com/ternopole.html
купить аттестат за 11 класс
www.education-ua.com/diplom-o-mediczinskom-obrazovanii.html
купить диплом о среднем образовании
http://education-ua.com/diplom-vyisshee.html
купить диплом колледжа
www.education-ua.com/kupit-nastoyashhij-diplom-goznak.html
купить диплом нового образца
http://www.education-ua.com/
купить аттестат за 11 класс
www.education-ua.com/diplom-texnikuma-kolledzha.html
купить диплом магистра
http://www.education-ua.com/diplom-magistra-ukrainskogo-vuza.html
купить диплом автомеханика
http://education-ua.com/diplom-o-mediczinskom-obrazovanii.html
купить диплом врача
http://www.education-ua.com/diplom-medsestry.html
купить диплом
www.education-ua.com/diplom-nedorogo.html
купить диплом автомеханика
www.education-ua.com/kupit-diplom-novogo-obrazca.html
где купить диплом
http://education-ua.com/otzivi-pogelania.html
купить диплом бакалавра
http://education-ua.com/diplom-vyisshee.html
купить свидетельство о рождении
http://www.education-ua.com/diplom-uchilishha.html
купить диплом о среднем образовании
http://education-ua.com/diplom-s-registracziej.html
купить дипломы о высшем
http://www.education-ua.com/kupit-diplom-s-provodkoj-v-ukraine.html
купить диплом университета
http://www.education-ua.com/diplom-specialista-ukrainskogo-vuza.html
купить диплом
http://www.education-ua.com/diplom-uchilishha.html
купить диплом фармацевта
www.education-ua.com/kupit-diplom-sssr-na-nastoyashhem-blanke.html
купить диплом нового образца
education-ua.com/svidetelstvo-o-rozhdenii.html
купить диплом автомеханика
http://education-ua.com/svidetelstvo-o-smerti.html
купить диплом о среднем образовании
http://education-ua.com/svidetelstvo-o-brake.html
купить дипломы о высшем
http://education-ua.com/svidetelstvo-o-razvode.html диплом купить купить аттестат купить диплом запорожье купить диплом киев купить диплом одесса купить диплом сумы купить диплом тернополь купить диплом врача купить диплом вуза купить диплом высшее купить диплом гознак купить диплом института купить диплом колледжа купить диплом магистра купить диплом медицинского училища купить диплом медсестры купить диплом недорого купить диплом нового образца купить диплом отзывы купить диплом о высшем образовании купить диплом о среднем образовании купить диплом с занесением в реестр купить диплом с проводкой купить диплом специалиста купить диплом средне специального образования купить диплом ссср купить свидетельство о рождении купить свидетельство о смерти купить свидетельство о браке купить свидетельство о разводе http://rudiplomisty24.com/аттестат-11-классов https://diplomy-servise.com http://dipplomy.com http://www.diplomansy.com/diplom-spetsialista diplomansy.com/diplom-magistra diplomansy.com/kupit-diplom-s-reestrom www.diplomansy.com/diplom-tekhnikuma-ili-kolledzha http://www.diplomansy.com/kupit-diplom-o-srednem-obrazovanii www.diplomansy.com/kupit-diplom-v-gorode https://diplomansy.com/kupit-diplom-ekaterinburg https://diplomansy.com/kupit-diplom-kazan https://diplomansy.com/kupit-diplom-volgograd diplomansy.com/diplom-o-vysshem-obrazovanii www.diplomansy.com/diplom-magistra www.diplomansy.com/kupit-diplom-o-srednem-obrazovanii https://diplomansy.com/attestat-za-11-klass www.diplomansy.com/kupit-diplom-v-gorode www.diplomansy.com/kupit-diplom-novosibirsk www.diplomansy.com/kupit-diplom-ekaterinburg https://diplomansy.com/kupit-diplom-omsk www.diplomansy.com/kupit-diplom-chelyabinsk https://diplomansy.com/kupit-diplom-volgograd eonline-diploma.com/kupit-diplom-o-vysshem-obrazovanii-oficialno https://eonline-diploma.com eonline-diploma.com/kupit-diplom.-otzyvy https://eonline-diploma.com/diplom-o-vysshem-obrazovanii-nizhnij-tagil www.eonline-diploma.com/diplom-o-vysshem-obrazovanii-v-tule
купить диплом вуза
http://http://egpu.ru/ http://http://vina-net.ru/ http://cursovik.ru/ http://http://spravkipiter.ru/ www.alcoself.ru school625.ru http://http://moek-college.ru/ mmcmedclinic.ru http://intimvisit.ru/ http://med-pravo.ru/ moskva-medcentr.ru http://intim-72.ru/ http://http://razigrushki.ru/ www.dgartschool.ru www.ftbteam.ru http://sb26.ru/ https://originaly-dokuments.com/attestaty/attestat-za-9-klass http://www.originaly-dokuments.com/diplom-o-srednem-spetsialnom-obrazovanii https://originaly-dokuments.com/gorod/nizhnij-tagil https://originaly-dokuments.com/gorod/vologda www.originaly-dokuments.com/gorod/saratov www.originaly-dokuments.com/spetsialnosti/yurist www.originaly-dokuments.com/spetsialnosti/povar http://www.originaly-dokuments.com/gorod/krasnodar www.originaly-dokuments.com/attestaty/attestat-za-11-klass http://www.originaly-dokuments.com/gorod/ekaterinburg http://www.originaly-dokuments.com/attestaty originaly-dokuments.com/spetsialnosti/bukhgalter originaly-dokuments.com/gorod/omsk http://www.originaly-dokuments.com/gorod/novosibirsk http://www.originaly-dokuments.com/gorod/sankt-peterburg www.originaly-dokuments.com/gorod/chelyabinsk www.originaly-dokuments.com/gorod/orjol http://www.originaly-dokuments.com/diplom-o-vysshem-obrazovanii/diplom-bakalavra https://originaly-dokuments.com/diplom-o-vysshem-obrazovanii/diplom-magistra http://www.originaly-dokuments.com/spetsialnosti/menedzher www.originaly-dokuments.com/diplom-o-srednem-spetsialnom-obrazovanii/diplom-kolledzha www.originaly-dokuments.com/diplom-o-srednem-spetsialnom-obrazovanii
купить диплом о среднем специальном
http://http://egpu.ru/ vina-net.ru cursovik.ru www.spravkipiter.ru http://http://alcoself.ru/ school625.ru http://http://moek-college.ru/ http://mmcmedclinic.ru/ intimvisit.ru http://med-pravo.ru/ www.moskva-medcentr.ru http://intim-72.ru/ http://http://razigrushki.ru/ www.dgartschool.ru http://http://ftbteam.ru/ http://http://sb26.ru/ https://originaly-dokuments.com/attestaty/attestat-za-9-klass originaly-dokuments.com/diplom-o-srednem-spetsialnom-obrazovanii originaly-dokuments.com/gorod/nizhnij-tagil http://www.originaly-dokuments.com/gorod/vologda originaly-dokuments.com/gorod/saratov originaly-dokuments.com/spetsialnosti/yurist http://www.originaly-dokuments.com/spetsialnosti/povar originaly-dokuments.com/gorod/krasnodar originaly-dokuments.com/attestaty/attestat-za-11-klass originaly-dokuments.com/gorod/ekaterinburg originaly-dokuments.com/attestaty www.originaly-dokuments.com/spetsialnosti/bukhgalter www.originaly-dokuments.com/gorod/omsk http://www.originaly-dokuments.com/gorod/novosibirsk originaly-dokuments.com/gorod/sankt-peterburg https://originaly-dokuments.com/gorod/chelyabinsk https://originaly-dokuments.com/gorod/orjol originaly-dokuments.com/diplom-o-vysshem-obrazovanii/diplom-bakalavra www.originaly-dokuments.com/diplom-o-vysshem-obrazovanii/diplom-magistra originaly-dokuments.com/spetsialnosti/menedzher www.originaly-dokuments.com/diplom-o-srednem-spetsialnom-obrazovanii/diplom-kolledzha https://originaly-dokuments.com/diplom-o-srednem-spetsialnom-obrazovanii
купить диплом врача
http://http://aurus-diploms.com/geography/kupit-diplom-v-toljatti.html lands-diploms.com www.lands-diploms.com aurus-diploms.com lands-diploms.com http://http://lands-diploms.com/goroda/samara.html http://aurus-diploms.com/geography/zarechnyj.html http://aurus-diploms.com/geography/kupit-diplom-v-saratove.html lands-diploms.com www.lands-diploms.com http://http://aurus-diploms.com/kupit-diplom-tehnika.html http://http://aurus-diploms.com/geography/kupit-diplom-v-cherepovce.html http://http://aurus-diploms.com/kupit-diplom-kosmetologa.html aurus-diploms.com http://http://aurus-diploms.com/geography/michurinsk.html http://aurus-diploms.com/geography/kupit-diplom-volzhskij.html www.lands-diploms.com http://http://aurus-diploms.com/geography/volsk.html http://aurus-diploms.com/kupit-diplom-santekhnika.html www.lands-diploms.com lands-diploms.com aurus-diploms.com http://aurus-diploms.com/geography/kupit-diplom-v-permi.html aurus-diploms.com http://lands-diploms.com/goroda/vladimir.html www.lands-diploms.com aurus-diploms.com http://http://aurus-diploms.com/kupit-diplom-svarshhika.html aurus-diploms.com http://http://lands-diploms.com/goroda/chita.html http://aurus-diploms.com/geography/kupit-diplom-v-novosibirske.html aurus-diploms.com http://http://aurus-diploms.com/geography/novoaltajsk.html http://lands-diploms.com/goroda/lipeck.html www.lands-diploms.com http://http://aurus-diploms.com/geography/kupit-diplom-v-kurske.html lands-diploms.com lands-diploms.com http://lands-diploms.com/goroda/voronezh.html http://aurus-diploms.com/geography/kupit-diplom-v-surgute.html http://lands-diploms.com/goroda/belgorod.html lands-diploms.com www.aurus-diploms.com www.lands-diploms.com lands-diploms.com http://lands-diploms.com/attestat-11-klassov.html http://aurus-diploms.com/kupit-diplom-biologa.html http://http://lands-diploms.com/goroda/yaroslavl.html http://lands-diploms.com/specialnosti/ekonomist.html www.lands-diploms.com www.lands-diploms.com www.lands-diploms.com http://aurus-diploms.com/geography/kupit-diplom-rostov-na-donu.html http://http://lands-diploms.com/goroda/barnaul.html aurus-diploms.com http://http://lands-diploms.com/goroda/kazan.html http://aurus-diploms.com/geography/kupit-diplom-v-saranske.html www.lands-diploms.com http://http://aurus-diploms.com/geography/sevastopol.html http://lands-diploms.com/goroda/balashiha.html lands-diploms.com http://http://aurus-diploms.com/geography/kupit-diplom-v-ivanovo.html www.lands-diploms.com http://http://aurus-diploms.com/geography/kupit-diplom-v-rjazani.html http://aurus-diploms.com/geography/diplom-v-tomske.html http://lands-diploms.com/goroda/irkutsk.html www.lands-diploms.com aurus-diploms.com http://http://lands-diploms.com/goroda/ryazan.html http://http://aurus-diploms.com/kupit-diplom-avtomehanika.html www.aurus-diploms.com www.aurus-diploms.com www.aurus-diploms.com www.lands-diploms.com купить диплом с занесением в реестр https://archive-diplom.com диплом купить с занесением в реестр москва куплю диплом техникума реестр archive-diploman.com купить диплом с внесением в реестр https://archive-diploms24.com archive-diplomy24.com www.diploms-ukraine.com http://http://diploms-ukraine.com/diplom-spetsialista diploms-ukraine.com diploms-ukraine.com diploms-ukraine.com http://http://diploms-ukraine.com/kupit-diplom-belaya-tserkov www.diploms-ukraine.com diploms-ukraine.com www.diploms-ukraine.com www.diploms-ukraine.com diploms-ukraine.com diploms-ukraine.com diploms-ukraine.com http://http://diploms-ukraine.com/kupit-diplom-nikolaev www.diploms-ukraine.com diploms-ukraine.com http://diploms-ukraine.com/kupit-diplom-ternopol http://http://diploms-ukraine.com/kupit-diplom-vuza www.diploms-ukraine.com http://diploms-ukraine.com/meditsinskij-diplom diploms-ukraine.com http://diploms-ukraine.com/svidetelstvo-o-razvode www.diploms-ukraine.com http://https://6landik-diploms.ru www.7arusak-diploms.ru www.8saksx-diploms.ru http://https://8arusak-diploms24.ru www.9saksx-diploms24.ru www.4russkiy365-diploms.ru www.5gruppa365-diploms.ru www.6rudik-diploms365.ru купить диплом училища купить диплом харьков купить диплом кривой рог купить диплом ужгород купить аттестат школы
купить аттестат
купить диплом в челябинске купить диплом в благовещенске купить диплом киев купить диплом в волгограде купить диплом кандидата наук купить диплом о высшем образовании реестр купить диплом провизора купить диплом университета купить диплом в туапсе купить диплом с занесением в реестр купить диплом педагога купить диплом альчевск купить диплом в черногорске купить диплом дизайнера купить диплом учителя купить диплом фельдшера купить диплом в набережных челнах купить диплом в старом осколе купить диплом в заречном купить диплом в ишимбае купить диплом в омске купить диплом в санкт-петербурге купить диплом в сургуте купить диплом кировоград купить диплом менеджера купить диплом в екатеринбурге купить диплом в саратове купить диплом в нижнем новгороде купить диплом инженера механика купить диплом в нижнем новгороде купить диплом тренера купить диплом ивано-франковск купить диплом в перми купить диплом в череповце купить диплом фитнес инструктора купить диплом в белогорске купить диплом в каменске-шахтинском купить диплом учителя купить свидетельство о разводе купить диплом в томске купить диплом специалиста купить диплом воспитателя купить диплом в воронеже купить диплом экономиста купить диплом энергетика купить диплом в буйнакске купить диплом медсестры купить диплом массажиста купить диплом кривой рог купить диплом в томске купить диплом бурильщика купить диплом механика купить диплом железнодорожника купить диплом менеджера купить диплом медсестры купить диплом с занесением в реестр купить диплом высшем образовании занесением реестр купить диплом училища купить диплом в нижним тагиле купить диплом в калуге купить диплом парикмахера купить диплом в минеральных водах купить диплом сварщика купить диплом в махачкале купить диплом с внесением в реестр купить диплом в архангельске купить диплом экономиста купить аттестат за классов купить диплом средне техническое купить диплом керчь купить диплом николаев купить диплом массажиста купить диплом штукатура купить диплом автомеханика купить диплом в ставрополе купить диплом хмельницкий купить диплом энергетика купить диплом в ярославле купить диплом в белгороде купить диплом сварщика купить свидетельство о рождении купить диплом в рязани купить диплом винница купить диплом в липецке купить диплом в туле купить диплом программиста купить диплом сантехника купить диплом в оренбурге купить диплом днепропетровск купить диплом в балашихе купить диплом в самаре купить диплом в ростове-на-дону купить диплом в серове купить диплом средне специального образования купить диплом фармацевта купить диплом в севастополе купить диплом полтава купить диплом биолога купить диплом в казани купить диплом в смоленске купить диплом в сочи купить диплом реестром москве купить диплом житомир купить диплом в чите купить диплом в краснодаре купить диплом александрия купить аттестат купить диплом в саранске купить диплом в курске https://premialnie-diplomansy.com/отзывы-клиентов/ premialnie-diplomansy.com http://https://premialnie-diplomansy.com/инженер-строитель/ https://originality-diploman.com/свидетельство-о-разводе originality-diploman.com http://https://originality-diploman.com/купить-диплом-юриста http://https://originality-diploman.com/купить-диплом-медсестры https://originality-diploman.com/купить-диплом-врача http://https://originality-diploman.com/купить-диплом-института-в-рф https://originality-diploman.com/купить-диплом-красноярск http://https://originality-diploman.com/купить-диплом-ссср premialnie-diplomansy.com www.originality-diploman.com http://https://premialnie-diplomansy.com/купить-диплом-пермь/ www.premialnie-diplomansy.com premialnie-diplomansy.com www.premialnie-diplomansy.com premialnie-diplomansy.com www.premialnie-diplomansy.com https://originality-diploman.com/купить-диплом-москва
купить диплом о среднем специальном
https://originality-diplomas.com/
купить аттестат
rudiplomista24.com
купить диплом о среднем образовании
www.lands-diplom.com
купить диплом университета
http://https://gosznac-diplom24.com/ aurus-diplom.com
купить диплом о среднем образовании
originality-diplomans.com
купить диплом врача
http://https://rudiplomis24.com/
купить аттестат за 9 класс
diploma-asx.com
купить дипломы о высшем
gosznac-diplom24.com www.aurus-diplom.com
купить свидетельство о рождении
originality-diplomas.com
купить диплом кандидата наук
https://rudiplomista24.com/
купить диплом ссср
www.diploma-asx.com
купить свидетельство о рождении
www.gosznac-diplom24.com www.diploman-doci.com
купить диплом фармацевта
originality-diplomans.com
где купить диплом
rudiplomista24.com
купить дипломы о высшем
diploma-asx.com
купить диплом колледжа
www.gosznac-diplom24.com www.diploman-doci.com
купить диплом техникума
http://diplomsagroups.com/kupit-diplom-v-gorode/bryansk.html https://diploma-asx.com/ www.originality-diploman24.com Купить диплом Екатеринбург radiploms.com https://radiplom.com/kupit-diplom-stomatologa radiplomy.com www.radiplomas.com https://frees-diplom.com/diplom-feldshera купить свидетельство о рождении Купить диплом СССР Купить диплом в Москве Купить диплом университета Купить диплом о среднем образовании bitcoin casinos for usa players www.russiany-diplomix.com www.russiany-diplomx.com http://https://russiany-diplomana.com/diplom-o-srednem-tehnicheskom-obrazovanii https://russiany-diploman.com/kupit-diplom-novosibirsk https://russiany-diplomany.com/kupit-diplom-farmatsevta http://https://russiany-diplomas.com/kupit-diplom-novosibirsk купить диплом о среднем образовании Купить аттестат 11 классов Купить диплом в казани Купить диплом Воронеж Купить аттестат 11 классов купить диплом в Красноярске rudiplomirovany.com www.rudiplomirovans.com http://http://rudiplomirovana.com/аттестат-11-классов www.rudiplomisty.com http://http://rudiplomis.com/купить-диплом-омск www.rudiplomista.com www.diploman-doci.com rudiplomista24.com http://http://rudiplomis24.com/диплом-колледжа http://rudiplomirovan.com/свидетельства-и-справки/свидетельство-о-разводе http://http://ru-diplomirovanie.com/купить-диплом-томск www.ru-diplomirovan.com Купить свидетельство о разводе Купить диплом Екатеринбург Купить диплом Екатеринбург Купить аттестат 11 классов Купить диплом в Краснодаре Купить диплом в СПБ Купить диплом строителя купить диплом в екатеринбурге Купить диплом Воронеж Купить диплом Москва Купить диплом техникума Купить диплом для иностранцев Купить диплом колледжа https://diploman-doci.com/diplom-kandidata-nauk lands-diplomy.com купить диплом университета купить аттестат https://ru-diplomirovans.com/аттестат-11-классов www.ru-diplomirovana.com ru-diplomirovany.com ru-diplomirovanay.com https://ru-diplomirovannie.com/купить-диплом-томск https://gosznac-diplomy.com/kupit-diplom-v-krasnodare Купить диплом с реестром Купить диплом Казань Купить диплом врача Купить диплом в СПБ Купить аттестат за 9 классов Купить диплом Екатеринбург www.diplomsagroups.com купить диплом в хабаровске deep nudify www.i-medic.com.ua http://https://renault-club.kiev.ua/germetik-dlya-avto-zahist-ta-doglyad-za-vashym-avtomobilem tehnoprice.in.ua http://https://lifeinvest.com.ua/kley-dlya-far https://warfare.com.ua/kupity-germetik-dlya-far-gid-pokuptsya www.05161.com.ua http://https://brightwallpapers.com.ua/butilovyy-germetik-dlya-far http://http://3dlevsha.com.ua/kupit-germetik-avtomobilnyy https://abank.com.ua/chernyy-germetik-dlya-far abshop.com.ua http://https://alicegood.com.ua/linzy-v-faru artflo.com.ua www.atlantic-club.com.ua http://https://atelierdesdelices.com.ua/sekrety-vyboru-idealnyh-led-linz-dlya-vashoho-avto www.510.com.ua www.autostill.com.ua https://autodoctor.com.ua/led-linzi-v-fari-de-kupiti-yak-vibrati-vstanoviti-dlya-krashchogo-osvitlennya-vashogo-avto http://babyphotostar.com.ua/linzi-v-fari-vibir-kupivlya-i-vstanovlennya https://bagit.com.ua/linzi-v-faru-vibir-kupivlya-i-vstanovlennya bagstore.com.ua befirst.com.ua https://bike-drive.com.ua/perevagi-led-far-chomu-varto-pereyti-na-novitnye-osvitlennya http://billiard-classic.com.ua/yak-vybraty-ta-kupyty-pnevmostepler-porady-ta-rekomendaciyi ch-z.com.ua www.bestpeople.com.ua www.daicond.com.ua delavore.com.ua https://jiraf.com.ua/stekla-far-yak-pokrashchyty-zovnishniy-vyglyad-vashogo-avto www.itware.com.ua http://http://logotypes.com.ua/osvitlennya-yak-klyuch-do-bezpeki-yak-vazhlyvi-linzi-dlya-far http://https://naduvnie-lodki.com.ua/jak-vibrati-idealni-stekla-far-dlya-vashogo-avto-poradi-vid-ekspertiv www.nagrevayka.com.ua http://https://repetitory.com.ua/chomu-yakisni-stekla-far-vazhlivi-dlya-vashogo-avtomobilya www.optimapharm.com.ua http://https://rockradio.com.ua/korpusy-dlya-far-vid-klasyky-do-suchasnykh-trendiv www.renenergy.com.ua shop4me.in.ua http://https://tops.net.ua/vibir-linz-dlya-far-osnovni-kriterii-ta-rekomendacii http://https://comfortdeluxe.com.ua/linzi-v-avtomobilnih-farah-vazhlivist-i-vpliv-na-yakist-osvitlennya www.companion.com.ua http://http://vlada.dp.ua/ekspluataciyni-harakteristiki-ta-znosostiikist-polikarbonatnih-ta-sklyanih-stekol-far www.tennis-club.kiev.ua metabo-partner.com.ua hr.com.ua www.dvernoyolimp.org.ua http://i-medic.com.ua/naykrashche-sklo-dlya-far-yak-obraty-dlya-vashogo-avto https://renault-club.kiev.ua/steklo-dlya-far-yak-obraty-vstanovyty-ta-doglyadat www.tehnoprice.in.ua https://lifeinvest.com.ua/yak-vybraty-korpus-fary-dlya-vashogo-avtomobilya-porady-ta-rekomendaciyi http://daicond.com.ua/yak-doglyadaty-za-sklom-dlya-far-porady-ta-sekrety 05161.com.ua http://https://brightwallpapers.com.ua/sklo-far-dlya-staryh-avtomobiliv-de-znayty-i-yak-pidibraty http://3dlevsha.com.ua/yak-bi-led-24v-linzi-pidvyshchuyut-bezpeku-na-dorozi-doslidzhennya-ta-fakty http://https://abank.com.ua/zamina-skla-far-na-mazda-6-gh-pokrokove-kerivnytstvo svetiteni.com.ua www.startupline.com.ua http://http://unasoft.com.ua/termostiikyy-kley-dlya-stekla-far-yak-vybraty-naykrashchyy-variant https://apartments.dp.ua/bi-led-24v-linzi-v-fary-yak-vony-pratsyuyut-i-chomu-vony-efektyvni www.sun-shop.com.ua http://https://ital-parts.com.ua/yak-vibraty-idealni-bi-led-linzi-24v-dlya-vashogo-avto-poradi-ta-rekomendatsiyi http://http://corpnews.com.ua/led-lampy-z-linzamy-innovatsiyi-u-sviti-avtomobilnogo-osvitlennya www.brides.com.ua www.grim.in.ua www.mega-m.com.ua www.hr.com.ua https://gazeta.sebastopol.ua/chomu-obraty-bi-led-linzy-3-dyuyma-dlya-vashogo-avto https://interpen.com.ua/bi-led-linzy-3-dyuyma-pokrashchennya-osvitlennya bookidoc.com.ua vps.com.ua https://dvernoyolimp.org.ua/linzy-dlya-far-porady-z-vyboru-ta-vstanovlennya www.interpen.com.ua fairspin blockchain casino 5 popular bitcoin casino blockchain online casino online australian casinos that accept neosurf gold ira companies – gold ira companies compared https://05161.com.ua/yak-pidvishchiti-bezpeku-na-dorozi-za-dopomogoyu-yakisnih-linz-u-farah https://cancer.com.ua/yak-vibrati-yakisne-sklo-korpus-ta-inshi-skladovi-dlya-far https://dvernoyolimp.org.ua/vidguki-pro-sklo-dlya-far-shcho-kazhut-koristuvachi https://smotri.com.ua/perevagi-ta-nedoliki-riznih-tipiv-led-linz https://05161.com.ua/materiali-korpusiv-far-shcho-obrati-dlya-vashogo-avto https://vps.com.ua/oglyad-novitnih-tehnologiy-u-virobnitstvi-skla-dlya-far https://diamond-gallery.in.ua/perevagi-zamini-skla-far-pokrashchennya-vidimosti-ta-bezpeki https://cancer.com.ua/vse-shcho-potribno-znati-pro-sklo-korpusi-ta-skladovi-fari-avtomobilya https://warfare.com.ua/vartist-bi-led-linz-shcho-vplivaie-na-cinu-i-yak-znayti-optimalniy-variant https://firma.com.ua/perevagi-kupivli-led-linz-pokrashchennya-osvitlennya-ta-stylyu https://slovakia.kiev.ua/poshireni-problemi-zi-sklom-far-ta-yih-virishennya https://eterna.in.ua/yak-vibrati-chaynik-dlya-himichnogo-poliruvannya-avtomobilnih-far-poradi-vid-ekspertiv https://geliosfireworks.com.ua/idealne-osvitlennya-yak-obrati-optimalni-bi-led-linzi https://eebc.net.ua/idealne-osvitlennya-yak-obrati-optimalni-bi-led-linzi https://omurp.org.ua/oglyad-populyarnih-brendiv-skla-ta-korpusiv-dlya-far https://vwclub.org.ua/novitni-tehnologiyi-osvitlennya-vibor-bi-led-linz-dlya-vashogo-avto https://thecrimea.org.ua/perevagi-vikoristannya-bi-led-linz-u-farah-avtomobilya https://510.com.ua/chomu-vazhlivo-zaminyuvati-poshkodzene-sklo-far-poradi-vid-ekspertiv https://lifeinvest.com.ua/oglyad-naykrashchih-bi-led-linz-u-2024-roci https://alicegood.com.ua/remont-far-zamina-skla-korpusu-ta-inshih-skladovih https://atelierdesdelices.com.ua/top-10-virobnikiv-skla-dlya-far-avtomobiliv-u-2024-roci https://atlantic-club.com.ua/yak-obrati-khoroshogo-ryepyetitora-z-angliyskoyi-movi-klyuchovi-aspyekti-viboru https://tehnoprice.in.ua/trivalist-zhittya-bi-led-linz-shcho-ochikuvati https://artflo.com.ua/yak-vibrati-naykrashche-sklo-dlya-far-vashogo-avtomobilya https://i-medic.com.ua/bi-led-linzi-tehnologiyi-maybutnogo-dlya-suchasnih-avtomobiliv https://renault-club.kiev.ua/yak-bi-led-linzi-pokrashuyut-vidimist-na-dorozi https://elektromotor.net.ua/butiloviy-germetik-dlya-far-vse-scho-vam-potribno-znati https://cpaday.com.ua/yak-zakhistiti-steklo-fari-vid-vologi-i-pilu-za-dopomogoyu-germetika https://ameli-studio.com.ua/vidguki-ta-reytingi-yakiy-germetik-dlya-far-varto-kupiti https://blooms.com.ua/perevagi-bi-led-linz-chomu-varto-pereyti-na-novi-tehnologiyi-osvitlennya https://dnmagazine.com.ua/yak-vibrati-naykrashchiy-germetik-dlya-far-vashogo-avtomobilya https://cocoshop.com.ua/novitni-rishennya-v-oblasti-stekol-dlya-far-yak-obrati-pravilno https://salle.com.ua/vidnovlennya-stekla-fari-vse-scho-vam-potribno-znati https://reklamist.com.ua/zahist-stekla-fari-avto-vid-pogodnih-umov-i-vplivu-vid-shlyahu https://synergize.com.ua/yak-obrati-bi-led-linzi-dlya-far-poradi-ekspertiv https://brandwatches.com.ua/germetik-dlya-far-navishcho-vin-potriben-i-yak-pravilno-vikoristovuvati https://abshop.com.ua/perevagi-yakisnogo-skla-korpusiv-ta-skladovih-far-dlya-vashogo-avto https://tyres.com.ua/yak-led-linzi-pokrashchuyut-vidimist-na-dorozi https://tm-marmelad.com.ua/perevagi-bi-led-linz-dlya-vashogo-avtomobilya-chomu-varto-pereyti-na-novu-tehnologiyu https://pravoslavnews.com.ua/top-5-stekol-dlya-far-avtomobilya-porivnyannya-i-vidguki https://salonsharm.com.ua/yak-zaminiti-steklo-fari-na-avtomobili-samostiyno-pokrokova-instruktsiya https://tayger.com.ua/perevagi-led-linz-chomu-varto-zrobiti-vibir-na-korist-novitnoyi-tehnologiyi
накрутка поведенческих факторов накрутка пф купить https://keepstyle.com.ua/kak-pravilno-ispolzovat-germetik-dlya-far-avto https://aurus-diploms.com/geography/kupit-diplom-v-nizhnem-tagile.html купить диплом в курске купить свидетельство о рождении купить диплом переводчика https://ru-diplomirovans.com/школьный-аттестат купить диплом в красноярске купить диплом о среднем специальном https://diploman-dok.com/kupit-diplom-habarovsk https://russiany-diplomans.com/diplom-sssr https://radiplomy.com/kupit-diplom-s-reestrom купить диплом института https://diplomix-asx.com/kupit-diplom-sssr https://rusd-diploms.com/diplom-medsestryi.html куплю диплом высшего образования https://try-kolduna.com.ua/where-to-buy-bilead-lens.html https://silvestry.com.ua/top-5-powerful-bilead.html http://apartments.dp.ua/optima-bilead-review.html http://companion.com.ua/laser-bilead-future.html http://slovakia.kiev.ua/h7-bilead-lens-guide.html https://join.com.ua/h4-bilead-lens-guide.html https://kfek.org.ua/focus2-bilead-install.html https://lift-load.com.ua/dual-chip-bilead-lens.html http://davinci-design.com.ua/bolt-mount-bilead.html http://funhost.org.ua/bilead-test-drive.html http://comfortdeluxe.com.ua/bilead-selection-criteria.html http://shopsecret.com.ua/bilead-principles.html https://firma.com.ua/bilead-lens-revolution.html http://sun-shop.com.ua/bilead-lens-price-comparison.html https://para-dise.com.ua/bilead-lens-guide.html https://geliosfireworks.com.ua/bilead-installation-guide.html https://tops.net.ua/bilead-buyers-guide.html https://degustator.net.ua/bilead-2024-review.html https://oncology.com.ua/bilead-2022-rating.html https://shop4me.in.ua/bestselling-bilead-2023.html https://crazy-professor.com.ua/aozoom-bilead-review.html http://reklama-sev.com.ua/angel-eyes-bilead.html http://gollos.com.ua/angel-eyes-bilead.html http://jokes.com.ua/ams-bilead-review.html https://greenap.com.ua/adaptive-bilead-future.html http://kvn-tehno.com.ua/3-inch-bilead-market-review.html https://salesup.in.ua/3-inch-bilead-lens-guide.html http://compromat.in.ua/2-5-inch-bilead-lens-guide.html http://vlada.dp.ua/24v-bilead-truck.html