在 PyQt4 和 Python 中,我们创建了一个简单的 GUI,其中包含一个垂直滑动条和一个 QLCDNumber 小部件。我们已经设法使用一个函数访问了滑块的值。现在,我们想在 QLCDNumber 显示器中显示新生成的值(ipp)。如何做到这一点?有没有办法在 QLCDNumber 显示器中显示新值(ipp)?
2、解决方案
要解决这个问题,我们需要添加一个简单的函数:
def abc(self, ip):
self.ipp = ip - 10
self.lcdNumber.display(self.ipp)
这个函数将收到一个整数作为参数(滑块的值),并将其减去 10,然后将结果显示在 QLCDNumber 小部件上。
我们还需要在以下位置连接滑块的 valueChanged 信号和 abc 函数:
QtCore.QObject.connect(self.verticalSlider, QtCore.SIGNAL(_fromUtf8("valueChanged(int)")), self.abc)
这将确保每当滑块的值改变时,abc 函数都会被调用并更新 QLCDNumber 小部件上的显示。
以下是完整的代码示例:
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
_fromUtf8 = lambda s: s
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(733, 498)
self.centralWidget = QtGui.QWidget(MainWindow)
self.centralWidget.setObjectName(_fromUtf8("centralWidget"))
self.verticalSlider = QtGui.QSlider(self.centralWidget)
self.verticalSlider.setGeometry(QtCore.QRect(110, 80, 20, 331))
self.verticalSlider.setOrientation(QtCore.Qt.Vertical)
self.verticalSlider.setObjectName(_fromUtf8("verticalSlider"))
self.lcdNumber = QtGui.QLCDNumber(self.centralWidget)
self.lcdNumber.setGeometry(QtCore.QRect(320, 180, 191, 81))
self.lcdNumber.setObjectName(_fromUtf8("lcdNumber"))
MainWindow.setCentralWidget(self.centralWidget)
self.menuBar = QtGui.QMenuBar(MainWindow)
self.menuBar.setGeometry(QtCore.QRect(0, 0, 733, 21))
self.menuBar.setObjectName(_fromUtf8("menuBar"))
MainWindow.setMenuBar(self.menuBar)
self.mainToolBar = QtGui.QToolBar(MainWindow)
self.mainToolBar.setObjectName(_fromUtf8("mainToolBar"))
MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.mainToolBar)
self.statusBar = QtGui.QStatusBar(MainWindow)
self.statusBar.setObjectName(_fromUtf8("statusBar"))
MainWindow.setStatusBar(self.statusBar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
QtCore.QObject.connect(self.verticalSlider, QtCore.SIGNAL(_fromUtf8("valueChanged(int)")), self.abc)
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "MainWindow", None, QtGui.QApplication.UnicodeUTF8))
def abc(self, ip):
self.ipp = ip - 10
self.lcdNumber.display(self.ipp)
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
MainWindow = QtGui.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
希望这个答案对您有所帮助!
在 PyQt4 和 Python 中,我们创建了一个简单的 GUI,其中包含一个垂直滑动条和一个 QLCDNumber 小部件。我们已经设法使用一个函数访问了滑块的值。现在,我们想在 QLCDNumber 显示器中显示新生成的值(ipp)。如何做到这一点?有没有办法在 QLCDNumber 显示器中显示新值(ipp)?
## 2、解决方案
要解决这个问题,我们需要添加一个简单的函数:
```python
def abc(self, ip):
self.ipp = ip - 10
self.lcdNumber.display(self.ipp)
```
这个函数将收到一个整数作为参数(滑块的值),并将其减去 10,然后将结果显示在 QLCDNumber 小部件上。
我们还需要在以下位置连接滑块的 valueChanged 信号和 abc 函数:
```python
QtCore.QObject.connect(self.verticalSlider, QtCore.SIGNAL(_fromUtf8("valueChanged(int)")), self.abc)
```
这将确保每当滑块的值改变时,abc 函数都会被调用并更新 QLCDNumber 小部件上的显示。
以下是完整的代码示例:
```python
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
_fromUtf8 = lambda s: s
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(733, 498)
self.centralWidget = QtGui.QWidget(MainWindow)
self.centralWidget.setObjectName(_fromUtf8("centralWidget"))
self.verticalSlider = QtGui.QSlider(self.centralWidget)
self.verticalSlider.setGeometry(QtCore.QRect(110, 80, 20, 331))
self.verticalSlider.setOrientation(QtCore.Qt.Vertical)
self.verticalSlider.setObjectName(_fromUtf8("verticalSlider"))
self.lcdNumber = QtGui.QLCDNumber(self.centralWidget)
self.lcdNumber.setGeometry(QtCore.QRect(320, 180, 191, 81))
self.lcdNumber.setObjectName(_fromUtf8("lcdNumber"))
MainWindow.setCentralWidget(self.centralWidget)
self.menuBar = QtGui.QMenuBar(MainWindow)
self.menuBar.setGeometry(QtCore.QRect(0, 0, 733, 21))
self.menuBar.setObjectName(_fromUtf8("menuBar"))
MainWindow.setMenuBar(self.menuBar)
self.mainToolBar = QtGui.QToolBar(MainWindow)
self.mainToolBar.setObjectName(_fromUtf8("mainToolBar"))
MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.mainToolBar)
self.statusBar = QtGui.QStatusBar(MainWindow)
self.statusBar.setObjectName(_fromUtf8("statusBar"))
MainWindow.setStatusBar(self.statusBar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
QtCore.QObject.connect(self.verticalSlider, QtCore.SIGNAL(_fromUtf8("valueChanged(int)")), self.abc)
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "MainWindow", None, QtGui.QApplication.UnicodeUTF8))
def abc(self, ip):
self.ipp = ip - 10
self.lcdNumber.display(self.ipp)
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
MainWindow = QtGui.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
```
希望这个答案对您有所帮助!
````