QString path=QCoreApplication::applicationDirPath() + "/Database/parts/a.json"; DSstruct_parts=mJsonFile.readJson_Display(path); QIcon icon; //清除列表 ui->comboBox->clear(); ui->comboBox->setView(new QListView()); for (int i=0;i<DSstruct_parts.size();i++) { icon.addFile(DSstruct_parts[i].jpg_path); ui->comboBox->setIconSize(QSize(80, 80)); //添加一个字符串 ui->comboBox->addItem(icon,DSstruct_parts[i].key); } ui->comboBox->setCurrentIndex(-1);将这段代码的combobox换成lineedit
时间: 2023-07-16 07:13:32 浏览: 102
将代码修改为:
```
QString path = QCoreApplication::applicationDirPath() + "/Database/parts/a.json";
DSstruct_parts = mJsonFile.readJson_Display(path);
QIcon icon;
ui->lineEdit->clear(); // 清除文本框内容
for (int i = 0; i < DSstruct_parts.size(); i++)
{
icon.addFile(DSstruct_parts[i].jpg_path);
ui->lineEdit->addAction(QIcon(icon), DSstruct_parts[i].key); // 添加一个动作
}
```
注意,这里使用了 `QLineEdit::addAction` 函数来添加动作,而不是 `QLineEdit::setText` 函数设置文本。因为 `QLineEdit` 控件不支持在文本中添加图标,只能通过添加动作的方式实现类似的效果。
相关问题
QString path = QCoreApplication::applicationDirPath() + "D://Qt//Qt5.12.12//QT//FaceRecognition//database.db"; m_database = QSqlDatabase::addDatabase("QSQLITE"); m_database.setDatabaseName(path);
你的代码看起来是在使用Qt框架进行数据库操作。你创建了一个名为`path`的QString对象,使用`QCoreApplication::applicationDirPath()`获取了应用程序的目录路径,并将其与数据库文件的路径拼接在一起。然后,你使用`QSqlDatabase::addDatabase()`方法创建了一个SQLite数据库连接,并设置了数据库文件的名称为`path`。
这段代码的目的是创建一个名为`m_database`的SQLite数据库连接对象,并将其与指定的数据库文件关联起来。
下面这个代码更改文件夹无效QString p = QCoreApplication::applicationDirPath() + "/Database/prints/" + printfilename; QDir dir(p); if (dir.exists()) { bool success= dir.rename(printfilename,printname); }
你可以尝试使用绝对路径来更改文件夹名称。以下是修改后的代码:
```c++
QString p = QCoreApplication::applicationDirPath() + "/Database/prints/" + printfilename;
QDir dir(p);
if (dir.exists()) {
QString newp = QCoreApplication::applicationDirPath() + "/Database/prints/" + printname;
bool success = dir.rename(p, newp);
if (!success) {
qDebug() << "Failed to rename folder";
}
}
```
其中,`newp`是新的文件夹路径。如果文件夹更名失败,会输出一条错误日志。
阅读全文