学习《PyQt4编程简介》,实现的一个notepad。
1. 用designer放了两个按钮之后,其他按钮都是直接修改代码生成的,比重新designer,再pyuic,简单点儿
2. 实现了打开,保存,清空,关闭 4个按钮
3. from os.path import isfile 判断文件名是否存在,需要导入这个,if isfile(self.filename)
4. import codecs 涉及中文编码问题,需要导入这个,fileContent = codecs.open(self.filename,'r','utf-8').read()
5. 不太明白self.filename 和 不带self .直接filename,有什么区别???
6. 文件选择对话框,用QFileDialog: fileDialog = QtGui.QFileDialog(self)
7. 将选择文件的文件名传给 filename: self.filename = fileDialog.getOpenFileName()
===========================================================
#!/usr/bin/python
# -*- coding: utf-8 -*-'''
Created on 2012-2-23
'''
import sys
from PyQt4 import QtGui, QtCore
from ui_notepad import Ui_Notepad
class myNotePad(QtGui.QMainWindow):
'''
classdocs
'''
def __init__(self,parent=None):
'''
Constructor
'''
QtGui.QWidget.__init__(self,parent)
self.ui = Ui_Notepad()
self.ui.setupUi(self)
# here we connect signals with our slots,我们把 “打开”信号链接到了自己实现的函数file_dialog(),也就是slot
# file_dialog() 是信号对应的函数
QtCore.QObject.connect(self.ui.button_open,QtCore.SIGNAL("clicked()"), self.file_dialog)
QtCore.QObject.connect(self.ui.button_save,QtCore.SIGNAL(("clicked()")),self.file_save)
def file_dialog(self):
# 设置文本内容
# self.ui.editor_window.setText('hahah,you are so cute')
# 点击 打开->出现文件选择对话框->选择一个文件->显示在editor中
# fileDialog.getOpenFileName()用于返回我们选择文件的名字,open这个文件并read
fileDialog = QtGui.QFileDialog(self)
self.filename = fileDialog.getOpenFileName()
# print self.filename
from os.path import isfile
# 如果文件名存在,则open并read
if isfile(self.filename):
import codecs
fileContent = codecs.open(self.filename,'r','utf-8').read()
self.ui.editor_window.setPlainText(fileContent)
def file_save(self):
# 保存修改后的文件
from os.path import isfile
if isfile(self.filename):
import codecs
sfile = codecs.open(self.filename, 'w', 'utf-8')
sfile.write(unicode(self.ui.editor_window.toPlainText()))
sfile.close()
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
myapp = myNotePad()
myapp.show()
sys.exit(app.exec_())