好吧,我在这里:
Travis 中的 Nana C++ GUI 测试
其他点击,在 travis 中:
3.04s$ ./clicked
Will wait 2 sec...
waiting 2 sec...
running...
3 times automatic click.
Automatically clicking widget :
When the window fm is clicked, this function is called.
Automatically clicking widget :
When the window fm is clicked, this function is called.
Automatically clicking widget :
When the window fm is clicked, this function is called.
Now with then mouse.
Congratulations, this was not trivial !
Done...
Now again waiting 1 sec...
Done... Now API::exit all ...
在这里编程。
void clicked(const nana::arg_click & eventinfo)
{
std::cout<< "When the window fm is clicked, this function is called. \n";
}
int main()
{
using namespace nana;
form fm;
fm.events().click(clicked);
fm.show();
exec( 2, 1, [&fm]()
{
std::cout << "3 times automatic click. \n";
click(fm);
click(fm);
click(fm);
nana::arg_mouse m;
m.window_handle=fm;
m.alt=m.ctrl=m.mid_button=m.shift=false;
m.left_button=true;
m.pos.x=m.pos.y=1;
m.button=::nana::mouse::left_button;
std::cout << "Now with then mouse. \n";
//fm.events().mouse_down.emit(m);
//fm.events().mouse_up.emit(m);
// char c;
// std::cin >> c;
//fm.close();
});
}
这还远远没有准备好,只是我最初的想法。我最大的问题是我没有在 linux 中使用 GUI 的经验。我只进行了一些测试,一些示例,目前足以让我们发现大问题。我在 Windows 中测试本地化(好吧,当我有时间时......)但我个人无法在 linux 中进行测试,所以,Travis 对我来说非常有用。我发明了一些函数来在 GUI 库 self 中编写测试。(还)不是很优雅。我希望我有时间让它变得更好。我很乐意看到您的解决方案。