geekdoc-python-zh/docs/pythonbasics/105.md

54 lines
1.5 KiB
Markdown

# `QDial`
> 原文: [https://pythonbasics.org/QDial/](https://pythonbasics.org/QDial/)
PyQT 中包含一个拨号小部件(`QDial`)。它看起来像是您经常在混合面板上看到的音量控件。 它是`PyQt5.QtWidgets`的一部分。
![pyqt dial QDial](img/9407ce3a47e209822978ef051a94a41c.jpg)
`QDial`小部件的外观可能会在操作系统上发生变化。 但是逻辑在所有平台上都是相同的。
## `QDial`
### 拨号小部件示例
它具有最小值和最大值,可以使用方法`setMinimum()`和`setMaximum()`进行设置。
您可以使用`setValue()`设置默认值。 如果更改了值,则可以调用方法(`.valueChanged.connect(self.sliderMoved)`)。
当前值为`.value()`。
### 示例
下面的示例创建一个拨号小部件窗口。 您可以复制并粘贴程序进行测试。 必须安装 PyQt5 才能运行该程序。
```py
from PyQt5.QtWidgets import *
import sys
class Window(QWidget):
def __init__(self):
QWidget.__init__(self)
layout = QGridLayout()
self.setLayout(layout)
self.dial = QDial()
self.dial.setMinimum(0)
self.dial.setMaximum(100)
self.dial.setValue(40)
self.dial.valueChanged.connect(self.sliderMoved)
layout.addWidget(self.dial)
def sliderMoved(self):
print("Dial value = %i" % (self.dial.value()))
app = QApplication(sys.argv)
screen = Window()
screen.show()
sys.exit(app.exec_())
```
[下载示例](https://gum.co/pysqtsamples)