편집 버튼을 클릭 한 후 unclickable 창을 함수 호출하는 WPushButton 클릭 : 어떻게 하나 동결중량 C++는
button->clicked(boost::bind(&Service::burn, this));
을 화면 (또는 모든 버튼)은 그런 식으로 기능을 실행하는 동안 아무 것도 클릭 할 수 없다는 것입니다 (꽤 오랜 시간 실행됩니다). 현재 Service :: burn() 함수가 실행될 때 Service :: burn() 함수가 완료된 후 대기열에있는 다른 버튼을 클릭하여 실행할 수 있습니다.
동결 후 모든 버튼/화면을 복원해야합니다.
이솔루션 :
Wt::WPushButton* spec_button;
void testclass::test_only()
{
spec_button = new Wt::WPushButton("slow func");
auto some_long_func = [&](){
cout << "#######start \n";
std::this_thread::sleep_for(std::chrono::seconds(1));
cout << "#######end \n";
spec_button->setDisabled(false);
};
content()->addWidget(spec_button);
spec_button->clicked().connect(spec_button, &WPushButton::disable);
spec_button->clicked().connect(boost::bind<void>(some_long_func));
}
감사합니다 그것은 아무튼 호출 및 WPushButton :: 후 및 서비스 :: 화상 통화를 가능하게하지만 일 그것을 가능하게하는 것처럼 보이고 장애인이 머무를 수 있습니까? – Levi
'Service :: burn'은 단일 스레드 내에서 실행됩니까? 그 안에'WPushButton :: Enable'을 호출합니까? – hank
예, 단일 스레드 내에서 실행됩니다. 함수와 외부 모두에서 WPushButton :: enable을 호출 해 보았습니다.하지만 아무런 효과가 없습니다. – Levi