나는 몇 가지 셰이프를 그리기 만하는 응용 프로그램을 만들려고합니다. 그러면 3 개의 QWidgetLists 중 하나에서 선택하고 단추를 클릭하면 선택한 셰이프가 빨간색으로 바뀝니다. 그리기 등은 문제가 아니지만 어떤 목록이 활성화되어 있고 항목을 선택했는지 확인할 수있는 방법을 찾을 수 없습니다. 현재 코드는 다음과 같습니다어떤 QListWidget이 항목을 선택했는지 확인하는 방법
QPixmap pixmap(ui->display_field->width(),ui->display_field->height());
pixmap.fill("transparent");
int chosen_one;
if(ui->radio_circle->isChecked()){
if(circles_list.count() > 0){
chosen_one = ui->circles_list_wgt->currentItem()->text().toInt();
circles_list[chosen_one].setColor(Qt::red);
for(int i=0; i<circles_list.count(); i++) circles_list[i].draw(&pixmap);
circles_list[chosen_one].setColor(Qt::black);
}
for(int i=0; i<rectangles_list.count(); i++) rectangles_list[i].draw(&pixmap);
for(int i=0; i<triangles_list.count(); i++) triangles_list[i].draw(&pixmap);
}
if(ui->radio_rect->isChecked()){
if(rectangles_list.count() > 0){
chosen_one = ui->rectangles_list_wgt->currentItem()->text().toInt();
rectangles_list[chosen_one].setColor(Qt::red);
for(int i=0; i<rectangles_list.count(); i++) rectangles_list[i].draw(&pixmap);
rectangles_list[chosen_one].setColor(Qt::black);
}
for(int i=0; i<circles_list.count(); i++) circles_list[i].draw(&pixmap);
for(int i=0; i<triangles_list.count(); i++) triangles_list[i].draw(&pixmap);
}
if(ui->radio_tri->isChecked()){
if(triangles_list.count() > 0){
chosen_one = ui->triangles_list_wgt->currentItem()->text().toInt();
triangles_list[chosen_one].setColor(Qt::red);
for(int i=0; i<triangles_list.count(); i++) triangles_list[i].draw(&pixmap);
triangles_list[chosen_one].setColor(Qt::black);
}
for(int i=0; i<circles_list.count(); i++) circles_list[i].draw(&pixmap);
for(int i=0; i<rectangles_list.count(); i++) rectangles_list[i].draw(&pixmap);
}
ui->display_field->setPixmap(pixmap);
원래 응용 프로그램은, 작업이 지금처럼 라디오 버튼에 따라 약간 다른 방법을했다. 아이템 선택에만 의존하고 싶습니다. 솔루션과