pyqt 记事本

记事本功能:

         QtGui.QFileDialog.getOpenFileName() 打开文件选择对话框,返回打开的文件的绝对路径

         QtGui.QFileDialog.getSaveFileName() 打开文件另存为对话框 ,返回打开的文件的绝对路径

 设置绑定快捷键 

        setShortcut('Ctrl+O')

代码如下

# -*- coding: utf-8 -*-

from PyQt4 import QtCore, QtGui


try:

    _fromUtf8 = QtCore.QString.fromUtf8

except AttributeError:

    def _fromUtf8(s):

        return s


try:

    _encoding = QtGui.QApplication.UnicodeUTF8

    def _translate(context, text, disambig):

        return QtGui.QApplication.translate(context, text, disambig, _encoding)

except AttributeError:

    def _translate(context, text, disambig):

        return QtGui.QApplication.translate(context, text, disambig)


class Ui_MainWindow(QtGui.QMainWindow):

    def setupUi(self, MainWindow):

        MainWindow.setObjectName(_fromUtf8("MainWindow"))

        MainWindow.resize(800, 600)

        self.centralwidget = QtGui.QWidget(MainWindow)

        self.centralwidget.setObjectName(_fromUtf8("centralwidget"))

        self.gridLayout = QtGui.QGridLayout(self.centralwidget)

        self.gridLayout.setObjectName(_fromUtf8("gridLayout"))

        self.textEdit = QtGui.QTextEdit(self.centralwidget)

        self.textEdit.setObjectName(_fromUtf8("textEdit"))

        self.gridLayout.addWidget(self.textEdit, 0, 0, 1, 1)

        MainWindow.setCentralWidget(self.centralwidget)

        MainWindow.setWindowIcon(QtGui.QIcon('./gita.ico'))

        self.menubar = QtGui.QMenuBar(MainWindow)

        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 23))

        self.menubar.setObjectName(_fromUtf8("menubar"))

        self.menu = QtGui.QMenu(self.menubar)

        self.menu.setObjectName(_fromUtf8("menu"))

        openAction = self.menu.addAction('open')

        saveAction = self.menu.addAction('save')

        saveAsAction = self.menu.addAction('save as')

        openAction.setShortcut('Ctrl+O')

        saveAction.setShortcut('Ctrl+S')

        self.connect(openAction, QtCore.SIGNAL("triggered()"), self.openFile)

        self.connect(saveAction, QtCore.SIGNAL("triggered()"), self.saveFile)


        self.file = None


        MainWindow.setMenuBar(self.menubar)

        self.statusbar = QtGui.QStatusBar(MainWindow)

        self.statusbar.setObjectName(_fromUtf8("statusbar"))

        MainWindow.setStatusBar(self.statusbar)

        self.menubar.addAction(self.menu.menuAction())


        self.retranslateUi(MainWindow)

        QtCore.QMetaObject.connectSlotsByName(MainWindow)


    def retranslateUi(self, MainWindow):

        MainWindow.setWindowTitle(_translate("MainWindow", "记事本", None))

        self.menu.setTitle(_translate("MainWindow", "文件", None))


    def openFile(self):

        self.file = unicode(QtGui.QFileDialog.getOpenFileName(self))

        if self.file:

            self.textEdit.setText(open(self.file).read().decode('utf-8'))

            MainWindow.setWindowTitle(_translate("MainWindow", self.file, None))


    def saveFile(self):

        plainText =  self.textEdit.toPlainText()

        if not self.file:

            self.file = unicode(QtGui.QFileDialog.getSaveFileName(self))


        MainWindow.setWindowTitle(_translate("MainWindow", self.file, None))

        with open(self.file, 'w') as f:

            f.write(plainText.toUtf8())



if __name__ == "__main__":

    import sys

    app = QtGui.QApplication(sys.argv)

    MainWindow = QtGui.QMainWindow()

    ui = Ui_MainWindow()

    ui.setupUi(MainWindow)

    MainWindow.show()

    sys.exit(app.exec_())


转载于:https://my.oschina.net/adam_li/blog/306311

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值