python - 特定小部件的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_())
解决方案
推荐阅读
- bittorrent - Magnet 真的会移除 Tracker Servers 吗?
- xml - 使用 XSLT 从 XML 文件生成索引
- angularjs - Angular 7 & ngUpgrade:仅为 Angular 组件定义全局 css
- java - java - 如何在“实例化后”的java中设置数组中多个元素的值?
- mysql - 如何连接相互依赖的表
- amcharts - 创建饼图的饼图 amCharts
- math - 我如何处理平均平均精度边缘情况
- latex - 如何在 Confluence 文档中包含 LaTeX 内联
- android - 如何将子视图独立移动到父视图?
- .net - .NET Core 与 .NET Framework 的可扩展性