1. 程式人生 > >監控組選擇生效時間的窗口

監控組選擇生效時間的窗口

小時 start pda 監控 選擇 see post img use

對監控區域組配置生效時間,如下圖所示,以半小時的粒度設置

技術分享圖片

主要思路:

畫橫線豎線畫出7*48個小方格,填充顏色時以小方格是矩形為單位進行填充

用bool isActive[7][48];代表每個小方格的狀態

每次鼠標單擊到某個方格,就取反對應的isActive,然後觸發重繪

重繪時按照sActive是否為true判斷是否對小方格的區域填充顏色

判斷鼠標單擊位置位於哪個小方格,只需將坐標去除邊界後,除以小方格的大小,即是第幾個小方格的下標:

 1 void HourWidget::mouseReleaseEvent(QMouseEvent *e){
 2     if(e->button() == Qt::LeftButton){
3 QPoint p = e->pos(); 4 int x = p.x(); 5 int y = p.y(); 6 x-=xStart; 7 y-=yStart; 8 if(x<0 || y<0 || x>=48*w || y>=7*h){ 9 e->ignore(); 10 return; 11 } 12 int j = x/w; 13 int i = y/h;
14 isActive[i][j] = !isActive[i][j]; 15 update(); 16 } 17 e->ignore(); 18 }

監控組選擇生效時間的窗口