mirror of
https://github.com/maicss/PyQt5-Chinese-tutorial.git
synced 2025-01-08 17:06:18 +08:00
commit
5980827981
@ -124,7 +124,7 @@ class Example(QWidget):
|
||||
|
||||
OVER_CAPACITY = 750
|
||||
|
||||
sld = QSlider(Qt.Orientations.Horizontal, self)
|
||||
sld = QSlider(Qt.Orientation.Horizontal, self)
|
||||
sld.setFocusPolicy(Qt.FocusPolicy.NoFocus)
|
||||
sld.setRange(1, OVER_CAPACITY)
|
||||
sld.setValue(75)
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
本章教程,讲的是 PyQt6 中的拖拽操作。
|
||||
|
||||
计算机图形界面中,拖拽操作是点击一个对象不放,把它放在另外一个地方或者另外一个对象上面的操作。一半来说,这会触发很多类型的行为,或者在两个对象上建立多种关系。
|
||||
计算机图形界面中,拖拽操作是点击一个对象不放,把它放在另外一个地方或者另外一个对象上面的操作。一般来说,这会触发很多类型的行为,或者在两个对象上建立多种关系。
|
||||
|
||||
在计算机图形用户界面中,拖放是(或支持)点击虚拟对象并将其拖到不同位置或另一个虚拟对象上的动作。 一般来说,它可以用来调用多种动作,或者在两个抽象对象之间创建各种类型的关联。
|
||||
|
||||
@ -166,7 +166,7 @@ class Button(QPushButton):
|
||||
|
||||
def mouseMoveEvent(self, e):
|
||||
|
||||
if e.buttons() != Qt.MouseButtons.RightButton:
|
||||
if e.buttons() != Qt.MouseButton.RightButton:
|
||||
return
|
||||
|
||||
mimeData = QMimeData()
|
||||
@ -183,7 +183,7 @@ class Button(QPushButton):
|
||||
|
||||
super().mousePressEvent(e)
|
||||
|
||||
if e.button() == Qt.MouseButtons.LeftButton:
|
||||
if e.button() == Qt.MouseButton.LeftButton:
|
||||
print('press')
|
||||
|
||||
|
||||
@ -243,7 +243,7 @@ class Button(QPushButton):
|
||||
基于 `QPushButton` 创建了一个 `Button` 类,并实现了两个 `QPushButton` 方法:`mouseMoveEvent` 和 `mousePressEvent`。`mouseMoveEvent` 方法是处理拖放操作开始的地方。
|
||||
|
||||
``` python
|
||||
if e.buttons() != Qt.MouseButtons.RightButton:
|
||||
if e.buttons() != Qt.MouseButton.RightButton:
|
||||
return
|
||||
```
|
||||
定义鼠标右键为触发拖拽操作的按钮,鼠标左键只会触发点击事件。
|
||||
@ -266,7 +266,7 @@ def mousePressEvent(self, e):
|
||||
|
||||
super().mousePressEvent(e)
|
||||
|
||||
if e.button() == Qt.MouseButtons.LeftButton:
|
||||
if e.button() == Qt.MouseButton.LeftButton:
|
||||
print('press')
|
||||
```
|
||||
如果鼠标左键点击按钮,会在控制台打印 'press' 消息,注意,这里在父级上也调用了 `mousePressEvent` 方法,不然按钮按下的动作不会展现出来。
|
||||
|
@ -50,7 +50,7 @@ class Example(QWidget):
|
||||
def initUI(self):
|
||||
|
||||
lcd = QLCDNumber(self)
|
||||
sld = QSlider(Qt.Orientations.Horizontal, self)
|
||||
sld = QSlider(Qt.Orientation.Horizontal, self)
|
||||
|
||||
vbox = QVBoxLayout()
|
||||
vbox.addWidget(lcd)
|
||||
@ -188,7 +188,7 @@ class Example(QWidget):
|
||||
self.text = f'x: {x}, y: {y}'
|
||||
|
||||
self.label = QLabel(self.text, self)
|
||||
grid.addWidget(self.label, 0, 0, Qt.Alignment.AlignTop)
|
||||
grid.addWidget(self.label, 0, 0, Qt.AlignmentFlag.AlignTop)
|
||||
|
||||
self.setMouseTracking(True)
|
||||
self.setLayout(grid)
|
||||
|
@ -59,7 +59,7 @@ class Example(QWidget):
|
||||
|
||||
qp.setPen(QColor(168, 34, 3))
|
||||
qp.setFont(QFont('Decorative', 10))
|
||||
qp.drawText(event.rect(), Qt.Alignment.AlignCenter, self.text)
|
||||
qp.drawText(event.rect(), Qt.AlignmentFlag.AlignCenter, self.text)
|
||||
|
||||
|
||||
def main():
|
||||
@ -94,9 +94,9 @@ qp.setFont(QFont('Decorative', 10))
|
||||
这里定义了绘制文本的笔触和字体。
|
||||
|
||||
``` python
|
||||
qp.drawText(event.rect(), Qt.Alignment.AlignCenter, self.text)
|
||||
qp.drawText(event.rect(), Qt.AlignmentFlag.AlignCenter, self.text)
|
||||
```
|
||||
drawText 方法在窗口上绘制文本。paintEvent 的rect方法返回需要更新的矩形。用 `Qt.Alignment.AlignCenter` 在两个维度上对齐文本。
|
||||
drawText 方法在窗口上绘制文本。paintEvent 的rect方法返回需要更新的矩形。用 `Qt.AlignmentFlag.AlignCenter` 在两个维度上对齐文本。
|
||||
|
||||
![Drawing text](./images/drawingtext.png)
|
||||
|
||||
|
@ -253,7 +253,7 @@ class Example(QWidget):
|
||||
|
||||
def initUI(self):
|
||||
|
||||
sld = QSlider(Qt.Orientations.Horizontal, self)
|
||||
sld = QSlider(Qt.Orientation.Horizontal, self)
|
||||
sld.setFocusPolicy(Qt.FocusPolicy.NoFocus)
|
||||
sld.setGeometry(30, 40, 200, 30)
|
||||
sld.valueChanged[int].connect(self.changeValue)
|
||||
@ -296,7 +296,7 @@ if __name__ == '__main__':
|
||||
示例中,模拟了音量控制。通过拖动滑块的手柄,我们可以改变标签上的图像。
|
||||
|
||||
``` python
|
||||
sld = QSlider(Qt.Orientations.Horizontal, self)
|
||||
sld = QSlider(Qt.Orientation.Horizontal, self)
|
||||
```
|
||||
|
||||
创建一个水平的 `QSlider`。
|
||||
|
@ -198,11 +198,11 @@ class Example(QWidget):
|
||||
bottom = QFrame(self)
|
||||
bottom.setFrameShape(QFrame.Shape.StyledPanel)
|
||||
|
||||
splitter1 = QSplitter(Qt.Orientations.Horizontal)
|
||||
splitter1 = QSplitter(Qt.Orientation.Horizontal)
|
||||
splitter1.addWidget(topleft)
|
||||
splitter1.addWidget(topright)
|
||||
|
||||
splitter2 = QSplitter(Qt.Orientations.Vertical)
|
||||
splitter2 = QSplitter(Qt.Orientation.Vertical)
|
||||
splitter2.addWidget(splitter1)
|
||||
splitter2.addWidget(bottom)
|
||||
|
||||
@ -231,13 +231,13 @@ topleft.setFrameShape(QFrame.Shape.StyledPanel)
|
||||
```
|
||||
给框架组件设置一些样式,这样更容易看清楚边界。
|
||||
``` python
|
||||
splitter1 = QSplitter(Qt.Orientations.Horizontal)
|
||||
splitter1 = QSplitter(Qt.Orientation.Horizontal)
|
||||
splitter1.addWidget(topleft)
|
||||
splitter1.addWidget(topright)
|
||||
```
|
||||
创建一个有俩框架组件的 `QSplitter` 组件。
|
||||
``` python
|
||||
splitter2 = QSplitter(Qt.Orientations.Vertical)
|
||||
splitter2 = QSplitter(Qt.Orientation.Vertical)
|
||||
splitter2.addWidget(splitter1)
|
||||
```
|
||||
再添加一个分割条和一个框架组件。
|
||||
|
Loading…
x
Reference in New Issue
Block a user