主窗口(QMainWindow)如何放入文本编辑器(QPlainTextEdit)等继承自QWidget的对象--(重构版)

主窗口(QMainWindow)如何放入文本编辑器(QPlainTextEdit)等继承自QWidget的对象--(重构版)

前置知识
  • 由主窗口布局图像可知,QPlanTextEdit()需要放入CentrlWidget()
旧版区别

主要修复了一些可能的逻辑错误 造成的代码冗余

  1. 直接设置中心控件,无需继承主窗口
  2. 布局管理器直接继承主窗口,无需后续设置布局
代码示例
py 复制代码
# coding = utf-8

from PySide6.QtWidgets import (QMainWindow,QWidget,QVBoxLayout,QPlainTextEdit,QApplication)
import sys


if __name__ == "__main__":
    app = QApplication(sys.argv)
    mainWindow = QMainWindow()

	# 让文本编辑器 显示到 中央窗口上
    centralWidget = QWidget()
    mainWindow.setCentralWidget(centralWidget) # 无需传入父类 直接实例化 后续设置为中心控件即可
    plainTextEdit = QPlainTextEdit() # 无需传入父类 直接实例化 中心布局添加该控件即可

	# 放入中央窗口
    vbox = QVBoxLayout(centralWidget) #  直接传入中心窗口 实现中心布局
    vbox.addWidget(plainTextEdit)
    
    mainWindow.show()
    sys.exit(app.exec())
py 复制代码
# coding = utf-8
from PySide6.QtWidgets import (QMainWindow,QWidget,QVBoxLayout,QPlainTextEdit,QApplication)
import sys

class MyMainWin(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi()
        
    def setupUi(self):
        # 让文本编辑器 显示到 中央窗口上
        centralWidget = QWidget() # 无需传入父类 直接实例化 后续设置为中心控件即可
        self.setCentralWidget(centralWidget)
        plainTextEdit = QPlainTextEdit() # 无需传入父类 直接实例化 中心布局添加该控件即可

		# 放入中央窗口
        vbox = QVBoxLayout(centralWidget) # 直接传入中心窗口 实现中心布局
        vbox.addWidget(plainTextEdit)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    mainWindow = MyMainWin()
    mainWindow.show()
    sys.exit(app.exec())
相关推荐
2401_8318249610 分钟前
使用Fabric自动化你的部署流程
jvm·数据库·python
njidf29 分钟前
Python日志记录(Logging)最佳实践
jvm·数据库·python
@我漫长的孤独流浪30 分钟前
Python编程核心知识点速览
开发语言·数据库·python
宇擎智脑科技31 分钟前
A2A Python SDK 源码架构解读:一个请求是如何被处理的
人工智能·python·架构·a2a
2401_8512729932 分钟前
实战:用Python分析某电商销售数据
jvm·数据库·python
vx_biyesheji000134 分钟前
Python 全国城市租房洞察系统 Django框架 Requests爬虫 可视化 房子 房源 大数据 大模型 计算机毕业设计源码(建议收藏)✅
爬虫·python·机器学习·django·flask·课程设计·旅游
code 小楊43 分钟前
yrb 1.5.0 正式发布:Python 极简国内下载加速与全景可视化终端体验!
开发语言·python
2401_857918291 小时前
用Python和Twilio构建短信通知系统
jvm·数据库·python
樹JUMP1 小时前
使用Docker容器化你的Python应用
jvm·数据库·python
章鱼丸-1 小时前
DAY31 文件的拆分和写法
开发语言·python