qt如何在qlaber画一个十字
时间: 2023-06-15 18:02:09 浏览: 268
基于Qt和C++实现的鼠标十字线+源码
在Qt中,在QLabel上画一个十字十分简单。您只需要创建一个类似于QPainter的Painter对象,使用它的drawLine函数来画两条直线就可以了。
下面是一个示例代码:
```python
from PyQt5.QtGui import QPainter, QColor, QPen
from PyQt5.QtCore import Qt, QPoint
from PyQt5.QtWidgets import QMainWindow, QLabel, QApplication
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
self.label = QLabel(self)
self.label.setGeometry(10, 10, 200, 200)
self.show()
def paintEvent(self, event):
painter = QPainter(self)
painter.setPen(QPen(QColor(Qt.black), 2, Qt.SolidLine))
center_x = self.label.geometry().center().x()
center_y = self.label.geometry().center().y()
# 画竖直线
painter.drawLine(center_x, 0, center_x, 2 * center_y)
# 画水平线
painter.drawLine(0, center_y, 2 * center_x, center_y)
if __name__ == '__main__':
app = QApplication([])
win = MyWindow()
app.exec_()
```
在这个例子中,一个QMainWindow被创建出来,并在它里边添加了一个QLabel,然后在paintEvent方法中使用QPainter的实例来画两条直线组成十字。每条线的起点和终点都是在QLabel的中心,因此获得QLabel的中心点的方法是,计算出QLabel的geometry属性的中心点坐标。
阅读全文