#!/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()