使用Eric4+PyQt4制作一个简单的文本编辑器

1. 新建工程。

打开Eric4,选择菜单Project->New新建一个叫做PyNotePad的工程,选择好工程所保存的路径后,点OK,就可以了。注:点了OK后还会弹出版本控制器的选择对话框,安装个人的不同情况来选,这里我们就选None

 

2. 制作界面

Eric4的左侧有一块区域叫做Project-Viewer, 如下图所示。

使用Eric4+PyQt4制作一个简单的文本编辑器_第1张图片

 

我们选中第二个Tab(Forms), 在下方的空白区域右键,选择 New form, 在下拉框中选择Main Window, 并保存成 NotePad.ui。此时,我们可以看到, QtDesigner4自动打开了。

在界面上,我使用了两个PushButtonsTextEdit控件。

 使用Eric4+PyQt4制作一个简单的文本编辑器_第2张图片

PushButton控件上双击就可以更改PushButton所显示的名称。这里,我将这两个按钮分别设置成 Open File Close”。我们将“Open File”这个按钮对应的objectName设置成“button_open,TextEdit控件设置成 editor_window”,将对话框窗口objectName设置成notepad

使用Eric4+PyQt4制作一个简单的文本编辑器_第3张图片使用Eric4+PyQt4制作一个简单的文本编辑器_第4张图片

PyQt4下,事件处理方面的术语为信号,即signalslot。事件对应信号signal,而事件的处理函数则称为slot槽。

PyQt4有一些预定义的slot,我们可以直接用,比如退出按钮的slot,其实就是关闭对话框,这个slot已经在PyQt4中有定义了。对于这样的slot,我们不用单独写代码,在QtDesigner中就可以完成。

       在这里,我们对Close这个按钮的点击事件采用PyQt自带的处理函数。 

       在工具栏中选择编辑信号/ ,点中Close按钮,拖动鼠标,会出现如下图的情况,松开后就会出现配置连接这个对话框。将“显示从QWidget继承的信号和槽”前面的框打上勾,然后在对话框的左边选中 clicked() 对话框的右边选中close(),点击确定就好啦。此时可以按快捷键 Ctrl+R , 预览我们做的界面的效果。当我们点击Close这个按钮的时候,对话框理所当然的关掉啦~

使用Eric4+PyQt4制作一个简单的文本编辑器_第5张图片

使用Eric4+PyQt4制作一个简单的文本编辑器_第6张图片

 

3 编辑代码

 

 NotePad.ui 保存并退出QtDesigner,回到Eric4中。在Eric4左侧的Forms栏目中,选中NotePad.ui并点击鼠标右键,选择Compiled Form,就生成了Ui_NotePad.py这个文件了。

接下来,我们开始编写运行应用程序的代码。在NotePad.ui上点击鼠标右键,选择Generate Dialog Code

使用Eric4+PyQt4制作一个简单的文本编辑器_第7张图片 

配置好后,点OK,我们就会很惊奇的看到IDE已经创建了一个叫 start.py的文件。

双击打开start.py,显示出来的代码如下:

# -*- coding: utf-8 -*- """ Module implementing StartQT4. """ from PyQt4.QtGui import QMainWindow from PyQt4.QtCore import pyqtSignature from Ui_NotePad import Ui_notepad class StartQT4(QMainWindow, Ui_notepad): """ Class documentation goes here. """ def __init__(self, parent = None): """ Constructor """ QMainWindow.__init__(self, parent) self.setupUi(self) @pyqtSignature("") def on_button_open_clicked(self): """ Slot documentation goes here. """ # TODO: not implemented yet raise NotImplementedError  

其中 on_button_open_clicked()这个函数是鼠标单击Open File的信号响应函数,在这里面我们可以任意添加我们程序能执行的操作。下面我们来修改on_button_open_clicked()函数,我希望点击它后可以弹出文件选择框,在选择文件后将文件内容显示在文本框中。代码如下:

def on_button_open_clicked(self): """ Slot documentation goes here. """ # TODO: not implemented yet dlg = PyQt4.QtGui.QFileDialog(self) self.filename = dlg.getOpenFileName() from os.path import isfile if isfile(self.filename): import codecs text = codecs.open(self.filename,'r','cp936').read() self.textEdit.setPlainText(text)

最后,在start.py文件的开头添加 

import PyQt4, PyQt4.QtGui, sys

start.py文件的结尾添加

if __name__ == "__main__": app = PyQt4.QtGui.QApplication(sys.argv) myapp = StartQT4() myapp.show() sys.exit(app.exec_())  

 按下快捷键F2即可运行程序啦! 

 使用Eric4+PyQt4制作一个简单的文本编辑器_第8张图片

 

源代码下载

你可能感兴趣的:(python)