paintEvent () для определенного виджета - PullRequest
0 голосов
/ 29 апреля 2019

Этот пример рисует эллипс в главном окне. Я хотел бы нарисовать эллипс во вторичном окне, как только я нажму кнопку в главном окне. Это, однако, без необходимости создания другого класса. Я пытался, но не могу.

Еще один вопрос: можно ли вставить геометрическую фигуру в макет коробки?


#!/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_())
...