pyqt4带了一个设计器,可以用拖放的方法设计界面。但是这个界面如何与代码结合起来还有点问题。
第一步,做界面,生成ui文件
第二步,命令行做成.py文件,即pyuic4 -o 输出文件名 输入文件名
第三步,写代码如下:
# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtGui, QtCore
from edyto_ui import Ui_notepad #这里导入界面文件的类
class notepad(QtGui.QWidget): #建立新类,注意父类
def __init__(self, parent=None): #构造
QtGui.QWidget.__init__(self, parent)#父类构造
self.ui = Ui_notepad()# 界面类实例
self.ui.setupUi(self) #界面类应用。
QtCore.QObject.connect(self.ui.button_open, QtCore.SIGNAL("clicked()"), self.file_dialog) #按钮与代码的对应,注意file_dialog,是成员函数名。
QtCore.QObject.connect(self.ui.save_button, QtCore.SIGNAL("clicked()"), self.file_save) #同上,文件保存按钮
def file_dialog(self): #按钮命令模块
fd = QtGui.QFileDialog(self) #文件对话框的实例
self.filename = fd.getOpenFileName() # 获得打开的文件名
from os.path import isfile # 确保这是个文件名
if isfile(self.filename):
import codecs # 解码模块
s = codecs.open(self.filename, 'r', 'utf-8').read() # 读取文件
#text = open(self.filename).read()
self.ui.editor_window.setPlainText(s) #把文件内容放在文本框里。
def file_save(self):
from os.path import isfile
if isfile(self.filename):
import codecs
s = codecs.open(self.filename,'w','utf-8')
s.write(str(self.ui.editor_window.toPlainText()))
s.close()
if __name__ == '__main__': # 测试代码
app = QtGui.QApplication(sys.argv) #常规复制
mywindows = notepad() # 上面类的实例
mywindows.show() #对象显示
sys.exit(app.exec_()) #正常退出