3

我正在开发一个用 Gambas 编写的带有 Qt 界面的小型应用程序,作为初始学习测试,我想编写一个非常简单的控制面板来启动/停止一些服务,如,apache2等。mysqlwebmin

该应用程序看起来像这样:

在此处输入图像描述

我的问题是,我不知道如何根据服务的状态将 Apache 按钮的初始位置设置为 On 或 Off。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 回答