hal*_*fer 5 php wxwidgets ubuntu-unity wxphp
经过一番努力,我为wxPHP编译了PHP模块,并编写了一些脚本来查看它可以做什么.我的第一个演示创建了一个窗口和一个任务栏图标,我无法让后者工作.
我在Ubuntu 14.04 LTS上运行它.
这是我正在使用的脚本:
<?php
// Create an icon (does not appear on Ubuntu 14.04 LTS)
$icon = new wxTaskBarIcon();
echo "Task bar available: " .
(wxTaskBarIcon::IsAvailable() ? 'Yes' : 'No') . "\n";
echo "Create task bar icon: " . ($icon ? 'OK' : 'Failed') . "\n";
$wxIcon = new wxIcon('icon.ico');
$ok = $icon->setIcon($wxIcon);
echo "Set image for icon: " . ($ok ? 'OK' : 'Failed') . "\n";
// Create a window (works fine)
$main = new wxFrame(null, wxID_TOP, "Title" );
$main->Show();
wxEntry();
Run Code Online (Sandbox Code Playgroud)
现在,我认为Unity中的"任务栏"是顶级栏,其中包括时钟,声音和网络控件,而不是左侧的应用程序底座.我得到在码头一个空白灰色的应用程序图标,在PHP任务运行时,但它是在我的后顶部的状态图标.
上面脚本的控制台输出显示一切正常:
Task bar available: Yes
Create task bar icon: OK
Set image for icon: OK
Run Code Online (Sandbox Code Playgroud)
我已经尝试将其更改icon.ico为不存在的文件,然后弹出一个回溯对话框,显示我正在使用的图标正在加载成功(可能是可接受的格式).
编辑:进一步的研究表明:
gsettings在我的更高版本的Ubuntu中找不到此处引用的键)因此,我目前的猜测是,如果不是Unity阻止操作,我的代码就可以工作 - 并且它会立即出现在Mint等其他发行版中.
我确实找到了这个解释如何在Ubuntu 14上列入白名单的指南,但这是最令人不满意的; 做一些琐碎的事情不应该改变可信的回购清单.如果我希望分发用wxPHP编写的应用程序,用户将(并且应该)发现这是不可接受的.
有几种研究途径,我现在正在寻求建议:
再次编辑:因为这是一个相当小的问题,因为Ask Ubuntu为Ubuntu平台提供了许多与编程相关的问题,所以我在该网站上询问了一个特定于DBus的问题.