[Insight-users] [vtkusers] QT, VTK, and ITK combined program exit problem
Xiaopeng Yang
yxp233 at postech.ac.kr
Fri Jun 24 22:26:21 EDT 2011
I did what you told. But still I cannot select seed point unless I call
Start().
This is the code in main():
vtkSmartPointer<vtkPointHandleRepresentation2D> handle =
vtkSmartPointer<vtkPointHandleRepresentation2D>::New();
handle->GetProperty()->SetColor(1,0,0);
vtkSmartPointer<vtkSeedRepresentation> rep =
vtkSmartPointer<vtkSeedRepresentation>::New();
rep->SetHandleRepresentation(handle);
// Seed widget
vtkSmartPointer<vtkSeedWidget> seedWidget =
vtkSmartPointer<vtkSeedWidget>::New();
seedWidget->SetInteractor(this->ui->qvtkWidget_4->GetRenderWindow()->GetInte
ractor());
seedWidget->SetRepresentation(rep);
vtkSmartPointer<vtkSeedCallback> seedCallback =
vtkSmartPointer<vtkSeedCallback>::New();
seedCallback->SetRepresentation(rep);
seedWidget->AddObserver(vtkCommand::PlacePointEvent,seedCallback);
seedWidget->AddObserver(vtkCommand::InteractionEvent,seedCallback);
seedWidget->On();
this->ui->qvtkWidget_4->GetRenderWindow()->GetInteractor()->Start();
And this is the code for interaction:
class vtkSeedCallback : public vtkCommand
{
public:
static vtkSeedCallback *New()
{
return new vtkSeedCallback;
}
vtkSeedCallback() {}
virtual void Execute(vtkObject*, unsigned long event, void *calldata)
{
Seed_Selection_Portal = true;
Seed_Selection_Tumor = true;
if(event == vtkCommand::PlacePointEvent)
{
std::cout << "Point placed, total of: "
<< this->SeedRepresentation->GetNumberOfSeeds() << std::endl;
}
if(event == vtkCommand::InteractionEvent)
{
if(calldata)
{
std::cout << "Interacting with seed : "
<< *(static_cast< int * >(calldata)) << std::endl;
}
}
std::cout << "List of seeds (Display coordinates):" << std::endl;
.
}
Thank you,
Xiaopeng
From: Clinton Stimpson [mailto:clinton at elemtech.com]
Sent: Saturday, June 25, 2011 10:41 AM
To: Xiaopeng Yang
Cc: 'vtk'; insight-users at itk.org
Subject: Re: [vtkusers] QT, VTK, and ITK combined program exit problem
On Jun 24, 2011, at 7:36 PM, Xiaopeng Yang wrote:
Hi Clint,
Actually I tried to use QVTKInteractor as follows:
imageViewer1_open->SetupInteractor(this->ui->qvtkWidget->GetRenderWindow()->
GetInteractor());
.
this->ui->qvtkWidget->GetRenderWindow()->GetInteractor()->Start();
Don't call Start() for a Qt application. Use QApplication::exec() in your
main() instead.
However, still the same problem occurred. Could you please let me know what
mistakes I made?
I'm not sure why your seed point selection isn't working.
Clint
Thank you,
Best regards,
Xiaopeng
From: clinton at elemtech.com [mailto:clinton at elemtech.com]
Sent: Saturday, June 25, 2011 10:04 AM
To: Xiaopeng Yang; 'vtk'; insight-users at itk.org
Subject: Re: [vtkusers] QT, VTK, and ITK combined program exit problem
If you are using Qt, the event loop should be handled by Qt, not VTK with
the iren->start.
Also be sure to use the QVTKInteractor instead of the type from the factory
method vtkRenderWindowInteractor::New.
Clint
----- Reply message -----
From: "Xiaopeng Yang" <yxp233 at postech.ac.kr>
Date: Fri, Jun 24, 2011 6:42 pm
Subject: [vtkusers] QT, VTK, and ITK combined program exit problem
To: "'vtk'" <vtkusers at vtk.org>, <insight-users at itk.org>
Hi All,
I found where the problem is: "iren->Start()". "iren" is the
vtkRenderWindowInteractor I defined in my program. If I delete this sentence
"iren->Start()", then I can close both GUI and console windows without
warning message "QObject::killTimers: timers cannot be stopped from another
thread". Otherwise, the problem I described in the previous Email will
occur.
However, for seed point selection, I need "iren->Start()". Then what should
I do to solve the problem?
Best,
Xiaopeng
From: vtkusers-bounces at vtk.org [mailto:vtkusers-bounces at vtk.org] On Behalf
Of Xiaopeng Yang
Sent: Friday, June 24, 2011 4:07 PM
To: 'vtk'; insight-users at itk.org
Subject: [vtkusers] QT, VTK, and ITK combined program exit problem
Dear Users,
I made a program based on QT, VTK, and ITK. When I run the program, there
are GUI window and console window. When I click "exit" button in the GUI
window, the GUI window exits but the console window doesn't. When I click
"exit" button in the console window, there is a message:
QObject::killTimers: timers cannot be stopped from another thread. If
someone already had a similar experience, please could you share your
knowledge?
Thank you very much.
Best regards,
_______________________________________________
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the VTK FAQ at:
http://www.vtk.org/Wiki/VTK_FAQ
Follow this link to subscribe/unsubscribe:
http://www.vtk.org/mailman/listinfo/vtkusers
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20110625/e04c505c/attachment.htm>
More information about the Insight-users
mailing list