gpt4 book ai didi

c++ - system() 的奇怪行为

转载 作者:行者123 更新时间:2023-11-28 02:53:10 27 4
gpt4 key购买 nike

我是所有这些东西的初学者。我正在尝试创建一个打开文件的函数(在 Windows 中使用 Qt),我尝试了 QProcess 库中的一些函数,但它们无法满足我的需求。所以,我决定使用系统( ) 函数来执行文件。问题是系统函数只从我的系统驱动器打开 .exe 文件和其他文件,而不打开任何文件任何其他驱动器。Qt 中是否有一个内置函数,我可以使用它打开任何文件,并使用为该文件类型分配的默认程序。为什么会这样。我做错了什么?
我的代码:

    QString FilePath = openFileDialog.getOpenFileName(this, tr("Open File"),"/home",tr("All Files"));
ui->Label_7->setText("Choose file to open.");
const char *file;
QByteArray bArray;
bArray = FilePath.toLatin1();
file = bArray.data();

system(file);

最佳答案

您可以使用QDesktopServices::openUrl 函数通过合适的应用程序打开本地文件。试试这个:

void Widget::open()
{
QString filename = QFileDialog::getOpenFileName();
if (!filename.isEmpty())
{
QUrl url = QUrl::fromLocalFile(filename);

QDesktopServices::openUrl(url);
}
}

关于c++ - system() 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22602538/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com