「Qtの基礎 - 管理者権限」の版間の差分

ナビゲーションに移動 検索に移動
135行目: 135行目:
<br><br>
<br><br>


== PolKit-Qt-1を使用した開発例 ==
== PolKit-Qt-1を使用した開発例 1 ==
以下の例では、ネットワーク設定の変更に対する権限を確認して、必要に応じてユーザに対話を求めている。<br>
<br>
例えば、システム設定アプリケーションがシステムのネットワーク設定を変更しようとする場合、そのアクションには管理者権限が必要である。<br>
Polkit-Qt-1ライブラリを使用することにより、この権限を要求する対話を簡単に実装できる。<br>
<br>
<syntaxhighlight lang="cmake">
find_package(PolkitQt-1)
# Qt 5を使用する場合
target_link_libraries(<ターゲット名> PRIVATE
    PolkitQt5-1::Core
    PolkitQt5-1::Agent
)
# Qt 6を使用する場合
target_link_libraries(<ターゲット名> PRIVATE
    PolkitQt6-1::Core
    PolkitQt6-1::Agent
)
</syntaxhighlight>
<br>
<syntaxhighlight lang="c++">
#include <PolkitQt1/Authority>
#include <PolkitQt1/Action>
using namespace PolkitQt1;
Authority::Result result = Authority::instance()->checkAuthorizationSync("org.example.modify_network",
                                                                          Authority::Subject::fromSystemBusName("org.freedesktop.DBus"),
                                                                          Authority::AllowUserInteraction);
if (result == Authority::Yes) {
    // 権限が許可された場合の処理
}
else {
    // 権限が拒否された場合の処理
}
</syntaxhighlight>
<br><br>
 
== PolKit-Qt-1を使用した開発例 2 ==
==== 開発例に挙げるソフトウェア ====
==== 開発例に挙げるソフトウェア ====
実行ファイルの画面にあるボタンを押下する時、任意のディレクトリにroot権限でテキストファイルを作成または書き込みするソフトウェアを例に挙げる。<br>
実行ファイルの画面にあるボタンを押下する時、任意のディレクトリにroot権限でテキストファイルを作成または書き込みするソフトウェアを例に挙げる。<br>
180行目: 220行目:
*: ファイル名を、org.qt.policykit.examples.serviceファイルとする。
*: ファイル名を、org.qt.policykit.examples.serviceファイルとする。
<br>
<br>
==== ヘルパー実行ファイルの開発 ====
==== ヘルパー実行ファイルの開発 ====
<syntaxhighlight lang="make">
  # SampleHelper.proファイル
  # SampleHelper.proファイル
   
   
227行目: 267行目:
  target.path = $${prefix}
  target.path = $${prefix}
  INSTALLS += target
  INSTALLS += target
</syntaxhighlight>
<br>
<br>
  <syntaxhighlight lang="c++">
  <syntaxhighlight lang="c++">

案内メニュー