PyQt5教程:如何在按钮之间绘制直线?

本教程将向您展示如何在 PyQt5 应用程序的按钮之间绘制直线。

问题

您想要在 PyQt5 应用程序中的两个按钮之间绘制一条直线。

解决方案

您可以使用 QPainter 类和 QLine 类来实现这一点。

以下是示例代码:pythonimport sysfrom PyQt5.QtWidgets import QApplication, QMainWindow, QPushButtonfrom PyQt5.QtGui import QPainter, QPenfrom PyQt5.QtCore import Qt, QLine

class MainWindow(QMainWindow): def init(self): super().init() self.initUI()

def initUI(self):        self.setGeometry(100, 100, 400, 300)        self.setWindowTitle('绘制直线示例')

    button1 = QPushButton('按钮1', self)        button1.setGeometry(50, 50, 100, 30)

    button2 = QPushButton('按钮2', self)        button2.setGeometry(200, 50, 100, 30)

    self.show()

def paintEvent(self, event):        painter = QPainter(self)        pen = QPen(Qt.black, 2, Qt.SolidLine)        painter.setPen(pen)

    line = QLine(button1.x() + button1.width(), button1.y() + button1.height() // 2,                     button2.x(), button2.y() + button2.height() // 2)        painter.drawLine(line)

if name == 'main': app = QApplication(sys.argv) window = MainWindow() sys.exit(app.exec_())

代码解释

  1. 首先,我们导入了必要的类:QApplicationQMainWindowQPushButtonQPainterQPenQtQLine。2. 然后,我们创建了一个名为 MainWindow 的类,它是 QMainWindow 的子类。3. 在 initUI() 方法中,我们创建了两个按钮 (button1button2) 并设置了它们的位置和大小。4. 在 paintEvent() 方法中,我们创建了一个 QPainter 对象和一个 QPen 对象。 5. 我们使用 QPen 对象设置画笔的颜色、宽度和样式。6. 然后,我们使用 QLine 类创建一条直线,该直线从第一个按钮的右侧中心点 (button1.x() + button1.width(), button1.y() + button1.height() // 2) 到第二个按钮的左侧中心点 (button2.x(), button2.y() + button2.height() // 2)。7. 最后,我们使用 drawLine() 方法绘制直线。

总结

通过使用 QPainterQPenQLine 类,您可以轻松地在 PyQt5 应用程序中的按钮之间绘制直线。 您可以根据需要修改代码以更改线条的颜色、宽度和样式。


原文地址: https://www.cveoy.top/t/topic/SXn 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录