【问题标题】:Drawing using PyQt Painter使用 PyQt Painter 绘图
【发布时间】:2020-04-09 11:03:37
【问题描述】:

我正在使用 PyQt5,我想根据用户对现有按钮的点击来绘制文本。

文字直接出现在Qwidget上,我希望文字在点击按钮后出现。 怎么办?

我的代码是这样的:

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *



class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()


    def initUI(self):

        self.text = "Just For Test"

        self.setGeometry(300, 300, 280, 170)
        self.setWindowTitle('Drawing text')
        self.btn1 = QPushButton("Button 1", self)
        self.btn1.move(10, 10)
        self.show()
    def paintEvent(self,event):
        qp = QPainter()
        qp.begin(self)
        self.drawText(event, qp)
        qp.end()



    def drawText(self, event, qp):
        qp.setPen(QColor(168, 34, 3))
        qp.setFont(QFont('Decorative', 10))
        qp.drawText(event.rect(), Qt.AlignCenter, self.text)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

【问题讨论】:

    标签: python pyqt pyqt5


    【解决方案1】:

    首先,将文本设置为空:

    self.text = ""
    

    那么,创建一个按钮点击事件就很重要了:

    self.btn1 = QPushButton("Button 1", self)
    self.btn1.clicked.connect(self.button_click)
    

    创建一个通过点击按钮调用的函数:

    def button_click(self):
        self.text = "Just For Test"
        self.repaint()
    

    重绘会刷新你的QPaint

    【讨论】:

      猜你喜欢
      • 2021-08-18
      • 1970-01-01
      • 2020-11-15
      • 2015-01-15
      • 1970-01-01
      • 2016-05-10
      • 1970-01-01
      • 1970-01-01
      • 2016-06-24
      相关资源
      最近更新 更多