Qt中可以使用QXmlStreamWriter和QXmlStreamReader类来保存和读取XML文件。
以下是使用QXmlStreamWriter保存界面布局的示例代码:
void MainWindow::saveLayout()
{
QFile file("layout.xml");
if(!file.open(QFile::WriteOnly | QFile::Text)) {
QMessageBox::warning(this, "Error", "Cannot save layout file!");
return;
}
QXmlStreamWriter writer(&file);
writer.setAutoFormatting(true);
writer.writeStartDocument();
writer.writeStartElement("Layout");
// 保存每个控件的位置和大小
foreach(QWidget *widget, QApplication::topLevelWidgets()) {
if(widget->isWindow()) {
writer.writeStartElement("Widget");
writer.writeAttribute("title", widget->windowTitle());
writer.writeAttribute("x", QString::number(widget->pos().x()));
writer.writeAttribute("y", QString::number(widget->pos().y()));
writer.writeAttribute("