如何将 QString 变量传递给 QFile?
How to pass QString variable to QFile?
getData 从 QTreeView 获取选定的文件并将其显示在标签 'test' 上,启用 'Apply' 按钮,单击该按钮会调用 setTheme
void OptionsDialog::getData(const QModelIndex &index)
{
QString selected = model2->filePath(index);
ui->test->setText(selected);
ui->pushButton_apply_theme->setEnabled(true);
}
void OptionsDialog::setTheme()
{
//char *file = selected->toLatin1().data();
//const std::string file = selected->toStdString();
QFile qss(selected);
qss.open(QFile::ReadOnly);
qApp->setStyleSheet(qss.readAll());
qss.close();
}
我似乎无法以它想要的格式将文件路径传递给 QFile,注释行是一些失败的尝试。 ' char *file = selected->toLatin1().data();'编译但在使用中出现段错误。
因为它失败了:
qt/optionsdialog.cpp: In member function ‘void OptionsDialog::setTheme()’:
qt/optionsdialog.cpp:176:23: error: no matching function for call to ‘QFile::QFile(QString*&)’
QFile qss(selected);
原谅我习惯了python,这让我抓狂,感谢任何帮助!
QString selected = model2->filePath(index);
没有在(可能同名的)成员 OptionsDialog::selected
中设置变量。这将创建一个新的局部变量。
如果你有一个名为 selected
的成员变量,那么你应该这样使用它:
void OptionsDialog::getData(const QModelIndex &index)
{
selected = model2->filePath(index);
...
}
getData 从 QTreeView 获取选定的文件并将其显示在标签 'test' 上,启用 'Apply' 按钮,单击该按钮会调用 setTheme
void OptionsDialog::getData(const QModelIndex &index)
{
QString selected = model2->filePath(index);
ui->test->setText(selected);
ui->pushButton_apply_theme->setEnabled(true);
}
void OptionsDialog::setTheme()
{
//char *file = selected->toLatin1().data();
//const std::string file = selected->toStdString();
QFile qss(selected);
qss.open(QFile::ReadOnly);
qApp->setStyleSheet(qss.readAll());
qss.close();
}
我似乎无法以它想要的格式将文件路径传递给 QFile,注释行是一些失败的尝试。 ' char *file = selected->toLatin1().data();'编译但在使用中出现段错误。
因为它失败了:
qt/optionsdialog.cpp: In member function ‘void OptionsDialog::setTheme()’:
qt/optionsdialog.cpp:176:23: error: no matching function for call to ‘QFile::QFile(QString*&)’
QFile qss(selected);
原谅我习惯了python,这让我抓狂,感谢任何帮助!
QString selected = model2->filePath(index);
没有在(可能同名的)成员 OptionsDialog::selected
中设置变量。这将创建一个新的局部变量。
如果你有一个名为 selected
的成员变量,那么你应该这样使用它:
void OptionsDialog::getData(const QModelIndex &index)
{
selected = model2->filePath(index);
...
}