PyQt5教程:如何在按钮之间绘制直线?
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_())
代码解释
- 首先,我们导入了必要的类:
QApplication、QMainWindow、QPushButton、QPainter、QPen、Qt和QLine。2. 然后,我们创建了一个名为MainWindow的类,它是QMainWindow的子类。3. 在initUI()方法中,我们创建了两个按钮 (button1和button2) 并设置了它们的位置和大小。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()方法绘制直线。
总结
通过使用 QPainter、QPen 和 QLine 类,您可以轻松地在 PyQt5 应用程序中的按钮之间绘制直线。 您可以根据需要修改代码以更改线条的颜色、宽度和样式。
原文地址: https://www.cveoy.top/t/topic/SXn 著作权归作者所有。请勿转载和采集!