📅  最后修改于: 2023-12-03 15:33:54.171000             🧑  作者: Mango
在 PyQt5 中使用 QSpinBox 控件来获取线程信息。
PyQt5 提供了一系列的控件,其中包括 QSpinBox。它是一个带有增加和减少按钮的小部件,允许用户以一定的步长往上或往下调整数字值。在本文中,我们将探讨如何使用 QSpinBox 来获取线程。
以下是一个简单的示例,演示如何在 PyQt5 中使用 QSpinBox 控件来获取线程:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QSpinBox, QVBoxLayout
from PyQt5.QtCore import QThread
class MyThread(QThread):
def __init__(self, value):
super().__init__()
self.value = value
def run(self):
print("Thread started with value:", self.value)
class App(QWidget):
def __init__(self):
super().__init__()
self.title = 'PyQt5 QSpinBox'
self.left = 100
self.top = 100
self.width = 300
self.height = 150
self.initUI()
def initUI(self):
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)
# Create QSpinBox widget
self.spinBox = QSpinBox(self)
self.spinBox.setMinimum(1)
self.spinBox.setMaximum(100)
self.spinBox.setValue(10)
self.spinBox.valueChanged.connect(self.startThread)
# Create a vertical layout
vbox = QVBoxLayout()
vbox.addWidget(self.spinBox)
# Set the layout for the window
self.setLayout(vbox)
self.show()
def startThread(self):
value = self.spinBox.value()
thread = MyThread(value)
thread.start()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec_())
运行代码后,将显示一个 QSpinBox 控件和一个窗口。用户可以使用按钮提高或降低数字值。每次值发生变化时,都会启动一个新线程,打印一个值。
在本文中,我们学习了如何在 PyQt5 中使用 QSpinBox 控件来获取线程。我们创建了一个小部件,当用户更改值时,调用 startThread 方法启动一个新线程,并将值传递给它。在运行过程中,可以看到每个线程都打印出了其相应的值。
代码片段:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QSpinBox, QVBoxLayout
from PyQt5.QtCore import QThread
class MyThread(QThread):
def __init__(self, value):
super().__init__()
self.value = value
def run(self):
print("Thread started with value:", self.value)
class App(QWidget):
def __init__(self):
super().__init__()
self.title = 'PyQt5 QSpinBox'
self.left = 100
self.top = 100
self.width = 300
self.height = 150
self.initUI()
def initUI(self):
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)
# Create QSpinBox widget
self.spinBox = QSpinBox(self)
self.spinBox.setMinimum(1)
self.spinBox.setMaximum(100)
self.spinBox.setValue(10)
self.spinBox.valueChanged.connect(self.startThread)
# Create a vertical layout
vbox = QVBoxLayout()
vbox.addWidget(self.spinBox)
# Set the layout for the window
self.setLayout(vbox)
self.show()
def startThread(self):
value = self.spinBox.value()
thread = MyThread(value)
thread.start()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec_())