1、如果在窗体关闭前自行判断是否可关闭
答:重新实现这个窗体的closeEvent()函数,加入判断操作
void MainWindow::closeEvent(QCloseEvent *event)
{
if (maybeSave())
{
writeSettings();
event->accept();
}
else
{
event->ignore();
}
}
2、如何用打开和保存文件对话框
答:使用QFileDialog
QString fileName = QFileDialog::getOpenFileName(this);
if (!fileName.isEmpty())
{
loadFile(fileName);
}
QString fileName = QFileDialog::getSaveFileName(this);
if (fileName.isEmpty())
{
return false;
}
如果用qt自带的话:
选择文件夹
QFileDialog* openFilePath = new QFileDialog( this, " 请选择文件夹", "file"); //打开一个目录选择对话框
openFilePath-> setFileMode( QFileDialog::DirectoryOnly );
if ( openFilePath->exec() == QDialog::Accepted )
{
//code here!
}
delete openFilePath;
选择文件:
QFileDialog *openFilePath = new QFileDialog(this);
openFilePath->setWindowTitle(tr("请选择文件"));
openFilePath->setDirectory(".");
openFilePath->setFilter(tr("txt or image(*.jpg *.png *.bmp *.tiff *.jpeg *.txt)"));
if(openFilePath->exec() == QDialog::Accepted)
{
//code here
}
delete openFilePath;
7、如何使用警告、信息等对话框
答:使用QMessageBox类的静态方法
int ret = QMessageBox::warning(this, tr("Application"),
tr("The document has been modified.\n"
"Do you want to save your changes "),
QMessageBox::Yes | QMessageBox::Default,
QMessageBox::No,
QMessageBox::Cancel | QMessageBox::Escape);
if (ret == QMessageBox::Yes)
return save();
else if (ret == QMessageBox::Cancel)
return false;
或者简单点儿:
QMessageBox::information(this, "关于","盲人辅助系统(管理端)!\nVersion:1.0\nNo Copyright");