Archive:Development/Tutorials/Saving and loading (zh CN): Difference between revisions
Tangooricha (talk | contribs) No edit summary |
Tangooricha (talk | contribs) No edit summary |
||
Line 48: | Line 48: | ||
</code> | </code> | ||
<tt>main.cpp</tt> 与教程3中的相比没什么变化,除了说明参数从教程3变为了教程4。 | <tt>main.cpp</tt> 与教程3中的相比没什么变化,除了说明参数从教程3变为了教程4。 | ||
===mainwindow.h=== | |||
<code cppqt n> | |||
#ifndef MAINWINDOW_H | |||
#define MAINWINDOW_H | |||
#include <KXmlGuiWindow> | |||
#include <KTextEdit> | |||
class MainWindow : public KXmlGuiWindow | |||
{ | |||
Q_OBJECT //与教程3相比,新增加的 | |||
public: | |||
MainWindow(QWidget *parent=0); | |||
private: | |||
KTextEdit* textArea; | |||
void setupActions(); | |||
QString fileName; //新增加的 | |||
private slots: //新增加的 | |||
void newFile(); //新增加的 | |||
void openFile(); //新增加的 | |||
void saveFile(); //新增加的 | |||
void saveFileAs(); //新增加的 | |||
void saveFileAs(const QString &outputFileName); //新增加的 | |||
}; | |||
#endif | |||
</code> | |||
由于我们想要添加装载和保存文件的能力,所以我们必须添加将用来完成这些工作的函数。由于这些函数将会通过Qt的[http://doc.trolltech.com/latest/signalsandslots.html 信号/槽]机制被调用,所以我们必须注明这些函数是槽函数,就像我们在第19行做的那样。由于我们正在头文件中使用槽,所以我们同样必须添加[http://doc.trolltech.com/latest/qobject.html#Q_OBJECT <tt>Q_OBJECT</tt>]宏。 | |||
我们同样想要跟踪当前打开的文件的文件名,所以我们申明了一个<tt>{{qt|QString}} fileName</tt>。 |
Revision as of 12:26, 20 August 2008
Development/Tutorials/Saving_and_loading
Languages: عربي | Asturianu | Català | Česky | Kaszëbsczi | Dansk | Deutsch | English | Esperanto | Español | Eesti | فارسی | Suomi | Français | Galego | Italiano | 日本語 | 한국어 | Norwegian | Polski | Português Brasileiro | Română | Русский | Svenska | Slovenčina | Slovenščina | српски | Türkçe | Tiếng Việt | Українська | 简体中文 | 繁體中文
Tutorial Series | 初学者教程 |
Previous | 教程3 - KActions |
What's Next | 教程5 - 使用KCmdLineArgs |
Further Reading | KIO::NetAccess QFile |
摘要
现在我们拥有了一个基本的文本编辑器的界面,已经到了做一些有用的事情的时候了。从最根本的来说,一个文本编辑器需要能够从磁盘中装载文件,并且能够创建新文件并保存你创建/编辑过的文件。
KDE提供了许多开发者易于使用的用于操作文件的类。KIO库允许你十分容易地像使用标准文件对话框一样通过网络访问文件。
代码
main.cpp
- include <KApplication>
- include <KAboutData>
- include <KCmdLineArgs>
- include "mainwindow.h"
int main (int argc, char *argv[])
{
KAboutData aboutData( "tutorial4", "tutorial4",
ki18n("Tutorial 4"), "1.0",
ki18n("A simple text area which can load and save."),
KAboutData::License_GPL,
ki18n("Copyright (c) 2007 Developer") );
KCmdLineArgs::init( argc, argv, &aboutData );
KApplication app;
MainWindow* window = new MainWindow();
window->show();
return app.exec();
}
main.cpp 与教程3中的相比没什么变化,除了说明参数从教程3变为了教程4。
mainwindow.h
- ifndef MAINWINDOW_H
- define MAINWINDOW_H
- include <KXmlGuiWindow>
- include <KTextEdit>
class MainWindow : public KXmlGuiWindow
{
Q_OBJECT //与教程3相比,新增加的
public:
MainWindow(QWidget *parent=0);
private:
KTextEdit* textArea;
void setupActions();
QString fileName; //新增加的
private slots: //新增加的
void newFile(); //新增加的
void openFile(); //新增加的
void saveFile(); //新增加的
void saveFileAs(); //新增加的
void saveFileAs(const QString &outputFileName); //新增加的
};
- endif
由于我们想要添加装载和保存文件的能力,所以我们必须添加将用来完成这些工作的函数。由于这些函数将会通过Qt的信号/槽机制被调用,所以我们必须注明这些函数是槽函数,就像我们在第19行做的那样。由于我们正在头文件中使用槽,所以我们同样必须添加Q_OBJECT宏。
我们同样想要跟踪当前打开的文件的文件名,所以我们申明了一个QString fileName。