Qt学习笔记4

一。警告框:

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:创建自定意窗口部件。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值