3

Qt インターフェイスを使用して Gambas で記述された小さなアプリケーションを開発しています。最初の学習テストとして、、、などapache2のいくつかのサービスを開始/停止するための非常に単純なコントロール パネルを作成したいと考えていました。mysqlwebmin

アプリケーションは次のようになります。

ここに画像の説明を入力

私の問題は、サービスの状態に応じて Apache ボタンの初期位置をオンまたはオフに設定する方法がわからないことです。sudo service apache2 statusシステムから変数へのtr/cut/grepマジックを使用して値を抽出できます。しかし、インターフェイスは、値を True または False に設定するオプションしか提供しません。そのコードをどこに配置すればよいかわかりません。私が成功した唯一のセグメントは開始/停止OnClickイベントですが、最初の位置はクリックの前に設定する必要があります。このコードは、サービスのステータスがパネル開始時のボタンのステータスと一致する場合にのみ機能します。

役立つ場合は、コードの一部を次に示します。

Public Sub SwitchButton1_Click()
  Dim apachestatus As String
  Shell "sudo service apache2 status | grep Active | tr -s ' ' | cut -d ' ' -f 3" To apachestatus

  If apachestatus = "active\n" Then
    SwitchButton1.Value = False
    Shell "sudo service apache2 stop"
  Else If apachestatus = "inactive\n" Then
    SwitchButton1.Value = True
    Shell "sudo service apache2 start"
  Endif

  Message.Info("apache : " & apachestatus)
End

どんな助けでも大歓迎です。

4

1 に答える 1

1

内部でステータスチェックを行う必要がありますForm_Open()

Public Sub Form_Open()
    ...
    If apachestatus = "active\n" Then
      SwitchButton1.Value = False
    Else If apachestatus = "inactive\n" Then
      SwitchButton1.Value = True
    Endif
End
于 2015-04-14T13:34:33.667 に答える