qt create Linux 由配置文件ini格式创建tab widget的信息,并创建,完整的例子
时间: 2023-11-27 11:55:35 浏览: 125
以下是一个完整的例子,实现了通过ini格式的配置文件创建tab widget并添加多个子页面的功能。
config.ini文件内容如下:
```
[Tab1]
Title=Page One
Icon=path/to/icon.png
Widget=QWidget
[Tab2]
Title=Page Two
Icon=path/to/another/icon.png
Widget=QTextEdit
```
main.cpp文件内容如下:
```cpp
#include <QApplication>
#include <QTabWidget>
#include <QSettings>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTabWidget tabWidget;
QSettings settings("config.ini", QSettings::IniFormat);
QStringList tabKeys = settings.childGroups();
foreach(QString tabKey, tabKeys) {
settings.beginGroup(tabKey);
QString title = settings.value("Title").toString();
QString iconPath = settings.value("Icon").toString();
QString widgetType = settings.value("Widget").toString();
QWidget *widget = nullptr;
if(widgetType == "QWidget") {
widget = new QWidget(&tabWidget);
} else if(widgetType == "QTextEdit") {
widget = new QTextEdit(&tabWidget);
} else {
qWarning() << "Unknown widget type: " << widgetType;
}
if(widget) {
tabWidget.addTab(widget, QIcon(iconPath), title);
}
settings.endGroup();
}
tabWidget.show();
return a.exec();
}
```
在程序中,我们首先创建了一个空的`QTabWidget`,然后使用`QSettings`类读取配置文件中的信息。`QSettings`类是Qt中一个非常方便的用于读写配置文件的类,支持多种格式的配置文件,包括ini格式。
我们首先使用`childGroups()`方法获取配置文件中所有的section名称,然后使用`beginGroup()`和`endGroup()`方法分别进入和退出每个section,读取对应的属性值。在本例中,我们读取了每个tab的标题、图标路径和子页面类型。
根据子页面类型,我们创建了对应的QWidget或QTextEdit,并将其添加到tab widget中。最后,我们调用show()方法显示tab widget。
需要注意的是,本例中只支持QWidget和QTextEdit两种类型的子页面,如果配置文件中出现了其它类型的子页面,程序会输出一条警告信息。如果需要支持更多类型的子页面,可以按照类似的方式进行扩展。
阅读全文