日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

QT5界面操作3: QPainter和paintEvent(self, event)的配合

發布時間:2025/3/21 65 豆豆
生活随笔 收集整理的這篇文章主要介紹了 QT5界面操作3: QPainter和paintEvent(self, event)的配合 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一? 說明

????????本篇繼續以顯示鼠標位置做例;用窗口的paintEvent事件進行顯示。本例示范如何用painter、update、paintEvent幾個方面的配套。

????????注意: QPainter幾乎只能在窗口的paintEvent事件中使用。

二? 示例代碼

import sys from PyQt5.QtCore import (QEvent, QTimer, Qt,QPoint) from PyQt5.QtWidgets import (QApplication, QMenu,QMainWindow) from PyQt5.QtGui import QPainterclass Widget( QMainWindow ):def __init__(self, parent=None):super(Widget, self).__init__(parent)self.text ='hello worlds'self.resize(1200, 800)self.move(100, 100)#設置標題self.setWindowTitle("Events")self.setMouseTracking(True)def mouseMoveEvent(self, event):#如果沒有鼠標雙擊,執行globalPos = self.mapToGlobal(event.pos())x = globalPos.x()y = globalPos.y()self.text = '鼠標位置 {0:4d},{1:4d} '.format(x, y)self.update()def paintEvent(self, event):text = self.textpainter = QPainter(self)if self.text:#顯示給定坐標處的文本,坐標,對齊方式。文本內容# painter.drawText(self.rect(), Qt.AlignBottom | Qt.AlignHCenter, self.message)painter.drawText(QPoint(50, 50), self.text);#5秒鐘后觸發清空信息的函數,并重新繪制事件# QTimer.singleShot(5000, self.clearMessage)# QTimer.singleShot(5000, self.update)if __name__ == "__main__":app = QApplication(sys.argv)form = Widget()form.show()app.exec_()

三、代碼說明

3.1 定義一個全局變量,這是要顯示的字符串

? ? self.text ='hello worlds'

3.2? 定義鼠標的坐標

? def mouseMoveEvent(self, event):
? ? #如果沒有鼠標雙擊,執行
? ? globalPos = self.mapToGlobal(event.pos())
? ? x = globalPos.x()
? ? y = globalPos.y()
? ? self.text = '鼠標位置 {0:4d},{1:4d} '.format(x, y)

? ? self.update()

  • 鼠標移動后,坐標位置改變,保存位置? self.text = '鼠標位置 {0:4d},{1:4d} '.format(x, y)
  • 自動繪制:self.update()

3.3 繪制函數

  • ? ? ? 定義一個刷子,準備畫本窗口:painter = QPainter(self)? ??
  • ? ? ? 對窗口進行繪制:painter.drawText(QPoint(50, 50), self.text);

或用

painter.drawText(self.rect(), Qt.AlignCenter, self.text)

將文字顯示在窗口中間。

四、效果

總結

以上是生活随笔為你收集整理的QT5界面操作3: QPainter和paintEvent(self, event)的配合的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。