当前位置:嗨网首页>书籍在线阅读

24-主窗口类的设计

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

9.4.3 主窗口类的设计

创建一个Widget Application项目,主窗口继承自QMainWindow,按照图9-15进行窗口可视化设计。主窗口上放置一个QGraphicsView组件后提升为QWChartView类。

主窗口类MainWindow的定义如下:

class MainWindow : public QMainWindow
{
   Q_OBJECT
private:
   QLabel  *labXYValue; //状态栏显示文字标签
   void   createChart(); //创建图表
   void   prepareData();  //准备数据
public:
   explicit MainWindow(QWidget *parent = 0);
   ~MainWindow();
private slots:
   void on_LegendMarkerClicked(); //图例单击槽函数,自定义槽函数
   void on_mouseMovePoint(QPoint point); //鼠标移动事件,自定义槽函数
   void on_actZoomReset_triggered(); //工具栏按钮,原始大小
   void on_actZoomIn_triggered(); //工具栏按钮,放大
   void on_actZoomOut_triggered(); //工具栏按钮,缩小
private:
   Ui::MainWindow *ui;
};

QWChartView类已经实现了鼠标拖动区域放大功能和按键快捷操作功能,在主窗口类MainWindow中无需再实现这些功能。主窗口需要实现的功能包括:

  • 绘制图表,createChart()函数用于初始化图表组件,prepareData()函数用于为图表创建序列并添加数据。
  • 定义一个槽函数on_mouseMovePoint(QPoint),与QWChartView的mouseMovePoint(QPoint)信号相关联,用于实时显示鼠标光标处的坐标值。
  • 定义一个槽函数on_LegendMarkerClicked(),与图表的图例marker的clicked()信号相关联,实现单击图例时显示或隐藏相关序列。