PyQt5: QTabWidget

marzo 22, 2019 Lascia un commento

Torna all’indice degli appunti

QTabWidget

Il TabWidget mette a disposizione un contenitore con pagine multiple, selezionabili tramite tabs.
Ogni pagina può contenere un widget, o un ulteriore contenitore di widgets.
La testata del TabWidget altri non è che il TabBar, ottenibile
con il metodo tabBar di QTabWidget.

Per prima cosa si istanzia l’oggetto QTabWidget, poi è possibile aggiungere tab con i due seguenti metodi:
addTab(child, label): aggiunge un tab nell’ordine in cui viene inserito, uno dopo l’altro;
insertTab(index, child, label): aggiunge un tab all’indice predefinito, slittando tutti gli altri in avanti.

è possibile assegnare anche un oggetto QIcon al tab in fase di aggiunta, nella seguente modalità:

addTab(child, icon, label);
insertTab(index, child, icon, label);

Un esempio molto semplice di TabWidget può essere:

import sys
from PyQt5.QtWidgets import (QMainWindow, QApplication, QPushButton, QWidget,
                             QTabWidget, QVBoxLayout)
from PyQt5.QtGui import QIcon


class MainWindow(QMainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.setWindowTitle("QTabWidget Example")
        self.central_widget = TableWidget(self)
        self.setCentralWidget(self.central_widget)
        self.resize(400, 100)


class TableWidget(QWidget):
    def __init__(self, parent):
        super(QWidget, self).__init__(parent)
        self.layout = QVBoxLayout(self)

        # Inizializzo il TabWidget
        self.tab_widget = QTabWidget()
        self.tab1 = QWidget()  # Creo un primo widget generico
        self.tab2 = QWidget()  # Creo un secondo widget generico
        self.tab_widget.resize(300, 200)

        # Aggiungo i tabs al TabWidget
        self.tab_widget.addTab(self.tab1, QIcon("Italy.png"), "Ialy")
        self.tab_widget.addTab(self.tab2, QIcon("France.png"), "France")

        # Create first tab
        layout1 = QVBoxLayout(self)
        self.pushButton1 = QPushButton("button 1")
        layout1.addWidget(self.pushButton1)
        self.tab1.setLayout(layout1)  # aggiungo il layout al widget generico

        # Create second tab
        layout2 = QVBoxLayout(self)
        self.pushButton2 = QPushButton("button 2")
        layout2.addWidget(self.pushButton2)
        self.tab2.setLayout(layout2)  # aggiungo il layout al widget generico

        # Add tabs to widget
        self.layout.addWidget(self.tab_widget)
        self.setLayout(self.layout)

        self.pushButton1.clicked.connect(self.on_button)
        self.pushButton2.clicked.connect(self.on_button)

    def on_button(self):
        button = self.sender()
        print("Clicked on <%s>" % button.text())


if __name__ == '__main__':
    app = QApplication(sys.argv)
    main_window = MainWindow()
    main_window.show()
    sys.exit(app.exec_())

Vediamo i metodi più importanti di QTabWidget:

Aggiunta e rimozione tabs

Come già anticipato possiamo aggiungere tab con il metodo addTab(child, label):

>>> from PyQt5.QtWidgets import *
>>> app = QApplication(sys.argv)
>>> tabwidget = QTabWidget()
>>> tab1 = QWidget()
>>> tabwidget.addTab(tab1, "tab1")
0
>>> tab0 = QWidget()
>>> tabwidget.insertTab(0, tab0, "tab0")
0

L’int ritornato è la posizione di inserimento del tab.

Per sapere quanti tab ci sono in un TabWidget si utilizza il metodo count

>>> tabwidget.count()
2

Nota:

Come anticipato, è possibile risalire al componente principale del tabwidget, il tabbar appunto:

>>> tabwidget.tabBar()
<PyQt5.QtWidgets.QTabBar object at 0x0396D5D0>
>>> tabbar = tabwidget.tabBar()
>>> tabbar.count()
2
>>> tabbar.currentIndex()
1

Per rimuovere un tab si utilizza il metodo removeTab(index), dove index è ovviamente l’indice della posizione del tab da rimuovere.

>>> tabwidget.removeTab(0)
>>> tabwidget.count()
1

Per rimuovere tutti i tabs in un colpo solo si utilizza il metodo clear

Testo, Icona e Tooltip

Il nome di un tab è modificabile anche dopo l’avvenuta aggiunta sul tabwidget; si utilizza il metodo setTabText(index, text).
Allo stesso modo è possibile aggiungere un’icona con il metodo setTabIcon(index, icon) e un tooltip con il metodo
setTabToolTip(index, tooltip_text)

>>> tabwidget.setTabText(0, "New tab 1")
>>> from PyQt5.QtGui import QIcon
>>> tabwidget.setTabIcon(0, QIcon("icon.png"))
>>> tabwidget.setTabToolTip(0, "Tab 1 tooltip text")

Tutte queste cose sono rintracciabili con i metodi tabIcon(index) per risalire all’Icona assegnata al tab di indice index,
tabToolTip(index) per risalire al tooltip del tab e tabText(index) per il testo:

>>> tabwidget.tabIcon(0)
<PyQt5.QtGui.QIcon object at 0x0396D3F0>
>>> tabwidget.tabToolTip(0)
'Tab 1 tooltip text'
>>> tabwidget.tabText(0)
'New tab 1'

Con il metodo widget è possibile risalire al widget appartenente a quel tab di indice index es:

>>> class MyQWidget(QWidget):
...     def __init__(self, name):
...         super(MyQWidget, self).__init__()
...         self.name = name
...         
>>> mytab = MyQWidget("MyTab 1")
>>> tabwidget.addTab(mytab, "my tab 1")
1
>>> tabwidget.widget(1).name
'MyTab 1'

Vediamo alcune cose di tipo Grafico

AutoHide

Se settiamo il metodo setAutoHide a True, qualora il tabwidget avesse meno di 2 tab, la tabbar scomparirebbe automaticamente.

...
        # Aggiungo i tabs al TabWidget
        self.tab_widget.addTab(self.tab1, QIcon("Italy.png"), "Ialy")
        # self.tab_widget.addTab(self.tab2, QIcon("France.png"), "France")
...

Se commentiamo l’aggiunta del secondo tab, il risultato sarà:

Tab chiudibili

Se vogliamo che i tab siano chiudibili, bisogna settare a True il metodo setTabsClosable.
Apparirà così un pulsante di chiusura nel tab.
Cliccando su tale pulsante verrà emesso un segnale tabCloseRequested da collegare all’apposito slot.

...
        # Aggiungo i tabs al TabWidget
        self.tab_widget.addTab(self.tab1, QIcon("Italy.png"), "Ialy")
        self.tab_widget.addTab(self.tab2, QIcon("France.png"), "France")
        self.tab_widget.setTabsClosable(True)
        self.tab_widget.tabCloseRequested[int].connect(self.on_tab_close)
...
    def on_tab_close(self, int):
        print("Tab <%s> Closed!" % int)
        self.tab_widget.removeTab(int)
...

Tab Disattivabili

E’ sufficiente utilizzare il metodo setTabEnabled(index, bool) ad es:

...
        self.tab_widget.setTabEnabled(0, False)
...

risulterà in:

L’informazione relativa al tab sarà ottenibile tramite il metodo isTabEnabled(index):

>>> tabwidget.setTabEnabled(0, False)
>>> tabwidget.isTabEnabled(0)
False

Shift dei Tab

Se vogliamo che i tab possano muoversi per scambiarsi ad esempio di posto, possiamo utilizzare il metodo setMovable(bool):

...
        # self.tab_widget.setTabEnabled(0, False)
        self.tab_widget.setMovable(True)
...

Ovviamente lo shift, aggiornerà anche gli indici nella tabbar.

Quando setMovable è attivo, possiamo anche spostare le tab in differenti posizioni. Di Default vengono posizionate in alto (QTabWidget.North), ma è possibile utilizzare anche altre modalità, usando i valori
QTabWidget.South, QTabWidget.East, QTabWidget.West:

...
        self.tab_widget.setMovable(True)
        self.tab_widget.setTabPosition(QTabWidget.West)
...

Segnali

Abbiamo già parlato del segnale tabCloseRequested, vediamo gli altri.

currentChanged(index): segnale emesso quando si cambia tab;
tabBarClicked(index): segnale emesso quando si clicca sulla tabbar;
tabBarDoubleClicked(index): segnale emesso quando si doppio-clicca sulla tabbar;

Non resta che connettere tali segnali agli slot dedicati:

...
        self.tab_widget.tabCloseRequested[int].connect(self.on_tab_close)
        self.tab_widget.currentChanged[int].connect(self.on_tab_change)
        self.tab_widget.tabBarClicked[int].connect(self.on_tab_click)
        self.tab_widget.tabBarDoubleClicked[int].connect(self.on_tab_2click)

    def on_tab_close(self, int):
        print("Tab <%s> Closed!" % int)
        self.tab_widget.removeTab(int)

    def on_tab_change(self, int):
        print("Now you are in Tab <%s>!" % int)

    def on_tab_click(self, int):
        print("You have clicked on Tab <%s>!" % int)

    def on_tab_2click(self, int):
        print("You have double-clicked on Tab <%s>!" % int)
...

Torna all’indice degli appunti

Annunci
Categorie:PyQt5, python Tag:,

PyQt5: QGroupBox

marzo 21, 2019 Lascia un commento

Torna all’indice degli appunti

QCheckBox

Il GroupBox è un contenitore con titolo e bordo, che permette di raggruppare elementi.
Siccome il groupbox può ospitare un widget soltanto, volendo raggruppare più widget (es. dei radio button), è consigliabile utilizzare un BoxLayout. Il GroupBox conterrà quindi il BoxLayout,
che a sua volta conterrà i widget multipli.

Es.:

from PyQt5.QtWidgets import QMainWindow
from PyQt5.QtWidgets import QWidget, QApplication, QBoxLayout, QRadioButton
from PyQt5.QtWidgets import QGroupBox, QVBoxLayout
import sys


class MainWindow(QMainWindow):
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setWindowTitle("QGroupBox Example")
        self.central_widget = FormWidget(self)
        self.setCentralWidget(self.central_widget)
        self.resize(300, 100)


class FormWidget(QWidget):
    def __init__(self, parent):
        super(FormWidget, self).__init__(parent)
        groupbox = QGroupBox("Nations")
        external_box = QBoxLayout(QBoxLayout.TopToBottom)
        external_box.addWidget(groupbox, 0)
        internal_box = QVBoxLayout()
        radiobutton1 = QRadioButton("Italy", self)
        radiobutton1.setChecked(True)
        radiobutton2 = QRadioButton("France", self)
        internal_box.addWidget(radiobutton1, 0)
        internal_box.addWidget(radiobutton2, 0)
        groupbox.setLayout(internal_box)
        self.setLayout(external_box)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    main_window = MainWindow()
    main_window.show()
    sys.exit(app.exec_())

Un metodo interessante è setCheckable(bool) che setta la costante checkable a True o False.
Se settiamo checkable a True, al posto della label del groupbox, apparirà una checkbox, che ci permetterà di abilitare o disabilitare i widget del groupbox stesso:

...
        groupbox.setCheckable(True)
...

Per sapere se il groupbox è checkable, si utilizza il metodo isCheckable:

>>> from PyQt5.QtWidgets import QApplication, QGroupBox
>>> app = QApplication([])
>>> groupbox = QGroupBox("Nations")
>>> groupbox.setCheckable(True)
>>> groupbox.isCheckable()
True

Per settare lo stato di checkable al groupbox, si usa il metodo setChecked(bool).
Settandolo a False, il groupbox sarà disattivato fino a chè non clicchiamo la checkbox del titolo.

Per sapere in quale stato (checked: True/False) si trova il groupbox si usa il metodo isChecked.

>>> groupbox.setChecked(False)
>>> groupbox.isChecked()
False

Allineamento widget

L’allineamento del widget all’interno del groupbox è modificabile con il metodo setAlignment(alignment), dove alignment può assumere i seguenti valori: Qt.AlignLeft, Qt.AlignRight, Qt.AlignHCenter.
Avendo utilizzato un BoxLayout all’interno del GrouBox, è necessario specificarne l’allineamento:

...
from PyQt5.QtCore import Qt
...
        internal_box = QVBoxLayout()
        internal_box.setAlignment(Qt.AlignRight)
        ...
        groupbox.setLayout(internal_box)
        groupbox.setCheckable(True)
        groupbox.setChecked(False)
        groupbox.setAlignment(Qt.AlignRight)
        self.setLayout(external_box)
...

Segnali

Esclusi i segnali dei widget compresi nel group box, va evidenziato clicked.
Ogni volta che clicchiamo sulla checkbox del groupbox, viene emesso un segnale clicked, che possiamo connettere ad uno slot dedicato:

...

        groupbox.clicked.connect(self.on_groupbox)

    def on_groupbox(self):
        groupbox = self.sender()
        title = groupbox.title()
        if groupbox.isChecked():
            print("<%s> group box ENABLED!" % title)
        else:
            print("<%s> group box DISABLED!" % title)
...

Utilizzare sender permette di utilizzare un unico slot per il segnale clicked.

GroupBox multipli

E’ infatti possibile utilizzare più groupBox come nel sequente esempio:

from PyQt5.QtWidgets import QMainWindow
from PyQt5.QtWidgets import QWidget, QApplication, QBoxLayout, QRadioButton
from PyQt5.QtWidgets import QGroupBox, QVBoxLayout
import sys


class MainWindow(QMainWindow):
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setWindowTitle("QGroupBox Example")
        self.central_widget = FormWidget(self)
        self.setCentralWidget(self.central_widget)
        self.resize(300, 100)


class FormWidget(QWidget):
    def __init__(self, parent):
        super(FormWidget, self).__init__(parent)
        external_box = QBoxLayout(QBoxLayout.TopToBottom)
        groupbox = QGroupBox("Nations")
        external_box.addWidget(groupbox, 0)
        groupbox.setCheckable(True)
        groupbox.setChecked(False)
        internal_box = QVBoxLayout()
        groupbox.setLayout(internal_box)
        radiobutton1 = QRadioButton("Italy", self)
        radiobutton1.setChecked(True)
        radiobutton2 = QRadioButton("France", self)
        internal_box.addWidget(radiobutton1, 0)
        internal_box.addWidget(radiobutton2, 0)

        groupbox2 = QGroupBox("Cities")
        external_box.addWidget(groupbox2, 0)
        groupbox2.setCheckable(True)
        groupbox2.setChecked(False)
        internal_box2 = QVBoxLayout()
        groupbox2.setLayout(internal_box2)
        radiobutton3 = QRadioButton("Bologna", self)
        radiobutton3.setChecked(True)
        radiobutton4 = QRadioButton("Milano", self)
        internal_box2.addWidget(radiobutton3, 0)
        internal_box2.addWidget(radiobutton4, 0)

        self.setLayout(external_box)

        groupbox.clicked.connect(self.on_groupbox)
        groupbox2.clicked.connect(self.on_groupbox)

    def on_groupbox(self):
        groupbox = self.sender()
        title = groupbox.title()
        if groupbox.isChecked():
            print("<%s> group box ENABLED!" % title)
            print("Available options:")
            for radiobox in [w for w in groupbox.children()
                             if isinstance(w, QRadioButton)]:
                print(radiobox.text())
        else:
            print("<%s> group box DISABLED!" % title)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    main_window = MainWindow()
    main_window.show()
    sys.exit(app.exec_())

Quando le checkbox dei groupbox saranno selezionate, potremo ricavare l’oggetto QGroupBox di riferimento, tramite il metodo sender di QWidget e di conseguenza gli attributi necessari, come ad esempio i radiobutton utilizzati, utilizzando il metodo children

<Nations> group box ENABLED!
Available options:
Italy
France
<Nations> group box DISABLED!
<Cities> group box ENABLED!
Available options:
Bologna
Milano
<Cities> group box DISABLED!

Torna all’indice degli appunti

Categorie:PyQt5, python Tag:,

PyQt5: QComboBox

marzo 21, 2019 Lascia un commento

Torna all’indice degli appunti

QComboBox

Il combobox è un widget composto da un bottone e da una popup list.
Per creare un combobox si utilizza il costruttore QComboBox.
Per aggiungere elementi multipli al combobox si utilizza il metodo addItems(list), oppure addItem(str) per
aggiungere un solo elemento. Con il metodo count contiamo gli elementi della popup list:

>>> from PyQt5.QtWidgets import QApplication, QComboBox
>>> app = QApplication([])
>>> combobox = QComboBox()
>>> combobox.addItems(['Italy', 'France'])
>>> combobox.addItem('Spain')
>>> combobox.count()
3

Di default l’indice all’interno della popup list sarà settato a 0.
Per sapere quale indice è settato sulla popup list, si utilizza il metodo currentIndex.
Per modificare l’indice, si utilizza il metodo setCurrentIndex(int) e per leggere il testo dell’indice corrente,
si utilizza il metodo currentText:

>>> combobox.currentIndex()
0
>>> combobox.setCurrentIndex(1)
>>> combobox.currentIndex()
1
>>> combobox.currentText()
'France'
>>> combobox.setCurrentIndex(2)
>>> combobox.currentText()
'Spain'

Per ottenere il testo di un elemento della lista, si usa il metodo itemText(int), dove int è l’indice che ci interessa.

>>> combobox.itemText(0)
'Italy'

E’ possibile trovare un testo all’interno della popup list con il metodo findText(str).
Tale metodo ritorno l’indice del testo all’interno della lista, se lo trova, altrimenti ritorna -1.

>>> combobox.findText('Germany')
-1
>>> combobox.findText('Spain')
2

Per ottenere la lista di tutti gli elementi della popup list possiamo usare una list comprehension:

>>> items = [combobox.itemText(i) for i in range(combobox.count())]
>>> items
['Italy', 'France', 'Spain']

Per inserire un elemento in una determinata posizione, possiamo usare il metodo insertItem(int, str) dove,
int è l’indice dove verrà inserito il nuovo elemento e str è il nome del nuovo elemento che
apparirà nella popup list. Il nuovo elemento causerà lo slittamento dei successivi.
E’ possibile inserire anche una lista di nuovi elementi, con il metodo insertItems(int, list), con
list, la lista dei nuovi elementi:

>>> combobox.insertItems(1, ['San Marino', 'Andorra'])
>>> [combobox.itemText(i) for i in range(combobox.count())]
['Italy', 'San Marino', 'Andorra', 'France', 'Spain']

oppure

>>> combobox.insertItem(1, 'Germany')
>>> [combobox.itemText(i) for i in range(combobox.count())]
['Italy', 'Germany', 'France', 'Spain']

Per eliminare un elemento si utilizza il metodo removeItem(int), dove int è l’indice
dell’elemento che verrà eliminato

>>> combobox.removeItem(1)
>>> [combobox.itemText(i) for i in range(combobox.count())]
['Italy', 'France', 'Spain']

Visivamente il combobox si presenta così:

from PyQt5.QtWidgets import QMainWindow
from PyQt5.QtWidgets import QWidget, QApplication, QBoxLayout, QComboBox
import sys


class MainWindow(QMainWindow):
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setWindowTitle("QComboBox Example")
        self.central_widget = FormWidget(self)
        self.setCentralWidget(self.central_widget)
        self.resize(300, 100)


class FormWidget(QWidget):
    def __init__(self, parent):
        nations = ['Italy', 'France', 'Spain']
        super(FormWidget, self).__init__(parent)
        layout = QBoxLayout(QBoxLayout.TopToBottom)
        self.combobox = QComboBox()
        self.combobox.addItems(nations)
        layout.addWidget(self.combobox, 0)
        self.setLayout(layout)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    main_window = MainWindow()
    main_window.show()
    sys.exit(app.exec_())

Icone

Se volessimo aggiungere le icone nella popup list, è possibile aggiungere alla combobox, oggetti QIcon invece che semplici stringhe. Infatti i metodi addItem e addItems lo consentono:

from PyQt5.QtWidgets import QMainWindow
from PyQt5.QtWidgets import QWidget, QApplication, QBoxLayout, QComboBox
import sys
from PyQt5.QtGui import QIcon


class MainWindow(QMainWindow):
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setWindowTitle("QComboBox Example")
        self.central_widget = FormWidget(self)
        self.setCentralWidget(self.central_widget)
        self.resize(300, 100)


class FormWidget(QWidget):
    def __init__(self, parent):
        nations = ['Italy', 'France', 'Spain']
        super(FormWidget, self).__init__(parent)
        layout = QBoxLayout(QBoxLayout.TopToBottom)
        italy_icon = QIcon("Italy.png")
        france_icon = QIcon("France.png")
        self.combobox = QComboBox()
        self.combobox.addItem(italy_icon, "Italy")  # aggiungo icona e stringa
        self.combobox.addItem(france_icon, "France")  # aggiungo icona e stringa
        layout.addWidget(self.combobox, 0)
        self.setLayout(layout)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    main_window = MainWindow()
    main_window.show()
    sys.exit(app.exec_())

Segnali

Il segnale che connettiamo è activated(int).
Richiede, come da documentazione, l’id dell’elemento selezionato dalla popup list:

...

        self.combobox.activated[int].connect(self.on_combobox)

    def on_combobox(self, id):
        text = self.combobox.itemText(id)
        print("%s [%s] selected!" % (text, id))

...

Gli altri segnali ereditati sono: currentIndexChanged, currentTextChanged, editTextChanged, highlighted.

Torna all’indice degli appunti

Categorie:PyQt5, python Tag:,

PyQt5: QCheckBox

marzo 20, 2019 Lascia un commento

Torna all’indice degli appunti

QCheckBox

Per creare un checkbox si utilizza il costruttore QCheckBox(label).
Ci sono molte similitudini con gli altri tipi di button, ma a differenza dei radiobutton, in questo caso la scelta di un checkbox, non esclude assolutamente gli altri.

from PyQt5.QtWidgets import QMainWindow
from PyQt5.QtWidgets import QWidget, QApplication, QBoxLayout, QCheckBox
from PyQt5.QtGui import QIcon, QColor, QFont
import sys


class MainWindow(QMainWindow):
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setWindowTitle("QCheckBox Example")
        self.central_widget = FormWidget(self)
        self.setCentralWidget(self.central_widget)
        self.resize(300, 100)


class FormWidget(QWidget):
    def __init__(self, parent):
        super(FormWidget, self).__init__(parent)
        layout = QBoxLayout(QBoxLayout.TopToBottom)
        self.checkbox1 = QCheckBox("Italy", self)
        self.checkbox2 = QCheckBox("France", self)
        layout.addWidget(self.checkbox1, 0)
        layout.addWidget(self.checkbox2, 0)
        self.setLayout(layout)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    main_window = MainWindow()
    main_window.show()
    sys.exit(app.exec_())


E’ possibile settare di default a checked (selezionato) un radiobutton, con il metodo setChecked,
passando come argomento True:

...
        self.checkbox1.setChecked(True)
...

Come per gli altri button, se vogliamo fare il checkbox non sia selezionabile, possiamo utilizzare il metodo setCheckable passando come argomento False:

...
        self.checkbox2.setCheckable(False)
...

Icons

Vale lo stesso discorso fatto per gli altri bottoni: si utilizza un oggetto QIcon e lo si associa al checkbox:

...
from PyQt5.QtGui import QIcon
...
        self.checkbox1.setIcon(QIcon("Italy.png"))
        self.checkbox2.setIcon(QIcon("France.png"))
...

Colore

valgono le regole già viste per gli altri widget, ovvero si utilizzano QPalette e QColor sugli
elementi backgroundRole e foregroundRole del widget interessato:

...
from PyQt5.QtGui import QColor

...
        # background
        bg_color = QColor('Yellow')
        palette = self.radio_button1.palette()
        rb1_background = self.radio_button1.backgroundRole()
        palette.setColor(rb1_background, bg_color)
        fg_color = QColor('Red')
        # foreground
        rb1_foreground = self.radio_button1.foregroundRole()
        palette.setColor(rb1_foreground, fg_color)
        self.radio_button1.setPalette(palette)
        self.radio_button1.setAutoFillBackground(True)
...

Font

Anche la modifica del font non cambia, si utilizza cioè il costruttore QFont nella solita maniera:

...
        # Font
        font = QFont("Lucida", 14, QFont.Bold)
        self.checkbox1.setFont(font)
...

Testo

Il testo può essere settato con il metodo setText anche dopo aver istanziato l’oggetto.
E’ possibile anche utilizzare gli ampersand con il medesimo metodo.
Stesso discorso vale per settare un tooltip tramite metodo setToolTip:

...
        self.checkbox1 = QCheckBox()
        self.checkbox1.setText("&Italy")  # Ampersand
        self.checkbox1.setIcon(QIcon("Italy.png"))
        self.checkbox1.setToolTip("Select Italy")  # Tooltip
...

Stato del CheckBox

Come detto, lo stato del checkbox è settabile tramite metodo setChecked, mentre per ottenere lo stato del checkbox si utilizza il metodo isChecked:

>>> from PyQt5.QtWidgets import QApplication, QCheckBox
>>> app = QApplication([])
>>> checkbox1 = QCheckBox("Italy")
>>> checkbox1.setChecked(True)
>>> checkbox1.isChecked()
True
>>> checkbox1.setChecked(False)
>>> checkbox1.isChecked()
False

il metodo isChecked funziona solo con il checkbox tradizionale, non in caso di tristate.

Tristate

Di default il checkbox può avere due stati, True quando è cliccato, False quando non lo è.
E’ possibile però settare un checkbox in Tristate con il metodo setTristate.
Per sapere se un checkbox è tristate, si usa il metodo isTristate

>>> checkbox1.setTristate(True)
>>> checkbox1.isTristate()
True
...
        self.checkbox1.setTristate(True)
        self.checkbox2.setTristate(True)
...

per controllare lo stato di un checkbox tristate, si usa il metodo checkState:

>>> checkbox1.setTristate(True)
>>> checkbox1.isTristate()
True

Per settare lo stato del tristate, si usa il metodo setCheckState:

>>> checkbox1.setCheckState(2)
>>> checkbox1.checkState()
2

I tre valori da passare a setCheckState sono:

0: checkbox non selezionato, corrisponde al valore Qt.Unchecked;
1: checkbox intermedio, corrisponde al valore Qt.PartiallyChecked;
2: checkbox selezionato, corrisponde al valore Qt.Checked;

...
from PyQt5.QtCore import Qt

...
        self.checkbox1.setCheckState(Qt.PartiallyChecked)        
        self.checkbox2.setCheckState(Qt.Checked)
...

Visivamente l’opzione intermedia (nè True, nè False), si traduce in :

Segnali

Oltre ai segnali ereditati dal QAbstractButton, ovvero:
clicked, pressed, released e toggled, abbiamo stateChanged.

Si connette tale segnale allo slot predisposto ed il gioco è fatto.
Possiamo creare slot ad hoc per ogni checkbox:

...
        self.checkbox1.stateChanged.connect(self.on_checkbox1)
        self.checkbox2.stateChanged.connect(self.on_checkbox2)

    def on_checkbox1(self):
        print("[CB1] State changed to %s!" % self.checkbox1.checkState())

    def on_checkbox2(self):
        print("[CB2] State changed to %s!" % self.checkbox2.checkState())
...

O ne creiamo uno condiviso, al quale passare come argomento il widget:

...
        self.checkbox1.stateChanged.connect(
            lambda: self.on_checkbox(self.checkbox1))
        self.checkbox2.stateChanged.connect(
            lambda: self.on_checkbox(self.checkbox2))

    @staticmethod
    def on_checkbox(checkbox):
        if checkbox.text().lower() == "italy":
            print("[CB1] State changed to %s!" % checkbox.checkState())
        else:
            print("[CB2] State changed to %s!" % checkbox.checkState())
...

BUTTONGROUP

Anche nel caso dei checkbox è possibile legare logicamente i bottoni a buttongroup, come già visto nei
radiobutton.
Ad esempio, associare i checkbox ad un buttongroup permette di attivare l’Exclusive mode grazie al metodo setExclusive.
In questo modo i checkbox si comporteranno come i radiobutton, ovvero la selezione di uno, esclude l’altro.

from PyQt5.QtWidgets import QMainWindow
from PyQt5.QtWidgets import QWidget, QApplication, QBoxLayout, QCheckBox
from PyQt5.QtWidgets import QButtonGroup
import sys


class MainWindow(QMainWindow):
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setWindowTitle("QCheckBox Example")
        self.central_widget = FormWidget(self)
        self.setCentralWidget(self.central_widget)
        self.resize(300, 100)


class FormWidget(QWidget):
    def __init__(self, parent):
        super(FormWidget, self).__init__(parent)
        layout = QBoxLayout(QBoxLayout.TopToBottom)
        self.button_group = QButtonGroup()
        self.button_group.setExclusive(True)
        self.checkbox1 = QCheckBox("Italy", self)
        self.checkbox2 = QCheckBox("France", self)
        self.button_group.addButton(self.checkbox1, 1)
        self.button_group.addButton(self.checkbox2, 2)
        layout.addWidget(self.checkbox1, 0)
        layout.addWidget(self.checkbox2, 0)
        self.setLayout(layout)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    main_window = MainWindow()
    main_window.show()
    sys.exit(app.exec_())

Torna all’indice degli appunti

Categorie:PyQt5, python Tag:,

PyQt5: QRadioButton

marzo 20, 2019 Lascia un commento

Torna all’indice degli appunti

QRadioButton

Per creare i radiobutton si utilizza il costruttore QRadioButton(label).
Quando si hanno più opzioni con i radio button, la scelta di una opzione, escluderà automaticamente le altre.
L’esempio sequente mostra come creare i radio button.

from PyQt5.QtWidgets import QMainWindow
from PyQt5.QtWidgets import QWidget, QApplication, QBoxLayout, QRadioButton
import sys


class MainWindow(QMainWindow):
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setWindowTitle("QRadioButton Example")
        self.central_widget = FormWidget(self)
        self.setCentralWidget(self.central_widget)
        self.resize(300, 100)


class FormWidget(QWidget):
    def __init__(self, parent):
        super(FormWidget, self).__init__(parent)
        layout = QBoxLayout(QBoxLayout.TopToBottom)
        self.radio_button1 = QRadioButton("Italy", self)
        self.radio_button2 = QRadioButton("France", self)
        self.radio_button3 = QRadioButton("Spain", self)
        layout.addWidget(self.radio_button1, 0)
        layout.addWidget(self.radio_button2, 0)
        layout.addWidget(self.radio_button3, 0)
        self.setLayout(layout)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    main_window = MainWindow()
    main_window.show()
    sys.exit(app.exec_())

E’ possibile settare di default a checked (selezionato) un radiobutton, con il metodo setChecked,
passando come argomento True:

...
        self.radio_button1 = QRadioButton("Italy", self)
        self.radio_button2 = QRadioButton("France", self)
        self.radio_button3 = QRadioButton("Spain", self)
        self.radio_button2.setChecked(True)
...

Se vogliamo fare in modo che una delle opzioni, non sia selezionabile, possiamo utilizzare il metodo setCheckable
passando come argomento False:

...
        self.radio_button1 = QRadioButton("Italy", self)
        self.radio_button2 = QRadioButton("France", self)
        self.radio_button3 = QRadioButton("Spain", self)
        self.radio_button2.setChecked(True)
        self.radio_button3.setCheckable(False)
...

Icons

Per inserire una icona a fianco del radio button, si utilizza lo stesso procedimento utilizzato per il QPushButton.
Si crea quindi un’oggetto QIcon e lo si associa al radio button:

...
from PyQt5.QtGui import QIcon
...
        self.radio_button1 = QRadioButton("Italy", self)
        self.radio_button1.setIcon(QIcon("Italy.png"))
        self.radio_button2 = QRadioButton("France", self)
        self.radio_button2.setIcon(QIcon("France.png"))
        self.radio_button3 = QRadioButton("Spain", self)
        self.radio_button3.setIcon(QIcon("Spain.png"))
...

Colore

valgono le regole già viste per gli altri widget, ovvero si utilizzano QPalette e QColor sugli
elementi backgroundRole e foregroundRole del widget interessato:

...
from PyQt5.QtGui import QColor

...
        # background
        bg_color = QColor('Yellow')
        palette = self.radio_button1.palette()
        rb1_background = self.radio_button1.backgroundRole()
        palette.setColor(rb1_background, bg_color)
        fg_color = QColor('Red')
        # foreground
        rb1_foreground = self.radio_button1.foregroundRole()
        palette.setColor(rb1_foreground, fg_color)
        self.radio_button1.setPalette(palette)
        self.radio_button1.setAutoFillBackground(True)
...

Font

Anche la modifica del font non cambia, si utilizza cioè il costruttore QFont nella solita maniera:

...
        # Font
        font = QFont("Lucida", 14, QFont.Bold)
        self.radio_button1.setFont(font)
...

Segnali

Quando si clicca su un radio button viene emesso il segnale toggled.
Una volta connesso tale segnale al proprio slot, possiamo controllare quale radio button sia stato selezionato utilizzando
il metodo isChecked.

O creiamo uno slot per ogni radio button:

...
        self.radio_button1.toggled.connect(self.on_radio_button_1)
        self.radio_button2.toggled.connect(self.on_radio_button_2)
        self.radio_button3.toggled.connect(self.on_radio_button_3)

    def on_radio_button_1(self):
        if self.radio_button1.isChecked():
            print("click on %s" % self.radio_button1.text())

    def on_radio_button_2(self):
        if self.radio_button2.isChecked():
            print("click on %s" % self.radio_button2.text())

    def on_radio_button_3(self):
        if self.radio_button3.isChecked():
            print("click on %s" % self.radio_button3.text())
...

O ne creiamo uno condiviso, al quale passare come argomento il widget:

...
        self.radio_button1.toggled.connect(
            lambda: self.on_radio_button(self.radio_button1))
        self.radio_button2.toggled.connect(
            lambda: self.on_radio_button(self.radio_button2))
        self.radio_button3.toggled.connect(
            lambda: self.on_radio_button(self.radio_button3))

    @staticmethod
    def on_radio_button(widget):
        if widget.isChecked():
            print("click on %s" % widget.text())
...

Testo

Il testo può essere settato con il metodo setText anche dopo aver istanziato l’oggetto.
E’ possibile anche utilizzare gli ampersand con il medesimo metodo.
Stesso discorso vale per settare un tooltip tramite metodo setToolTip:

...
        self.radio_button1 = QRadioButton()
        self.radio_button1.setText("&Italy")  # Ampersand
        self.radio_button1.setIcon(QIcon("Italy.png"))
        self.radio_button1.setToolTip("Select Italy")  # Tooltip
...

Per evitare effetti indesiderati tra radiobuttons, è possibile utilizzare i ButtonGroup, oggetti invisibili che
hanno il solo scopo di raggruppare bottoni isolandoli da altri con i quali non devono interagire.

BUTTONGROUP

Il costruttore è il QButtonGroup.
Per aggiungere un bottone al gruppo, si utilizza il metodo addButton(widget, id).
Widget è il bottone che vogliamo aggiungere a quel gruppo, id è l’indice che verrà assegnato al bottone e
che utilizzeremo per riconoscerlo nel gruppo.

>> from PyQt5.QtWidgets import QApplication, QRadioButton, QButtonGroup
>>> app = QApplication([])
>>> radio_button1 = QRadioButton("Italy")
>>> radio_button2 = QRadioButton("France")
>>> radio_button3 = QRadioButton("Spain")
>>> buttongroup = QButtonGroup()
>>> buttongroup.addButton(radio_button1, 1)
>>> buttongroup.addButton(radio_button2, 2)
>>> buttongroup.addButton(radio_button3, 3)

Per conoscere quali bottoni fanno parte di un gruppo, si utilizza il metodo buttons:

>>> for button in buttongroup.buttons():
...     print(button.text(), button)
...     
Italy <PyQt5.QtWidgets.QRadioButton object at 0x0343E120>
France <PyQt5.QtWidgets.QRadioButton object at 0x0343E0D0>
Spain <PyQt5.QtWidgets.QRadioButton object at 0x0343E1C0>

Per rimuovere un bottone da un gruppo si utilizza il metodo removeButton:

>>> buttongroup.removeButton(radio_button3)
>>> for button in buttongroup.buttons():
...     print(button.text(), button)
...     
Italy <PyQt5.QtWidgets.QRadioButton object at 0x0343E120>
France <PyQt5.QtWidgets.QRadioButton object at 0x0343E0D0>

Gli id precedenti, ci consentono di recuperare un bottone tramite il metodo button(id):

>>> button = buttongroup.button(1)
>>> button
<PyQt5.QtWidgets.QRadioButton object at 0x0343E120>
>>> button.text()
'Italy'

Se invece abbiamo necessità di recuperare l’id di un bottone utilizziamo il metodo id(button):

>>> buttongroup.id(radio_button2)
2

Per cambiare l’id del bottone all’interno del gruppo, si utilizza il metodo setId(button, newid):

>>> buttongroup.setId(radio_button2, 200)
>>> buttongroup.id(radio_button2)
200
>>> button = buttongroup.button(200)
>>> button.text()
'France'

Se vogliamo recuperare il bottone settato a checked, utilizziamo il metodo checkedButton:

>>> buttongroup.checkedButton()  # Nessun bottone settato a checked
>>> radio_button1.setChecked(True)
>>> buttongroup.checkedButton()
<PyQt5.QtWidgets.QRadioButton object at 0x0343E120>

Signal

Quando un bottone appartenente ad un button-group viene cliccato, viene emesso un segnale buttonClicked.
Tale segnale emette anche l’id del bottone cliccato. E’ quindi possibile connettere tale segnale ad uno slot:

from PyQt5.QtWidgets import QMainWindow
from PyQt5.QtWidgets import QWidget, QApplication, QBoxLayout
from PyQt5.QtWidgets import QRadioButton, QButtonGroup
from PyQt5.QtGui import QIcon
import sys


class MainWindow(QMainWindow):
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setWindowTitle("QRadioButton Example")
        self.central_widget = FormWidget(self) 
        self.setCentralWidget(self.central_widget)
        self.resize(300, 100)


class FormWidget(QWidget):
    def __init__(self, parent):
        super(FormWidget, self).__init__(parent)
        layout = QBoxLayout(QBoxLayout.TopToBottom)
        self.button_group = QButtonGroup()

        self.radio_button1 = QRadioButton()
        self.radio_button1.setText("Italy")
        self.radio_button1.setIcon(QIcon("Italy.png"))
        self.radio_button1.setToolTip("Select Italy")
        self.button_group.addButton(self.radio_button1, 1)

        self.radio_button2 = QRadioButton("France", self)
        self.radio_button2.setIcon(QIcon("France.png"))
        self.button_group.addButton(self.radio_button2, 2)

        self.radio_button3 = QRadioButton("Spain", self)
        self.radio_button3.setIcon(QIcon("Spain.png"))
        self.button_group.addButton(self.radio_button3, 3)

        layout.addWidget(self.radio_button1, 0)
        layout.addWidget(self.radio_button2, 0)
        layout.addWidget(self.radio_button3, 0)
        self.setLayout(layout)

        self.button_group.buttonClicked[int].connect(self.on_radio_button)

    def on_radio_button(self, id):
        for button in self.button_group.buttons():
            if button is self.button_group.button(id):
                print("click on %s" % button.text())


if __name__ == '__main__':
    app = QApplication(sys.argv)
    main_window = MainWindow()
    main_window.show()
    sys.exit(app.exec_())

Volendo forzare la scelta multipla sui radiobutton appartenenti allo stesso gruppo, si può utilizzare il metodo
setExclusive:

...
        self.button_group = QButtonGroup()
        self.button_group.setExclusive(False)
...

Nota:

Se escludessimo da gruppo uno dei tre radio button e il setExclusive sul gruppo fosse settato a True, questa caratteristica coinvolgerebbe solo i radio button apparrtenenti al gruppo stesso!
Ovvero sarà possibile cliccare anche il radio button escluso, che dovrà però essere collegato al proprio segnale:

from PyQt5.QtWidgets import QMainWindow
from PyQt5.QtWidgets import QWidget, QApplication, QBoxLayout
from PyQt5.QtWidgets import QRadioButton, QButtonGroup
from PyQt5.QtGui import QIcon
import sys


class MainWindow(QMainWindow):
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setWindowTitle("QRadioButton Example")
        self.central_widget = FormWidget(self) 
        self.setCentralWidget(self.central_widget)
        self.resize(300, 100)


class FormWidget(QWidget):
    def __init__(self, parent):
        super(FormWidget, self).__init__(parent)
        layout = QBoxLayout(QBoxLayout.TopToBottom)
        self.button_group = QButtonGroup()
        self.button_group.setExclusive(True)

        radio_button1 = QRadioButton()
        radio_button1.setText("Italy")
        radio_button1.setIcon(QIcon("Italy.png"))
        radio_button1.setToolTip("Select Italy")
        self.button_group.addButton(radio_button1, 1)

        radio_button2 = QRadioButton("France", self)
        radio_button2.setIcon(QIcon("France.png"))
        self.button_group.addButton(radio_button2, 2)

        radio_button3 = QRadioButton("Spain", self)
        radio_button3.setIcon(QIcon("Spain.png"))
        # self.button_group.addButton(radio_button3, 3)  # Escluso dal gruppo

        layout.addWidget(radio_button1, 0)
        layout.addWidget(radio_button2, 0)
        layout.addWidget(radio_button3, 0)
        self.setLayout(layout)

        self.button_group.buttonClicked[int].connect(self.on_button_group)
        radio_button3.clicked.connect(
            lambda: self.on_radio_button_3(radio_button3))

    def on_button_group(self, id):
        for radio_button in self.button_group.buttons():
            if radio_button is self.button_group.button(id):
                print("[GROUP] click on %s" % radio_button.text())

    def on_radio_button_3(self, radio_button):
        print("[SINGLE] click on %s" % radio_button.text())


if __name__ == '__main__':
    app = QApplication(sys.argv)
    main_window = MainWindow()
    main_window.show()
    sys.exit(app.exec_())
[GROUP] click on Italy
[GROUP] click on France
[SINGLE] click on Spain

Torna all’indice degli appunti

Categorie:PyQt5, python Tag:,

Lista Calciatori Gazzetta 2018-2019: giornata 28

marzo 19, 2019 Lascia un commento

tutte i file sono compatibili con Fantalight, FantaLega e
FantaStat 2.0

link files in formato txt scaricabili

tutte le giornate

100|ARESTI|CAG|0.0|0.0|1
101|AUDERO|SAM|3.0|6.0|15
102|BARDI|FRO|0.0|0.0|1
103|BELEC|SAM|0.0|0.0|1
104|BERISHA E.|ATA|0.0|0.0|15
105|BERNI|INT|0.0|0.0|1
106|CONSIGLI|SAS|1.0|6.0|11
107|CONTINI|NAP|0.0|0.0|1
108|CRAGNO|CAG|5.5|6.5|19
109|DA COSTA|BOL|0.0|0.0|1
110|DAGA|CAG|0.0|0.0|1
111|DINI|PAR|0.0|0.0|1
112|DONNARUMMA G.|MIL|2.5|5.5|22
113|DONNARUMMA A.|MIL|0.0|0.0|1
114|DRAGOWSKI|EMP|4.5|6.0|5
115|FALCONE|SAM|0.0|0.0|1
116|FRATTALI|PAR|0.0|0.0|1
117|FUZATO|ROM|0.0|0.0|1
118|GASPARINI|UDI|0.0|0.0|1
119|GIACOMEL|EMP|0.0|0.0|1
120|GOLLINI|ATA|5.0|6.0|8
121|GOMIS|SPA|0.0|0.0|12
122|GUERRIERI|LAZ|0.0|0.0|1
123|HANDANOVIC|INT|4.5|6.5|22
124|ICHAZO|TOR|0.0|0.0|4
125|KARNEZIS|NAP|0.0|0.0|9
126|LAFONT|FIO|0.0|0.0|16
127|MARCHETTI|GEN|0.0|0.0|6
128|MERET|NAP|6.0|6.0|16
129|MILINKOVIC V.|SPA|0.0|0.0|6
130|MIRANTE|ROM|0.0|0.0|4
131|MUSSO|UDI|1.0|5.0|11
132|PADELLI|INT|0.0|0.0|1
133|PAVONI|CHI|0.0|0.0|1
134|PEGOLO|SAS|0.0|0.0|3
135|PERIN|JUV|3.0|5.0|8
136|PINSOGLIO|JUV|0.0|0.0|1
137|PLIZZARI|MIL|0.0|0.0|1
138|POLUZZI|SPA|0.0|0.0|1
139|PROTO|LAZ|0.0|0.0|1
140|PROVEDEL|EMP|0.0|0.0|6
141|RADU I.|GEN|6.0|6.0|15
142|RADUNOVIC|ATA|0.0|0.0|1
143|RAFAEL A.|CAG|0.0|0.0|1
144|REINA|MIL|0.0|0.0|3
145|ROSATI|TOR|0.0|0.0|1
146|ROSSI F.|ATA|0.0|0.0|1
147|SANTURRO|BOL|0.0|0.0|1
148|SATALINO|SAS|0.0|0.0|1
149|SCUFFET|UDI|0.0|0.0|6
150|SECULIN|CHI|0.0|0.0|2
151|SEPE|PAR|0.5|4.5|12
152|SIRIGU|TOR|2.5|5.5|25
153|SKORUPSKI|BOL|4.5|6.5|15
154|SORRENTINO|CHI|6.0|7.0|17
155|SPORTIELLO|FRO|4.0|6.0|12
156|STRAKOSHA|LAZ|5.0|6.0|18
157|SZCZESNY|JUV|0.0|0.0|23
158|TERRACCIANO|FIO|4.0|6.0|7
159|TOZZO|SAM|0.0|0.0|1
160|VIGORITO|FRO|0.0|0.0|1
161|VODISEK|GEN|0.0|0.0|1
162|ZACCAGNO|TOR|0.0|0.0|1
163|RAFAEL|SAM|0.0|0.0|1
164|OLSEN|ROM|3.5|5.5|15
165|FULIGNATI|SPA|0.0|0.0|1
166|NICOLAS|UDI|0.0|0.0|1
167|IACOBUCCI|FRO|0.0|0.0|1
168|SEMPER|CHI|0.0|0.0|1
169|BAGHERIA|PAR|0.0|0.0|1
170|OSPINA|NAP|4.0|6.0|11
171|GHIDOTTI|FIO|0.0|0.0|1
172|JANDREI|GEN|0.0|0.0|2
173|VIVIANO|SPA|6.0|7.0|6
174|PERISAN|UDI|0.0|0.0|1
175|PERUCCHINI|EMP|0.0|0.0|1
176|BRAZAO|PAR|0.0|0.0|1
177|DI GENNARO|INT|0.0|0.0|1
200|ABATE|MIL|0.0|0.0|7
201|ACERBI|LAZ|6.5|6.5|19
202|ADJAPONG|SAS|0.0|0.0|7
203|ADNAN|UDI|0.0|0.0|4
204|ALBIOL|NAP|0.0|0.0|13
205|ALEX SANDRO|JUV|5.5|6.0|17
206|ALVES|PAR|4.5|5.0|14
207|ANDERSEN|SAM|7.0|7.0|10
208|ANDREOLLI|CHI|5.5|6.0|4
209|ANGELLA|UDI|0.0|0.0|3
210|ANSALDI|TOR|6.0|6.0|15
211|ANTONELLI|EMP|0.0|0.0|6
212|ARIAUDO|FRO|0.0|0.0|5
213|ASAMOAH|INT|6.0|6.0|9
214|BANI|CHI|0.0|0.0|7
215|BARZAGLI|JUV|0.0|0.0|5
216|BASTA|LAZ|0.0|0.0|4
217|BASTONI|PAR|0.0|0.0|7
218|BASTOS|LAZ|0.0|0.0|7
219|BENATIA|JUV|0.0|0.0|12
220|BERESZYNSKI|SAM|6.5|6.5|8
221|BETTELLA|ATA|0.0|0.0|1
222|BIANDA|ROM|0.0|0.0|2
223|BIRAGHI|FIO|5.5|5.5|11
224|BIRASCHI|GEN|0.0|0.0|9
225|BONIFAZI|SPA|6.0|6.0|8
226|BONUCCI|JUV|4.5|4.5|17
227|BREMER|TOR|0.0|0.0|4
228|BRIGHENTI|FRO|0.0|0.0|3
229|BRIGNANI|BOL|0.0|0.0|1
230|CACCIATORE|CAG|8.0|7.0|8
231|CACERES|JUV|4.5|5.0|8
232|CALABRESI|BOL|0.0|0.0|6
233|CALABRIA|MIL|5.0|5.0|11
234|CALDARA|MIL|0.0|0.0|9
235|CANCELO|JUV|5.0|5.0|18
236|CAPUANO|FRO|5.5|5.5|6
237|CASTAGNE|ATA|6.0|6.0|13
238|CECCHERINI|FIO|4.5|5.0|5
239|CEPPITELLI|CAG|11.0|7.0|10
240|CESAR|CHI|5.5|6.0|3
241|CHIELLINI|JUV|0.0|0.0|18
242|CHIRICHES|NAP|0.0|0.0|4
243|CIOFANI M.|FRO|0.0|0.0|5
244|CIONEK|SPA|6.5|6.0|5
245|COLLEY|SAM|7.0|7.0|10
246|CONTI|MIL|4.5|5.0|10
247|COSTA|SPA|0.0|0.0|6
248|CREMONESI|SPA|0.0|0.0|3
249|CRISCITO|GEN|6.5|6.5|16
250|D'AMBROSIO|INT|7.0|7.0|14
251|DALBERT|INT|0.0|0.0|5
252|DANILO|BOL|7.0|7.0|11
253|DE MAIO|UDI|6.0|6.0|5
254|DE SCIGLIO|JUV|0.0|0.0|9
255|DE SILVESTRI|TOR|0.0|0.0|17
256|DE VRIJ|INT|12.0|7.5|20
257|DELL'ORCO|EMP|6.5|6.5|7
258|DI CESARE|PAR|0.0|0.0|5
259|DI LORENZO|EMP|6.5|6.5|14
260|DICKMANN|SPA|0.0|0.0|4
261|DIJKS|BOL|6.5|6.5|8
262|DIKS|EMP|0.0|0.0|4
263|DIMARCO|PAR|4.5|4.5|5
264|DURMISI|LAZ|6.0|6.0|5
265|EL YAMIQ|GEN|0.0|0.0|4
266|FARAGO'|CAG|6.0|6.0|7
267|FAZIO|ROM|5.5|5.5|16
268|FELIPE|SPA|0.0|0.0|6
269|FERRARI G.|SAS|5.0|5.0|14
270|FERRARI A.|SAM|0.0|0.0|4
271|FLORENZI|ROM|0.0|0.0|15
272|GAGLIOLO|PAR|5.0|5.0|7
273|GAZZOLA|PAR|6.0|6.0|5
274|GHIGLIONE|FRO|0.0|0.0|5
275|GHOULAM|NAP|5.5|5.5|11
276|GOBBI|PAR|0.0|0.0|6
277|GOLDANIGA|FRO|4.5|5.0|7
278|GOMEZ|MIL|0.0|0.0|3
279|GONZALEZ|BOL|0.0|0.0|5
280|GOSENS|ATA|5.5|5.5|16
281|GUNTER|GEN|0.0|0.0|4
282|HANCKO|FIO|0.0|0.0|3
283|HATEBOER|ATA|5.5|5.5|18
284|HELANDER|BOL|0.0|0.0|3
285|HEURTAUX|UDI|0.0|0.0|4
286|HRISTOV|FIO|0.0|0.0|2
287|HYSAJ|NAP|0.0|0.0|11
288|IACOPONI|PAR|5.0|5.0|6
289|IMPERIALE|EMP|0.0|0.0|1
290|IZZO|TOR|10.5|6.0|21
291|JAROSZYNSKI|CHI|5.5|5.5|6
292|JUAN JESUS|ROM|4.0|4.5|5
293|KARSDORP|ROM|4.0|4.0|4
294|KOLAROV|ROM|0.0|0.0|27
295|KONATE'|SPA|0.0|0.0|4
296|KOULIBALY|NAP|5.5|5.5|19
297|KRAFTH|BOL|0.0|0.0|4
298|KRAJNC|FRO|0.0|0.0|3
299|LAKICEVIC|GEN|0.0|0.0|4
300|STRYGER LARSEN|UDI|5.0|5.0|13
301|LAURINI|FIO|0.0|0.0|4
302|LEMOS|SAS|0.0|0.0|5
303|LETSCHERT|SAS|0.0|0.0|3
304|LEVERBE|CAG|0.0|0.0|1
305|LIROLA|SAS|7.0|6.0|10
306|LUIZ FELIPE|LAZ|0.0|0.0|9
307|LUPERTO|NAP|0.0|0.0|5
308|LYANCO|BOL|5.0|6.0|5
309|LYKOGIANNIS|CAG|7.5|6.5|7
310|MAIETTA|EMP|5.5|5.5|5
311|MAKSIMOVIC|NAP|5.5|5.5|8
312|MANCINI|ATA|6.5|6.5|19
313|MANOLAS|ROM|0.0|0.0|16
314|MARCANO|ROM|5.5|5.5|9
315|MARCHIZZA|SAS|0.0|0.0|2
316|MARCJANIK|EMP|0.0|0.0|4
317|MARIO RUI|NAP|0.0|0.0|10
318|MARUSIC|LAZ|11.5|7.0|15
319|MASIELLO|ATA|6.0|6.0|12
320|MBAYE|BOL|6.0|6.0|9
321|MILENKOVIC|FIO|4.5|4.5|11
322|MIRANDA|INT|0.0|0.0|8
323|MOLINARO|FRO|5.5|5.5|5
324|MORETTI|TOR|0.0|0.0|9
325|MURRU|SAM|7.5|6.5|10
326|MUSACCHIO|MIL|10.5|6.0|11
327|NKOULOU|TOR|4.5|5.0|16
328|NUYTINCK|UDI|0.0|0.0|8
329|OLIVERA|FIO|0.0|0.0|3
330|OPOKU|UDI|0.0|0.0|2
331|PAJAC|EMP|11.5|7.0|8
332|PALOMINO|ATA|0.0|0.0|12
333|PASQUAL|EMP|5.0|5.5|11
334|PAZ|BOL|0.0|0.0|4
335|PELLEGRINI LU.|CAG|0.0|0.0|3
336|PELUSO|SAS|5.0|5.0|7
337|PEREIRA|GEN|6.0|6.0|5
338|PEZZELLA GE.|FIO|5.5|6.0|15
339|PEZZELLA GI.|GEN|0.0|0.0|4
340|PISACANE|CAG|6.5|6.5|8
341|POLVANI|EMP|0.0|0.0|2
342|RADU S.|LAZ|6.0|6.0|10
343|RANOCCHIA|INT|0.0|0.0|5
344|RASMUSSEN|EMP|0.0|0.0|4
345|RECA|ATA|0.0|0.0|4
346|REGINI|SPA|6.0|6.0|4
347|RODRIGUEZ R.|MIL|5.0|5.5|12
348|ROGERIO|SAS|0.0|0.0|6
349|ROLANDO|SAM|0.0|0.0|3
350|ROMAGNA|CAG|0.0|0.0|8
351|ROMAGNOLI A.|MIL|4.5|5.0|16
352|ROMAGNOLI S.|EMP|0.0|0.0|3
353|ROSSETTINI|CHI|0.0|0.0|5
354|RUGANI|JUV|5.0|5.0|12
355|RUSSO|FRO|0.0|0.0|2
356|SALA|SAM|0.0|0.0|5
357|SALAMON|FRO|5.5|5.5|7
358|SAMIR|UDI|0.0|0.0|6
359|SANTON|ROM|0.0|0.0|7
360|SCAGLIA|PAR|0.0|0.0|4
361|SERNICOLA|SAS|0.0|0.0|1
362|SIMIC|FRO|0.0|0.0|2
363|SKRINIAR|INT|7.5|7.5|15
364|SPINAZZOLA|JUV|0.0|0.0|5
365|SPOLLI|GEN|0.0|0.0|4
366|SRNA|CAG|0.0|0.0|11
367|STRINIC|MIL|0.0|0.0|4
368|TANASIJEVIC|CHI|0.0|0.0|1
369|TAVARES|SAM|0.0|0.0|4
370|TER AVEST|UDI|7.0|6.0|7
371|TERRANOVA|FRO|0.0|0.0|6
372|TOLOI|ATA|0.0|0.0|13
373|TOMOVIC|CHI|0.0|0.0|7
374|TONELLI|SAM|0.0|0.0|9
375|UNTERSEE|EMP|0.0|0.0|4
376|VAISANEN|SPA|0.0|0.0|3
377|VALJENT|CHI|0.0|0.0|3
378|VARNIER|ATA|0.0|0.0|4
379|VENUTI|FIO|0.0|0.0|4
380|VESELI|EMP|0.0|0.0|5
381|VICARI|SPA|6.0|6.5|8
382|VITOR HUGO|FIO|0.0|0.0|7
383|WAGUE|UDI|0.0|0.0|4
384|WALLACE|LAZ|0.0|0.0|4
385|ZAPATA C.|MIL|0.0|0.0|7
386|ZUKANOVIC|GEN|6.5|6.5|7
387|SIERRALTA|PAR|0.0|0.0|2
388|PATRIC|LAZ|6.5|6.5|8
389|MATTIELLO|BOL|0.0|0.0|6
390|DJOUROU|SPA|0.0|0.0|7
391|TRIPALDELLI|SAS|0.0|0.0|1
392|LUKAKU|LAZ|0.0|0.0|7
393|MAGNANI|SAS|0.0|0.0|7
394|GILLEKENS|FIO|0.0|0.0|1
395|GABBIA|MIL|0.0|0.0|1
396|BELLANOVA|MIL|0.0|0.0|1
397|VRSALJKO|INT|0.0|0.0|12
398|LOPEZ|GEN|0.0|0.0|4
399|SILVESTRE|EMP|5.5|6.0|10
400|MALCUIT|NAP|6.0|6.0|10
401|ANDERSON|LAZ|0.0|0.0|4
402|FERIGRA|TOR|0.0|0.0|1
403|CORBO|BOL|0.0|0.0|1
404|BARBA|CHI|6.5|6.5|7
405|AINA|TOR|3.5|4.5|10
406|DJIDJI|TOR|5.0|5.0|9
407|ZAMPANO|FRO|0.0|0.0|8
408|SIMIC|SPA|0.0|0.0|3
409|MARLON|SAS|0.0|0.0|9
410|DJIMSITI|ATA|5.5|5.5|8
411|TROOST-EKONG|UDI|5.5|5.5|10
412|VERGARA|CAG|0.0|0.0|2
413|SALVI|SPA|0.0|0.0|1
414|FERRARESI|SAS|0.0|0.0|1
415|KLAVAN|CAG|0.0|0.0|8
416|RIGIONE|CHI|0.0|0.0|2
417|ROMERO|GEN|6.5|7.0|8
418|DI MAGGIO|PAR|0.0|0.0|1
419|ZEEGELAAR|UDI|5.5|5.5|6
420|PEJOVIC|EMP|0.0|0.0|1
421|CEDRIC|INT|0.0|0.0|8
422|FREY|CHI|0.0|0.0|3
423|SCHELOTTO|CHI|0.0|0.0|7
424|NIKOLAOU|EMP|0.0|0.0|4
425|IBANEZ|ATA|0.0|0.0|4
426|DEMIRAL|SAS|5.0|5.0|7
500|ACQUAH|EMP|0.0|0.0|8
501|ALLAN|NAP|5.0|5.0|17
503|BADU|UDI|0.0|0.0|4
504|BALIC|UDI|0.0|0.0|4
505|BANDINELLI|SAS|0.0|0.0|3
506|BARAK|UDI|0.0|0.0|15
507|BARELLA|CAG|7.0|7.0|15
508|BARILLA'|PAR|0.0|0.0|12
509|BARRETO|SAM|0.0|0.0|7
510|BASELLI|TOR|5.0|5.5|18
511|BAUMGARTNER|SAM|0.0|0.0|1
512|BEGHETTO|FRO|0.0|0.0|8
513|BEHRAMI|UDI|0.0|0.0|9
514|BENASSI|FIO|6.0|6.0|20
515|BENNACER|EMP|6.0|6.0|11
516|BENTANCUR|JUV|5.5|5.5|12
517|BERENGUER|TOR|6.0|5.5|11
518|BERISHA V.|LAZ|0.0|0.0|9
519|BERNARDESCHI|JUV|5.0|5.0|19
520|BERTOLACCI|MIL|0.0|0.0|4
521|BESEA|FRO|0.0|0.0|2
522|BESSA|GEN|0.0|0.0|15
523|BIGLIA|MIL|0.0|0.0|14
524|BIRSA|CAG|0.0|0.0|15
525|BOATENG|SAS|0.0|0.0|20
526|BONAVENTURA|MIL|0.0|0.0|24
527|BORINI|MIL|0.0|0.0|10
528|BORJA VALERO|INT|6.0|6.0|10
529|BOURABIA|SAS|0.0|0.0|9
530|BRIGHI|EMP|0.0|0.0|4
531|BROZOVIC|INT|6.5|7.0|16
532|CALHANOGLU|MIL|6.5|5.5|18
533|CALIGARA|CAG|0.0|0.0|1
534|CALLEGARI|GEN|0.0|0.0|1
535|EMRE CAN|JUV|4.0|4.5|21
536|CANDREVA|INT|0.0|0.0|14
537|CAPEZZI|EMP|0.0|0.0|5
538|CASSATA|FRO|5.0|5.0|5
539|CASTRO|CAG|0.0|0.0|16
540|CATALDI|LAZ|6.0|6.0|11
541|CHIBSAH|FRO|4.5|4.5|11
542|CHIESA|FIO|9.5|6.5|28
543|CIGARINI|CAG|6.0|6.5|9
544|COLOMBATTO|CAG|0.0|0.0|3
545|CORIC|ROM|0.0|0.0|6
546|COULIBALY|UDI|0.0|0.0|3
547|CRISETIG|FRO|0.0|0.0|4
548|CRISTANTE|ROM|4.5|5.0|20
549|CRISTOFORO|FIO|0.0|0.0|3
550|CUADRADO|JUV|0.0|0.0|19
551|D'ALESSANDRO|UDI|0.0|0.0|7
552|DABO|FIO|5.5|5.5|10
553|DE PAUL|UDI|5.5|5.5|17
554|DE ROON|ATA|5.5|6.0|15
555|DE ROSSI|ROM|0.0|0.0|12
556|DEIOLA|CAG|0.0|0.0|5
557|DE PAOLI|CHI|5.5|6.0|9
558|DESSENA|CAG|0.0|0.0|5
559|DEZI|PAR|0.0|0.0|4
560|DI GENNARO|LAZ|0.0|0.0|3
561|DIAWARA|NAP|0.0|0.0|8
562|DJURICIC|SAS|4.5|4.5|11
563|DONSAH|BOL|0.0|0.0|4
564|DOUGLAS COSTA|JUV|0.0|0.0|22
565|DUNCAN|SAS|9.0|5.5|18
566|DZEMAILI|BOL|6.0|6.0|10
567|EMMERS|INT|0.0|0.0|1
568|EVANGELISTA|UDI|0.0|0.0|5
569|EVERTON LUIZ|SPA|0.0|0.0|4
570|EYSSERIC|FIO|0.0|0.0|10
571|FARES|SPA|11.5|8.0|12
572|FOFANA|UDI|12.0|7.0|13
573|FRATTESI|SAS|0.0|0.0|1
574|FREDIANI|PAR|0.0|0.0|1
575|FREULER|ATA|6.0|6.0|19
576|GAGLIARDINI|INT|6.0|6.5|15
577|GARRITANO|CHI|0.0|0.0|5
578|GAUDINO|CHI|0.0|0.0|4
579|GERSON|FIO|6.0|5.0|11
580|GIACCHERINI|CHI|5.5|6.0|17
581|GIORNO|PAR|0.0|0.0|1
582|GONALONS|ROM|0.0|0.0|6
583|GORI|FRO|0.0|0.0|4
584|GRASSI|PAR|0.0|0.0|9
585|HAAS|ATA|0.0|0.0|3
586|HALILOVIC|MIL|0.0|0.0|4
587|HALLFREDSSON|UDI|0.0|0.0|4
588|HAMSIK|NAP|0.0|0.0|19
589|HETEMAJ|CHI|5.5|6.0|11
590|HILJEMARK|GEN|0.0|0.0|11
591|INGELSSON|UDI|5.5|5.5|4
592|IONITA|CAG|6.0|6.0|12
593|JANKTO|SAM|7.0|7.0|12
594|JOAO PEDRO|CAG|10.5|7.0|20
595|KATUMA|UDI|0.0|0.0|1
596|KESSIE'|MIL|5.0|5.0|19
597|KHEDIRA|JUV|0.0|0.0|23
598|KINGSLEY|BOL|0.0|0.0|1
599|KIYINE|CHI|0.0|0.0|6
600|KONE'|FRO|0.0|0.0|4
601|KREJCI|BOL|0.0|0.0|5
602|KRUNIC|EMP|7.5|6.5|19
603|KULUSEVSKI|ATA|0.0|0.0|1
604|KURTIC|SPA|6.5|6.5|20
605|LAXALT|MIL|0.0|0.0|10
606|LAZOVIC|GEN|6.5|6.5|14
607|LAZZARI|SPA|7.0|7.0|18
608|LEIVA|LAZ|7.0|7.0|15
609|LINETTY|SAM|12.5|7.5|18
610|LJAJIC|TOR|0.0|0.0|22
611|LOCATELLI|SAS|5.5|5.5|11
612|LOLLO|EMP|0.0|0.0|4
613|LUKIC|TOR|0.0|0.0|7
614|LULIC|LAZ|11.0|7.0|19
615|MAGNANELLI|SAS|0.0|0.0|8
616|MAIELLO|FRO|5.0|5.0|7
617|MANDRAGORA|UDI|5.5|5.5|10
618|MARCHISIO|JUV|0.0|0.0|6
619|MATUIDI|JUV|0.0|0.0|19
620|MAURI|MIL|0.0|0.0|4
621|MAZZITELLI|GEN|0.0|0.0|5
622|MEITE|TOR|4.5|4.5|10
623|MILINKOVIC S.|LAZ|8.0|7.0|23
624|MINALA|LAZ|0.0|0.0|4
625|MISSIROLI|SPA|6.0|6.5|10
626|MONTOLIVO|MIL|0.0|0.0|4
627|MURGIA|SPA|6.0|6.0|5
628|NAGY|BOL|0.0|0.0|4
629|NAINGGOLAN|INT|0.0|0.0|23
630|OBI|TOR|0.0|0.0|12
631|OMEONGA|GEN|0.0|0.0|4
632|PADOIN|CAG|6.0|6.0|9
633|PAGANINI|FRO|4.5|4.5|6
634|PARIGINI|TOR|0.0|0.0|6
635|PAROLO|LAZ|0.0|0.0|18
636|PASTORE|ROM|0.0|0.0|22
637|PELLEGRINI LO.|ROM|0.0|0.0|19
638|PERISIC|INT|7.0|7.0|21
639|PEROTTI|ROM|9.0|6.0|18
640|PESSINA|ATA|0.0|0.0|5
641|PJANIC|JUV|5.5|5.5|20
642|POLI|BOL|11.0|7.0|15
643|PONTISSO|UDI|0.0|0.0|1
644|PRAET|SAM|11.5|7.5|17
645|PULGAR|BOL|9.0|7.0|12
646|RADOVANOVIC|GEN|7.0|7.0|9
647|RAMIREZ|SAM|0.0|0.0|20
648|RICCARDI|ROM|0.0|0.0|1
649|RIGONI L.|PAR|5.0|5.0|12
650|RIGONI N.|CHI|0.0|0.0|6
651|RINCON|TOR|5.5|5.5|16
652|RIZZO|BOL|0.0|0.0|4
653|ROG|NAP|0.0|0.0|8
654|ROMULO|LAZ|0.0|0.0|13
655|RUIZ|NAP|0.0|0.0|19
656|SAMMARCO|FRO|0.0|0.0|4
657|SANCHEZ|FIO|0.0|0.0|5
658|SANDRO|UDI|5.5|6.0|11
659|SAPONARA|SAM|0.0|0.0|15
660|SCAVONE|PAR|0.0|0.0|6
661|SCHETINO|FIO|0.0|0.0|2
662|SCHIATTARELLA|SPA|0.0|0.0|10
663|SCOZZARELLA|PAR|0.0|0.0|7
664|SENSI|SAS|5.0|5.0|11
665|SODDIMO|FRO|0.0|0.0|6
666|STIJEPOVIC|SAM|0.0|0.0|1
667|STROOTMAN|ROM|0.0|0.0|13
668|STULAC|PAR|0.0|0.0|12
669|STURARO|GEN|11.5|7.5|7
670|SVANBERG|BOL|0.0|0.0|6
671|TESSIORE|SAM|0.0|0.0|1
672|TRAORE'|EMP|6.5|6.5|10
673|VALDIFIORI|SPA|0.0|0.0|6
674|VALENCIA|BOL|0.0|0.0|2
675|VALOTI|SPA|0.0|0.0|10
676|VALZANIA|FRO|10.0|6.5|7
677|VECINO|INT|11.0|7.5|14
678|VERETOUT|FIO|0.0|0.0|22
679|VERRE|SAM|0.0|0.0|4
680|VIGNATO|CHI|0.0|0.0|1
681|VITALE|SPA|0.0|0.0|2
682|VIVIANI|FRO|0.0|0.0|5
683|YOUNES|NAP|10.5|7.0|10
684|ZAJC|EMP|0.0|0.0|18
685|ZANIOLO|ROM|6.0|6.0|13
686|ZIELINSKI|NAP|5.5|6.0|20
687|UNDER|ROM|0.0|0.0|25
688|PEETERS|SAM|0.0|0.0|1
689|NORGAARD|FIO|5.0|5.0|5
690|NETO|LAZ|6.0|6.0|1
691|JORDAO|LAZ|0.0|0.0|1
692|JOAO MARIO|INT|0.0|0.0|11
693|PASALIC|ATA|6.0|6.0|14
694|BRADARIC|CAG|0.0|0.0|7
695|CORREA|LAZ|7.0|6.0|20
696|BADELJ|LAZ|0.0|0.0|12
697|VIEIRA|SAM|0.0|0.0|7
698|NIKOLIC|SPA|0.0|0.0|1
699|ROLON|GEN|6.5|6.5|5
700|FURLAN|SAM|0.0|0.0|5
701|FERNANDES|FIO|0.0|0.0|9
702|EKDAL|SAM|8.0|8.0|11
703|CARRIERO|PAR|0.0|0.0|1
704|NZONZI|ROM|4.5|5.0|13
705|VLOET|FRO|0.0|0.0|6
706|BAKAYOKO|MIL|11.0|7.0|14
707|CASTILLEJO|MIL|5.0|5.0|18
708|BURRUCHAGA|CHI|0.0|0.0|1
709|ESPOSITO|SPA|0.0|0.0|1
710|RIGONI E.|ATA|0.0|0.0|15
711|COLPANI|ATA|0.0|0.0|1
712|SORIANO|BOL|6.5|7.0|15
713|UCAN|EMP|0.0|0.0|7
714|MUNARI|PAR|0.0|0.0|4
715|MONTIEL|FIO|0.0|0.0|1
716|ARAMU|TOR|0.0|0.0|3
717|ERRICO|FRO|0.0|0.0|1
718|VELOSO|GEN|6.0|6.0|9
719|PAQUETA|MIL|6.0|6.0|20
720|KUCKA|PAR|5.5|5.5|16
721|INIGUEZ|UDI|0.0|0.0|3
722|OLIVA|CAG|0.0|0.0|6
723|SCHAFER|GEN|0.0|0.0|4
724|DIAKHATE|PAR|0.0|0.0|1
725|ZURKOWSKI|FIO|0.0|0.0|6
726|LERAGER|GEN|6.5|6.5|12
727|DIOUSSE|CHI|6.0|6.5|7
728|MACHIN|PAR|0.0|0.0|6
729|JANKOVIC|SPA|0.0|0.0|9
730|PIAZON|CHI|0.0|0.0|11
731|WILMOT|UDI|0.0|0.0|2
732|ADOPO|TOR|0.0|0.0|1
800|ANDRE' SILVA|MIL|0.0|0.0|15
801|ANTENUCCI|SPA|6.0|6.0|16
802|ASENCIO|GEN|0.0|0.0|7
803|AVENATTI|BOL|0.0|0.0|5
804|BABACAR|SAS|8.5|5.5|21
805|BACCA|MIL|0.0|0.0|16
806|BAEZ|FIO|0.0|0.0|3
807|BARAYE|PAR|0.0|0.0|4
808|BARROW|ATA|0.0|0.0|11
809|BELOTTI|TOR|5.5|5.5|31
810|BERARDI|SAS|5.0|5.0|19
811|BUTIC|TOR|0.0|0.0|3
812|CAICEDO|LAZ|6.0|6.0|16
813|CALAIO'|PAR|0.0|0.0|4
814|CALLEJON|NAP|10.5|6.0|27
815|CAPRARI|SAM|0.0|0.0|17
816|CAPUTO|EMP|10.0|7.0|28
817|CERAVOLO|PAR|5.5|5.5|11
818|CERRI|CAG|0.0|0.0|10
819|CIANO|FRO|5.5|5.5|22
820|CICIRETTI|NAP|0.0|0.0|8
821|CIOFANI D.|FRO|6.5|6.5|14
822|CITRO|FRO|0.0|0.0|7
823|COLIDIO|INT|0.0|0.0|1
824|CORNELIUS|ATA|0.0|0.0|8
825|CUTRONE|MIL|6.5|6.5|20
826|DA CRUZ|PAR|0.0|0.0|4
827|DAMASCAN|TOR|0.0|0.0|4
828|DEFREL|SAM|11.0|7.0|19
829|DESTRO|BOL|0.0|0.0|13
830|DI FRANCESCO|SAS|5.0|5.0|14
831|DI GAUDIO|PAR|0.0|0.0|9
832|DIONISI|FRO|0.0|0.0|4
833|DJORDJEVIC|CHI|0.0|0.0|11
834|DYBALA|JUV|5.5|5.5|30
835|DZEKO|ROM|5.5|6.0|29
836|EDERA|BOL|0.0|0.0|6
837|EL SHAARAWY|ROM|5.0|5.0|29
838|EWANDRO|UDI|0.0|0.0|4
839|FALCINELLI|BOL|0.0|0.0|11
840|FALLETTI|BOL|0.0|0.0|8
841|FANTACCI|EMP|0.0|0.0|1
842|FARIAS|EMP|6.0|6.0|16
843|FAVILLI|GEN|0.0|0.0|5
844|FINOTTO|SPA|0.0|0.0|5
845|FLOCCARI|SPA|0.0|0.0|6
846|GALABINOV|GEN|0.0|0.0|8
847|GALUPPINI|PAR|0.0|0.0|1
848|GIANNETTI|CAG|0.0|0.0|5
849|GOMEZ A.|ATA|6.0|6.0|28
850|GRAICIAR|FIO|0.0|0.0|4
851|HAN|CAG|0.0|0.0|11
852|HIGUAIN|JUV|0.0|0.0|29
853|IAGO|TOR|5.5|5.5|27
854|ICARDI|INT|0.0|0.0|34
855|ILICIC|ATA|11.0|7.5|32
856|IMMOBILE|LAZ|0.0|0.0|37
857|INGLESE|PAR|4.5|5.0|22
858|INSIGNE R.|NAP|0.0|0.0|5
859|INSIGNE L.|NAP|0.0|0.0|30
860|JAKUPOVIC|EMP|0.0|0.0|2
861|KALINIC|MIL|0.0|0.0|13
862|KARAMOH|INT|0.0|0.0|12
863|KLUIVERT|ROM|5.0|5.0|17
864|KOUAME|GEN|8.0|7.0|18
865|KOWNACKI|SAM|0.0|0.0|12
866|LA GUMINA|EMP|0.0|0.0|14
867|LAPADULA|GEN|0.0|0.0|6
868|LASAGNA|UDI|9.5|6.5|20
869|LERIS|CHI|0.0|0.0|6
870|LOMBARDI|LAZ|0.0|0.0|3
871|LUIS ALBERTO|LAZ|15.5|7.5|27
872|MACHIS|UDI|0.0|0.0|8
873|MALLE|UDI|0.0|0.0|2
874|MANDZUKIC|JUV|4.5|4.5|25
875|MARTINEZ|INT|11.5|7.5|26
876|MATARESE|FRO|0.0|0.0|2
877|MATRI|SAS|0.0|0.0|11
878|MCHEDLIDZE|EMP|0.0|0.0|5
879|MEDEIROS|GEN|0.0|0.0|10
880|MEGGIORINI|CHI|9.0|6.5|10
881|MERTENS|NAP|12.5|7.0|32
882|MICIN|UDI|0.0|0.0|4
883|MILIK|NAP|9.5|6.5|35
884|MRAZ|EMP|0.0|0.0|8
885|MURANO|SPA|0.0|0.0|2
886|NIANG|TOR|0.0|0.0|13
887|ODGAARD|SAS|0.0|0.0|1
888|OKWONKWO|BOL|0.0|0.0|7
889|ORSOLINI|BOL|10.5|7.0|17
890|OUNAS|NAP|0.0|0.0|13
891|PALACIO|BOL|8.5|7.5|19
892|PALOSCHI|SPA|0.0|0.0|13
893|PANDEV|GEN|11.5|7.5|17
894|PAVOLETTI|CAG|5.5|6.0|27
895|PELLISSIER|CHI|0.0|0.0|13
896|PERICA|FRO|0.0|0.0|6
897|PETAGNA|SPA|10.0|7.0|25
898|PETKOVIC|BOL|0.0|0.0|7
899|PIATEK|MIL|5.0|5.0|34
900|PJACA|FIO|0.0|0.0|11
901|POLITANO|INT|8.0|7.0|22
902|PUCCIARELLI|CHI|5.5|5.5|5
903|PUSSETTO|UDI|5.5|5.5|17
904|QUAGLIARELLA|SAM|11.5|7.5|47
905|RODRIGUEZ A.|EMP|0.0|0.0|4
906|RONALDO|JUV|0.0|0.0|56
907|SALCEDO|INT|0.0|0.0|1
908|SANTANDER|BOL|0.0|0.0|18
909|SAU|SAM|0.0|0.0|11
910|SCAMACCA|SAS|0.0|0.0|3
911|SCHICK|ROM|5.0|5.0|17
912|SILIGARDI|PAR|5.0|5.0|10
913|SIMEONE|FIO|5.0|5.0|19
914|SOTTIL|FIO|0.0|0.0|1
915|SPINELLI|GEN|0.0|0.0|10
916|SPROCATI|PAR|9.5|6.0|7
917|STEPINSKI|CHI|5.0|5.0|15
918|SUSO|MIL|4.5|5.0|21
919|THEREAU|CAG|0.0|0.0|10
920|TROTTA|FRO|6.0|6.0|6
921|TUMMINELLO|ATA|0.0|0.0|4
922|VERDE|ROM|0.0|0.0|8
923|VERDI|NAP|6.0|6.0|19
924|VINICIUS|NAP|0.0|0.0|3
925|VIZEU|UDI|0.0|0.0|9
926|VLAHOVIC|FIO|0.0|0.0|2
927|ZANIMACCHIA|GEN|0.0|0.0|1
928|ZAPATA D.|ATA|7.0|6.0|37
929|ZEKHNINI|FIO|0.0|0.0|2
930|BOGA|SAS|9.0|5.5|14
931|ROSSI A.|LAZ|0.0|0.0|4
932|MONCINI|SPA|0.0|0.0|4
933|KEAN|JUV|5.5|5.5|8
934|PINAMONTI|FRO|0.0|0.0|11
935|BRIGNOLA|SAS|0.0|0.0|8
936|GALANO|PAR|0.0|0.0|12
937|BIABIANY|PAR|5.5|5.5|8
938|DAL MONTE|GEN|0.0|0.0|4
939|MIRALLAS|FIO|5.5|5.5|16
940|KEITA|INT|0.0|0.0|24
941|CAMPBELL|FRO|0.0|0.0|8
942|GERVINHO|PAR|4.5|4.5|25
943|ZAZA|TOR|5.5|5.5|15
944|TEODORCZYK|UDI|0.0|0.0|13
945|ARDAIZ|FRO|0.0|0.0|4
946|GRUBAC|CHI|0.0|0.0|1
947|JUWARA|CHI|0.0|0.0|1
948|MASTAJ|PAR|0.0|0.0|1
949|MURIEL|FIO|5.0|5.0|24
950|SANSONE|BOL|6.0|6.5|16
951|OKAKA|UDI|0.0|0.0|12
952|GABBIADINI|SAM|9.5|7.0|19
953|SANABRIA|GEN|6.0|6.0|17
954|DESPODOV|CAG|0.0|0.0|11
955|SCHIAPPACASSE|PAR|0.0|0.0|7
956|OBERLIN|EMP|0.0|0.0|11
957|MILLICO|TOR|0.0|0.0|2
958|VERDE|CAG|0.0|0.0|1
959|TSADJOUT|MIL|0.0|0.0|1
960|GAETANO|NAP|0.0|0.0|1
961|DAVORDZIE|PAR|0.0|0.0|1
962|CELAR|ROM|0.0|0.0|1
963|RASPADORI|SAS|0.0|0.0|1
964|DORATIOTTO|CAG|0.0|0.0|2
Categorie:Fantacalcio, FantaLega

Fantalega 2018-2019: giornata 27

marzo 19, 2019 Lascia un commento

tutte le giornate

Classifica lega

Squadre pts pG pV pN pP gF gS d_g
Paul Dobbery Team 58 26 18 4 4 67 30 37
Me a san bulgnais 48 26 15 3 8 66 46 20
L-team 46 26 14 4 8 53 43 10
Nizzi 43 26 13 4 9 57 49 8
Centomega 38 26 11 5 10 61 49 12
I siciliani 36 26 11 3 12 36 44 -8
Pilu x tutti 32 26 9 5 12 42 49 -7
F.C. Pippino 32 26 9 5 12 31 38 -7
Schalke 051 19 26 5 4 17 25 53 -28
Double M 17 26 4 5 17 23 60 -37

lega
Giornata 27

I siciliani Double M
L-team Centomega
F.C. Pippino Schalke 051
Nizzi Me a san bulgnais
Pilu x tutti Paul Dobbery Team

Punteggi
sono compresi nel totale i bonus del modificatore di difesa!

Nome pts Nome pts

Classifica coppa

Squadre pts pG pV pN pP gF gS d_g
Paul Dobbery Team 32 15 9 5 1 41 21 20
Me a san Bulgnais 30 15 9 3 3 39 22 17
L-Team 22 15 6 4 5 30 30 0
pilu x tutti 22 15 6 4 5 23 24 -1
I siciliani 21 15 7 0 8 23 24 -1
Centomega 20 15 5 5 5 33 24 9
Nizzi 19 15 5 4 6 33 28 5
F.C. Pippino 15 15 4 3 8 16 32 -16
schalke 051 14 15 4 2 9 11 29 -18
Double M 13 15 3 4 8 14 29 -15

coppa
Giornata 16

schalke 051 Nizzi
Centomega I siciliani
Paul Dobbery Team pilu x tutti
F.C. Pippino L-Team
Me a san Bulgnais Double M

Punteggi
sono compresi nel totale i bonus del modificatore di difesa!

Nome pts Nome pts

Categorie:Fantacalcio, FantaLega