[英]Why QFileDialog::getOpenFileName doesn't work?
在String中,路徑是正確的,但是它不會在我的table中放置字符串。 沒有錯誤或警告。 例如,當我這樣做時:
meinModel->setData(filename, filename);
它查看字符串:E:/test.txt
我有一個QTableView和QAbstractTableModel。
void View::OpenFileButtonClicked()
{
QString filename = QFileDialog::getOpenFileName(0, QString(), QString()
,tr("Data (*.txt)"));
fileMy = new QFile(filename);
QTextStream stream (&*fileMy);
while (!stream.atEnd())
{
QString line = stream.readLine();
QStringList list = line.split(",");
QString firststring;
firststring = (list.first());
QString secondstring;
secondstring = (list.last());
// Strings are sent to Model which view they in my tableview.
meinModel->setData(firststring, secondstring);
}
}
奇怪,因為這可行:
void View::FileButtonClicked()
{
QString fileName;
if (txtPfad->text().length() > 0 )
{
fileMy = new QFile(txtPfad->text());
}
else
{ fileMy = new QFile("E:\\test.txt"); }
if (!fileMy->open(QIODevice::ReadOnly | QIODevice::Text))
{
QMessageBox::information(this, tr("ERROR"), tr("Daten konnten icht eingelesen werden"));
return;
}
QTextStream stream (&*fileMy);
while (!stream.atEnd())
{
QString line = stream.readLine();
QStringList list = line.split(",");
QString firststring;
firststring = (list.first());
QString secondstring;
secondstring = (list.last());
meinModel->setData(firststring, secondstring);
}
}
您錯過了在OpenFileButtonClicked
打開文件的OpenFileButtonClicked
:
if (!fileMy->open(QIODevice::ReadOnly | QIODevice::Text))
{
QMessageBox::information(this, tr("ERROR"), tr("Daten konnten icht eingelesen werden"));
return;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.