質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Qt

QtはGUIプログラムの開発で広く使われているクロスプラットフォーム開発のフレームワークです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

1709閲覧

QProcess:startのdeprecationの警告

LenItsuki

総合スコア89

Qt

QtはGUIプログラムの開発で広く使われているクロスプラットフォーム開発のフレームワークです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2020/08/18 03:04

下の写真のように,Executeボタンを押すとエクスプローラーが実行されるプログラムをQtで作成しました.もとは,下のソースにあるように,ボタンを押すとButton has been clicked!と表示されるプログラムでして,それを改良しました.結果的には,実行できるのですが,下のような警告が出ます.この警告の意味するところが分からないのでお聞きしたいのですが,この警告を出ないようにするにはどうしたらよいでしょうか?

'start'is deprecated: Use QProcess::start(const QString &program, const QStringList &arguments, Openmode mode =ReadWrite) instead

C++

1void MyClass::doSomething() 2{ 3 QProcess *process = new QProcess(this); 4 QString file = "explorer ."; 5// QMessageBox::information(nullptr, "Hello", "Button has been clicked!"); 6 process->start(file); 7}

実行画面説明](d3b5421f5610091e44f3585b0c1c8382.jpeg)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ここのコード が今回の警告の原因です。

プログラムの名前とコマンドライン引数を1つの変数でまとめて渡す API

c++

1void start(const QString &command, OpenMode mode = ReadWrite);

Qt 5.15 で非推奨になりました

Use QProcess::start(const QString &program, const QStringList &arguments, Openmode mode =ReadWrite) instead と言われているので、

c++

1void start(const QString &program, const QStringList &arguments, OpenMode mode = ReadWrite);

を利用して

c++

1QString program = "explorer"; 2QStringList arguments { "." }; 3process->start(program, arguments);

とするのが1つの方法です。

c++

1QString program() const; 2void setProgram(const QString &program); 3QStringList arguments() const; 4void setArguments(const QStringList & arguments); 5void start(OpenMode mode = ReadWrite);

を利用して、

c++

1process->setProgram(program); 2process->setArguments(arguments); 3process->start();

と、段階を分けて書くこともできます。

投稿2020/08/18 03:45

tasuku.

総合スコア347

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

LenItsuki

2020/08/18 03:59

ありがとうございます.ご教示いただいた方法で,警告が出なくなりました.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問