首页 > 解决方案 > 特定小部件的paintEvent()

问题描述

此示例在主窗口中绘制一个椭圆。单击主窗口中的按钮后,我想在辅助窗口中绘制椭圆。但是,这无需创建另一个类。我试过了,但我做不到。

另一个问题:是否可以在 Box Layout 中插入几何图形?


#!/usr/bin/python3.6
# -*- coding: utf-8 -*-

import sys
from PyQt5.QtWidgets import QMainWindow, QApplication, QPushButton, QDialog
from PyQt5 import QtGui
from PyQt5.QtGui import QPainter,QBrush,QPen
from PyQt5 import QtCore

class Window(QMainWindow):
    def __init__(self):
        super().__init__()
        title = "Main Window";left=100;top=100;width=1200;height=800
        self.setWindowTitle(title)
        self.setGeometry(left,top,width,height)
        self.Create_Button()
        self.show()

    def Create_Button(self):
        button = QPushButton("Click", self)
        button.setGeometry(30,100,200,80)
        button.clicked.connect(self.SecondWin)

    def paintEvent(self,event):
        painter = QPainter(self)
        painter.setPen(QPen(QtCore.Qt.red,6,QtCore.Qt.SolidLine))
        painter.setBrush(QBrush(QtGui.QColor(45,171,200),QtCore.Qt.SolidPattern))
        painter.drawEllipse(550,150,300,600)

    def SecondWin(self,event):
        mydialog = QDialog(self)
        mydialog.setWindowTitle("Second Window")
        mydialog.setGeometry(400,200,600,300)
        mydialog.show()


    App = QApplication(sys.argv)
    window = Window()
    sys.exit(App.exec_())

标签: pythonpython-3.xpyqtpyqt5qpainter

解决方案


推荐阅读