如何在 Gambas Qt 应用程序上设置开关按钮的初始值?
How can I set the initial value of a Switch Button on a Gambas Qt application?
我正在开发一个用 Gambas 编写的带有 Qt 界面的小应用程序,作为初始学习测试,我想编写一个非常简单的控制面板来 start/stop 一些服务,例如 apache2
, mysql
, webmin
等等
应用程序看起来像这样:
我的问题是,我不知道如何根据服务状态将 Apache 按钮的初始位置设置为打开或关闭。我可以使用 sudo service apache2 status
和一些 tr/cut/grep 魔术从系统中提取值到变量。但是界面只提供了将值设置为 True 或 False 的选项。我不知道该把代码放在哪里。我设法完成的唯一部分是 start/stop 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
如有任何帮助,我们将不胜感激。
您需要在 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
我正在开发一个用 Gambas 编写的带有 Qt 界面的小应用程序,作为初始学习测试,我想编写一个非常简单的控制面板来 start/stop 一些服务,例如 apache2
, mysql
, webmin
等等
应用程序看起来像这样:
我的问题是,我不知道如何根据服务状态将 Apache 按钮的初始位置设置为打开或关闭。我可以使用 sudo service apache2 status
和一些 tr/cut/grep 魔术从系统中提取值到变量。但是界面只提供了将值设置为 True 或 False 的选项。我不知道该把代码放在哪里。我设法完成的唯一部分是 start/stop 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
如有任何帮助,我们将不胜感激。
您需要在 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