สัญญาณพาราดิมาติกเมื่อผู้ใช้เลือกแถว

ฉันมี QTableView ที่แสดงแบบจำลองที่ทำจากแถวและสองสามคอลัมน์ เช่น พิกัด เช่น x,y,z แถวเป็นองค์ประกอบทั้งหมด และฉันต้องการทริกเกอร์สัญญาณทุกครั้งที่ผู้ใช้เลือกตัวเลือก ฉันจินตนาการว่าวัตถุกราฟิกบางอย่างเปลี่ยนแปลงไปขึ้นอยู่กับแถวที่เลือก

ความพยายามในปัจจุบันของฉันคือการทำอะไรบางอย่างเช่น

ui.tlbView->setSelectionMode(QAbstractItemView::SelectionMode::SingleSelection);
ui.tlbView->setSelectionBehavior(QAbstractItemView::SelectionBehavior::SelectRows);
connect(ui.tlbView,&QTableView::clicked ,this,&FancyWidget::rowSelected);

สิ่งนี้ใช้ได้บางครั้ง แต่ล้มเหลวในบางครั้ง ตัวอย่างเช่น การคลิกที่ส่วนหัวแนวตั้งจะไม่ถูกบันทึกในขณะที่การเปลี่ยนแปลงการเลือก สิ่งนี้ไม่ดีเพราะฉันต้องการสัญญาณที่ทริกเกอร์ทุกครั้งที่การเปลี่ยนแปลงการเลือก

สิ่งนี้ทำให้ฉันรู้สึกว่าการจับสัญญาณที่คลิกนั้นเป็นแฮ็ก และเนื่องจากวิดเจ็ตระบุอย่างถูกต้องว่าสัญญาณนั้นถูกเลือก แม้ว่าสัญญาณที่คลิกของฉันจะไม่ถูกเรียกก็ตาม ฉันกำลังพยายามหาวิธีจับคู่สถานะการเลือกของวิดเจ็ตแบบ 1:1


person Mikhail    schedule 22.01.2014    source แหล่งที่มา


คำตอบ (1)


หากต้องการรับการแจ้งเตือนการเปลี่ยนแปลงการเลือก โปรดดูที่ QItemSelectionModel โมเดลการเลือกของมุมมองตารางที่คุณเข้าถึงได้ผ่าน selectionModel() ในกรณีของคุณ QItemSelectionModel::selectionChanged() ควรเป็นสิ่งที่ คุณต้องการ.

connect(ui.tlbView->selectionModel(), &QItemSelectionModel::selectionChanged, 
        this, &FancyWidget::selectionChanged);
person Frank Osterfeld    schedule 22.01.2014