概述
在QtWidgets中进行
1、qt窗口代码
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(401, 318)
self.stackedWidget = QtWidgets.QStackedWidget(Form)
self.stackedWidget.setGeometry(QtCore.QRect(10, 10, 381, 291))
self.stackedWidget.setStyleSheet("")
self.stackedWidget.setFrameShape(QtWidgets.QFrame.Panel)
self.stackedWidget.setObjectName("stackedWidget")
self.retranslateUi(Form)
self.stackedWidget.setCurrentIndex(1)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "zikong"))
2、主程序和绘图类
import sys
from PyQt5.QtGui import *
from zikong import Ui_Form
from PyQt5.Qt import *
class HuiTu(QWidget, Ui_Form):
def __init__(self):
super().__init__()
self.setupUi(self)
self.area = PaintArea()
self.stackedWidget.addWidget(self.area)
class PaintArea(QWidget):
def __init__(self):
super(PaintArea, self).__init__()
# self.setWindowTitle("绘图窗口")
self.setPalette(QPalette(Qt.gray))
self.setAutoFillBackground(True)
self.setMinimumSize(500, 400)
self.pen = QPen()
self.brush = QBrush()
def paintEvent(self, QPaintEvent):
p = QPainter(self)
# 画笔
p.setPen(self.pen)
# 填充
p.setBrush(self.brush)
# 绘制目标点坐标
rect = QRect(50, 100, 200, 100)
p.drawLine(rect.topLeft(), rect.bottomRight())
print(rect.topLeft(), rect.bottomRight())
if __name__ == '__main__':
app = QApplication(sys.argv)
form = HuiTu()
form.show()
# a = PaintArea()
# a.show()
app.exec_()
效果图
注:绘图可以在
QWidget中绘图,也可以在QMainWindow 中绘图,
所绘图的控件中必须包含 .addWidget()方法,如
QStackedWidget和 各种 Layout
最后
以上就是调皮大象为你收集整理的Pyqt5, 在子窗口子控件中绘图的全部内容,希望文章能够帮你解决Pyqt5, 在子窗口子控件中绘图所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复