Qt学习笔记4

来源:互联网 发布:知乎 大误 编辑:程序博客网 时间:2024/06/05 00:37

一。警告框:

bool MainWindow::okToContinue(){ if (isWindowModified() ) {   int r = QMessageBox::warning(this, tr("Spreadsheet"), tr(" The document has been modified.\n Do you want to save your changes?"), QMessageBox::Yes|QMessageBox::No | QMesageBox::Cancel); if( r == QMesageBox::Yes) return save(); else if(r == QMessageBox::Cancel) return false; } return true;}

除了warning()之外,还有information(),question(),critical(),他们每一个都有自己特有的图标。

2.弹出用户框选择一个文件,不知道能不能选择文件夹

void MainWindow::open()

{

if(okToContinue() ){

QString fileName = QFileDialog::getOpenFileName(this(父窗口部件), tr()(标题), "."(从哪一级目录开始) , tr("Spreadsheet files (*.sp)") 文件过滤器);

if (!fileName.isEmpty) loadFile(fileName);

}}

bool MainWindow::loadFile(const QString &fileName)

{

  if(! spreadsheet->readFile(fileName) ){ statusBar()->showMessage(tr("Loading canceled"), 2000);} return false;

 setCurrentFile(fileName);

 statusBar()->showMessage( tr("File loaded"), 2000);

 return true;

}

page 46\47\48(已经使用过的文件列表)略过了。

文件另存为框:

bool MainWindow::saveAs()

{

 QString fileName = QFileDialog::getSaveFileName( this, tr("Save Spreadsheet"), "." , tr("Spreadsheet files (*.sp)") );

 if( fileName.isEmpty() ) return false;

 return saveFile(fileName);

}

==========使用对话框==============

activateWindow()让窗口成为顶层窗口和激活状态。

show()是非模态对话框,但是之后又调用了setModal()才会变成模态对话框。

----spreadsheet特性操作:52page

QMessageBox::about( this, tr("<h2>Spreadsheet 1.1</h2>"), tr("<p>lalallalaalalalaxx.....</p>") );

=========================存储设置========================

QSettings把设置信息存储为键值对形式。

写入和保存应用的设置; writeSeetings() readSettings().比如窗口形状,最近打开的文件,以及选项的设置。

多文档 page 55

程序启动画面 page58


============第4章节===============

文件操作:

QFile,调用open打开这个文件,再创建QDataStream对象,由它操作这个QFile对象并且使用该对象输出数据。

QDataStream功能齐全,即可用于QFile中,也可以把它用于QBuffer,QProcess,QTcpSocket,QUdpSocket or QSslSocket中。

bool Spreadsheet::readFile(const QString &fileName){ QFile file(fileName); if(! file.open(QIODevice::ReadOnly) ){  } QDataStream in(&file); in.setVersion(QDataStream::QT_4_3); quint32 magic; in >> magic; if( magic != MagicNumber){    ......}}

..... to page 80. 电子表格操作特性

page81:创建自定意窗口部件。


原创粉丝点击