#!/usr/bin/env python
import sys
from PyQt4 import QtCore
from PyQt4 import QtGui


class UiMainWindow(object):
    def setup_ui(self, main_window):
        main_window.setObjectName("MainWindow")
        main_window.resize(220, 150)
        main_window.setMinimumSize(QtCore.QSize(220, 150))
        main_window.setMaximumSize(QtCore.QSize(220, 150))
        self.centralwidget = QtGui.QWidget(main_window)
        self.centralwidget.setObjectName("centralwidget")
        self.x_spin = QtGui.QSpinBox(self.centralwidget)
        self.x_spin.setGeometry(QtCore.QRect(10, 10, 80, 20))
        self.x_spin.setMinimumSize(QtCore.QSize(80, 20))
        self.x_spin.setMaximumSize(QtCore.QSize(80, 20))
        self.x_spin.setMaximum(1920)
        self.x_spin.setObjectName("x_spin")
        self.y_spin = QtGui.QSpinBox(self.centralwidget)
        self.y_spin.setGeometry(QtCore.QRect(100, 10, 80, 20))
        self.y_spin.setMinimumSize(QtCore.QSize(80, 20))
        self.y_spin.setMaximumSize(QtCore.QSize(80, 20))
        self.y_spin.setMaximum(1080)
        self.y_spin.setObjectName("y_spin")
        self.label_x = QtGui.QLabel(self.centralwidget)
        self.label_x.setGeometry(QtCore.QRect(10, 39, 80, 25))
        self.label_x.setMinimumSize(QtCore.QSize(80, 25))
        self.label_x.setMaximumSize(QtCore.QSize(80, 25))
        font = QtGui.QFont()
        font.setPointSize(14)
        self.label_x.setFont(font)
        self.label_x.setAlignment(QtCore.Qt.AlignLeading | QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter)
        self.label_x.setObjectName("label_x")
        self.label_y = QtGui.QLabel(self.centralwidget)
        self.label_y.setGeometry(QtCore.QRect(100, 40, 80, 25))
        self.label_y.setMinimumSize(QtCore.QSize(80, 25))
        self.label_y.setMaximumSize(QtCore.QSize(80, 25))
        font = QtGui.QFont()
        font.setPointSize(14)
        self.label_y.setFont(font)
        self.label_y.setObjectName("label_y")
        self.pcent_slider = QtGui.QSlider(self.centralwidget)
        self.pcent_slider.setGeometry(QtCore.QRect(190, 10, 16, 131))
        self.pcent_slider.setMinimum(1)
        self.pcent_slider.setMaximum(100)
        self.pcent_slider.setProperty("value", 100)
        self.pcent_slider.setOrientation(QtCore.Qt.Vertical)
        self.pcent_slider.setTickPosition(QtGui.QSlider.NoTicks)
        self.pcent_slider.setObjectName("pcent_slider")
        self.lcdNumber = QtGui.QLCDNumber(self.centralwidget)
        self.lcdNumber.setGeometry(QtCore.QRect(10, 80, 101, 50))
        self.lcdNumber.setMinimumSize(QtCore.QSize(0, 50))
        self.lcdNumber.setProperty("intValue", 100)
        self.lcdNumber.setObjectName("lcdNumber")
        self.label = QtGui.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(90, 39, 10, 25))
        self.label.setMinimumSize(QtCore.QSize(0, 25))
        self.label.setMaximumSize(QtCore.QSize(16777215, 25))
        font = QtGui.QFont()
        font.setPointSize(12)
        self.label.setFont(font)
        self.label.setObjectName("label")
        main_window.setCentralWidget(self.centralwidget)

        QtCore.QObject.connect(self.pcent_slider, QtCore.SIGNAL("valueChanged(int)"), self.lcdNumber.display)
        QtCore.QMetaObject.connectSlotsByName(main_window)

        main_window.setWindowTitle("Dai's Size Slider")
        self.label.setText("x")


class ExampleApp(QtGui.QMainWindow, UiMainWindow):

    def __init__(self, parent=None):
        super(ExampleApp, self).__init__(parent)
        self.setup_ui(self)
        self.home()

    def home(self):
        self.pcent_slider.valueChanged.connect(self.change_value)
        self.label_x.clear()
        self.label_y.clear()
        pass

    def change_value(self, val):
        if self.x_spin.value() == 0 or self.y_spin.value() == 0:
            pass
        else:
            self.get_pcent(val)

    def get_pcent(self, val):
        oldx = self.x_spin.value()
        oldy = self.y_spin.value()
        newx = oldx/100.0*val
        newy = oldy/100.0*val
        self.label_x.setText(str(newx))
        self.label_y.setText(str(newy))


def main():
    app = QtGui.QApplication(sys.argv)
    form = ExampleApp()
    form.show()
    app.exec_()

if __name__ == '__main__':
    main()
