我正在創建一個GUI來操縱機器人手臂。手臂的位置可以通過6個浮標來描述(描述各個手臂關節的位置)Qt/C++ - 關於調用者/被調用者,對象所有權的困惑
該界面由一個帶有手臂圖的QGraphicsView組成(可以通過點擊來改變手臂位置 - 調整這個界面還有6個lineEdit框,也可以分別調整這些值
當圖形視圖被點擊,當行編輯框被改變時,我想要行編輯框/圖形視圖以保持同步
這讓我很困惑如何存儲6個浮點數,並在更新時觸發事件。我目前的想法是這樣的:
- 機器人手臂的位置應該由類RobotArmLocation表示。這個類的對象然後具有諸如obj.ShoulderRotation()和obj.SetShoulderRotation()的方法。
- MainWindow具有RobotArmLocation的單個實例。
接下來是我更加困惑的一點,如何加入一切。我在想:
MainWindow有一個ArmLocationChanged插槽。每當位置對象發生變化時就會發出這個信號。
圖類將有一個SetRobotArmLocation(RobotArmLocation & loc)。當圖改變時,可以自由更改位置對象,並向ArmLocationChanged插槽發出信號。
- 同樣,更改任何文本框將觸發一個信號到該ArmLocationChanged插槽。插槽然後有代碼來同步所有元素。
這種看起來像是一團糟,有沒有人有任何其他的建議?我也想過以下幾點,它有沒有merrit?
- 的RobotArmLocation類有一個插槽的ValueChanged,圖表和文本框可以直接使用,直接繞過主窗口(似乎更清潔?)
感謝您的智慧!