저는 (매우) Qt를 처음 사용하고 있으며, 원하는 플롯의 상자, 축 및 그리드 선이있는 외부 플롯 (외부 라이브러리 &)을 사용하지 않고 간단한 플롯을 만들려고합니다. 토글 할 수 있습니다. Qt QGraphicsScene 추가 및 삭제 줄
은 내가scene->addLine(...)
를 사용할 수있는 곳
QGraphicsScene
가
scene
으로 정의해야하지만 나는 내가
QCheckBox
에 따라 그 라인을 제거 할 수있는 방법을 모르겠어요. 이것은 내가
connect()
로 사용되는 기능
plotAxes()
에서 설정 한 것 (짧은)입니다 :
QGraphicsLineItem *xAxis {new QGraphicsScene::addLine(xMin, 0, xMax, 0, *dashedLine)};
if (boxToggle->isChecked())
{
scene->addItem(xAxis);
//scene->addLine(yCenter, yMin, yCenter, yMax, *dashedLine);
scene->update();
}
else
{
scene->removeItem(xAxis);
scene->update();
}
코드는 첫 번째 축 표시가 그것을 위해 작동하는 경우에 나는 그것을 다른 모든 것들에 확장 할 수 있지만, 작동하지 않습니다. xAxis
에 대해서는 QGraphicsItem
, QGraphicsScene
의 조합을 시도했지만 계속 진행하고 싶지는 않습니다. 변수 (포인터)로 선 (축)을 추가하는 방법을 알지 못하고 장면을 추가/삭제할 때이를 사용합니다. 누군가 그것을 어떻게 할 수 있는지 말해 줄 수 있습니까?
[편집] 내가, 내가 이미 그려 무슨 영향을주지 않고 그들을 전환 할 수 있도록하려는 말을 잊었 죄송합니다.
답장을 보내 주셔서 감사합니다. 필자는 코드를 복사하여 붙여 넣었지만 Qtcreator 4.0.3, Qt 5.7.0, arch x64에서는 'vtable for widget'에 대한 정의되지 않은 참조가 있습니다. 확실히'C++ 11' 라인을 추가 했는데도 마찬가지입니다. 나는 마지막'.moc' 라인을'no such file or directory'라고 주석해야했습니다. 이것이 원인인가? 또한 XY 축, 구성 가능한 그리드 선 수 및 모두에 적합한 상자, 사각형이있는 플롯 창을 상상해보십시오. 이것들은 이미 플롯 된 선을 만지지 않고도 추가/삭제되기를 원하므로 번호가 고정되어 있습니다. 어쩌면이게 도움이 될까요? –
@aconcernedcitizen 먼저 qmake를 실행 한 다음 건물을 시험해보십시오. – thuga
그런 다음 대부분의 멤버 변수를 멤버 변수로 저장하고 신호를 슬롯에 연결하고 해당 슬롯의 신호를 숨기거나 표시 할 수 있습니다. 예에서했던 것처럼 QVector를 사용할 필요가 없습니다. 람다 식 대신 슬롯을 사용할 수도 있습니다. 당신이 가지고있는 모든 체크 박스를위한 슬롯을 만들거나 숨 깁니다. – thuga