Python简易IDE工作界面制作

、 休闲一下,学习编程还是要学习一些界面编程,能够根据需要制作图形操作界面,这样我们开发的程序才能方便操作和使用,同时获得更友好的人机交互体验。下面是一个用PyQt5制作的简易界面,供大学参考。如下图所示:

以下为程序代码,较为简陋,制作简单的IDE程序可在此基础上做更复杂的设计完善。

python 复制代码
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QMenuBar, QToolBar, QStatusBar, QDockWidget, QTreeWidget, QTreeWidgetItem, QTextEdit, QMainWindow, QVBoxLayout, QWidget
from PyQt5.QtCore import Qt

class IDEWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # 菜单栏
        menuBar = self.menuBar()
        fileMenu = menuBar.addMenu('File')
        editMenu = menuBar.addMenu('Edit')
        viewMenu = menuBar.addMenu('View')
        helpMenu = menuBar.addMenu('Help')

        # 工具栏
        toolBar = self.addToolBar('Toolbar')
        toolBar.addAction('Open')
        toolBar.addAction('Save')

        # 状态栏
        self.statusBar = self.statusBar()
        self.statusBar.showMessage('Ready')

        # 目录树
        directoryTree = QTreeWidget()
        directoryTree.setColumnCount(1)
        directoryTree.setHeaderLabels(['Directory'])
        item1 = QTreeWidgetItem(directoryTree)
        item1.setText(0, 'Project')
        item2 = QTreeWidgetItem(item1)
        item2.setText(0, 'File1.py')
        item3 = QTreeWidgetItem(item1)
        item3.setText(0, 'File2.py')

        # 工作区
        self.editor = QTextEdit()

        # 设置目录树为浮动窗口
        directoryDock = QDockWidget('Directory', self)
        directoryDock.setWidget(directoryTree)

        # 将目录树加入窗口
        self.addDockWidget(Qt.LeftDockWidgetArea, directoryDock)

        # 设置中心窗口小部件
        centralWidget = QWidget()
        layout = QVBoxLayout()
        layout.addWidget(self.editor)
        centralWidget.setLayout(layout)
        self.setCentralWidget(centralWidget)

        # 显示窗口
        self.setGeometry(100, 100, 800, 600)
        self.setWindowTitle('IDE')
        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    mainWindow = IDEWindow()
    sys.exit(app.exec_())

今天就到这里,感谢大家观看。

相关推荐
茯苓gao1 小时前
嵌入式开发笔记:CANopen相关移位运算与通信协议术语详解
网络·嵌入式硬件·学习·信息与通信
疋瓞1 小时前
python和C++对比(1)_数据类型和数据结构
数据结构·c++·python
C语言小火车1 小时前
C++ 堆排序深度精讲:基于完全二叉树的选择排序进化,最坏情况 O(n log n) 的稳定王者
开发语言·c++·算法·排序算法·堆排序
北冥you鱼1 小时前
abigen 最佳实践:从入门到精通,高效生成 Go 语言合约绑定
开发语言·golang·区块链
ALex_zry2 小时前
C++26 std::complex 结构化绑定详解:auto [re, im] = c
c语言·开发语言·c++
如此这般英俊2 小时前
手搓Claude Code-第六章 subagent
数据结构·人工智能·python·语言模型·自然语言处理
她说..3 小时前
Java 默认值设置方式
java·开发语言·后端·springboot
元Y亨H3 小时前
Python - FastAPI 全方位介绍
python·fastapi
忧郁的紫菜3 小时前
基础实现:单篇 Markdown 转 Word
开发语言·c#·word
甜美的小天鹅3 小时前
Swifter C#之inline还是不inline,这是个问题
开发语言·c#