c++ - 如何为 Qt 应用程序实现“打开方式”?
问题描述
如何在 QT C++ 中创建一个文本编辑器,我可以通过右键单击它打开任何文本文档并使用我的应用程序打开它。
解决方案
首先接收文件路径作为位置参数 main.cpp
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QCommandLineParser parser;
parser.addPositionalArgument("file", QCoreApplication::translate("main", "The file to open."));
parser.process(a);
MainWindow w;
w.show();
QStringList filename=parser.positionalArguments();
w.OpenFileInText(filename[0]);
return a.exec();
}
然后将文件传递给打开文件方法。下面是 MainWindow.cpp 中的方法
void MainWindow::OpenFileInText(QString strFilePath)
{
ui->plainTextEdit->clear();
QFile file(strFilePath);
if(!file.open(QIODevice::ReadOnly)) {
QMessageBox::information(0, "error", file.errorString());
}
QTextStream in(&file);
while(!in.atEnd())
{
QString line = in.readLine();
ui->plainTextEdit->appendPlainText(line) ;
}
file.close();
}
推荐阅读
- django - 计算类别中的帖子数
- android - 为什么 RequireView() 不返回视图 onResume()?
- html -
- boostrap 列表在 Safari 上的呈现方式不同
- python - 从 Django 中的数据集中获取数据
- mongodb - MongoDB 使用 $lookup、$unwind、$match 进行搜索
- arrays - 如何处理这个组合学和博弈论问题?
- react-native - 如何使用天才聊天和 Firebase 身份验证实现双向聊天功能?
- flutter - 我的容器的颜色属性不起作用,它没有给出任何错误 Flutter
- javascript - 如何在 javascriot 中创建soap php
- python-3.x - 使用 render_template() 时 Gunicorn 缓存 Flask Jinja2 模板