首页 > 编程知识 正文

qt5开发实战pdf,pyqt项目实战

时间:2023-05-03 07:27:25 阅读:41629 作者:4178

在前面的一系列文章中,您经常接触到文档操作,如打开和导入图像文件、保存图像文件和编辑文档。 本文详细介绍了Qt的文件操作接口类QFile如何处理文件的I/O操作。

QFile配置文件QFile类提供了用于读取和写入文件的接口。 QFile是用于读取和写入文本和二进制文件的I/O设备。 QFile可以单独使用,也可以与QTextStream和QDataStream一起使用。

q创建QFile对象时可以指定文件名,也可以在创建对象后随时使用setFileName ()函数进行设置。 无论操作系统如何,QFile的文件分隔符都是“/”。 QFile不支持使用其他分隔符,如: '”。

以下示例说明如何使用QFile逐行读取文本文件。

file=qfile(in.txt ) ifnotfile.open ) qiodevice.readonly|qiodevice.text ) :返回while not file.atend ) ) process_line(line ) QIODevice.Text标志指示Qt将Windows样式的行结束符(“ r n”)转换为c样式的结束符(“ n”)。 缺省情况下,QFile基于二进制文件,不转换文件中存储的字节。

此示例说明如何使用QTextStream逐行读取文本文件:

QFile=qfile(in.txt ) ) ifnotfile.open ) qiodevice.readonly|qiodevice.text ) :returnin=qtextstream ) )文件

打开open (自,)文件设备。 将copy(self,newName :当前文件名) )指定的文件复制到newName文件中。 将rename(self,newName :当前文件名) )中指定的文件重命名为newName。 重命名(oldname,newName ) :在静态函数中,将文件oldname重命名为newName。 设置文件名(self,str ) :设置文件名。 filename(self ):setFileName ()或QFile () )创建时设置的文件名。 关闭(自) :关闭文件设备。 测试代码演示使用QFile和QTextStream加载和保存文本文件。 完整的代码是以下:

importsysfromPyQt5importQtCore,QtGui,qtwidgetsfrompyqt5. qtcoreimportqt,QFile,QTextStream,QIODevice,qbyteararayfrayfrot QMenu、QAction、QFileDialog、QPlainTextEdit ) classdemofile(qmainwindow ) 3360 def parent=none (3360 super (de mofile, self ) _init_ ) parent ) # 集窗口标题self.setWindowTitle )实战qtforpython3360q 360 ) self.initui(definitui ) self ) : self.init menubar (self ) ) ) setcentralitor 3360 menubar=self.menubar (menu file=menubar.addmenu ) ' f ) #打开文件actionFileOpen=QAction self ) action fileopen.set shortcut (Qt.ctrl Qt.key _ o ) actionFileOpen.setToolTip (打开文本文件) action fileopen

    actionFileSave = QAction('保存(&S)', self)         actionFileSave.setShortcut(Qt.CTRL + Qt.Key_S)        actionFileSave.setToolTip('保存文本文件')        actionFileSave.triggered.connect(self.onFileSave)                actionFileSaveAs = QAction('另存为(&A)...', self)        actionFileSaveAs.triggered.connect(self.onFileSaveAs)          actionExit = QAction('退出(&X)', self)        actionExit.triggered.connect(QApplication.instance().quit)                menuFile.addAction(actionFileOpen)        menuFile.addAction(actionFileSave)        menuFile.addAction(actionFileSaveAs)        menuFile.addSeparator()        menuFile.addAction(actionExit)              def msgCritical(self, strInfo):        dlg = QMessageBox(self)        dlg.setIcon(QMessageBox.Critical)        dlg.setText(strInfo)        dlg.show()               def onFileOpen(self):        path,_ = QFileDialog.getOpenFileName(self, '打开文件', '', '文本文件 (*.txt)')        if path:            f = QFile(path)            if not f.open(QIODevice.ReadOnly | QIODevice.Text):                self.msgCritical('打开文件失败')                return False                        self.path = path            self.txtEditor.setPlainText(QTextStream(f).readAll())            f.close() #关闭文件                      def onFileSave(self):        if self.path is None:            return self.onFileSaveAs()        self._saveToPath(self.path)            def _saveToPath(self, path):        f = QFile(path)        if not f.open(QIODevice.WriteOnly):            self.msgCritical('打开文件失败')            return False                    self.path = path        outText = QTextStream(f)        outText << self.txtEditor.toPlainText()        f.close()            def onFileSaveAs(self):        path,_ = QFileDialog.getSaveFileName(self, '保存文件', '', '文本文件 (*.txt)')        if not path:            return        self._saveToPath(path)      if __name__ == '__main__':    app = QApplication(sys.argv)    window = DemoFile()    window.show()    sys.exit(app.exec())   

运行结果如下图:

测试QFile

本文知识点 QFile是用于读取和写入文本及二进制文件的I/O设备。QFile和QTextStream结合使用打开和保存文本文件。

前一篇: 实战PyQt5: 125-使用配置文件来保存和恢复应用的设置

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。