【结对项目】9. GUI 面向对象设计OOD阶段(项目第3阶段)

本文详细介绍了GUI面向对象设计OOD阶段的用户界面设计,重点讨论了HistoryDialog和QtGuiApplication两个类的设计与实现,包括类的属性、方法及信号槽机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

9. GUI 面向对象设计OOD阶段

用户界面设计:

 

 

除了新的两个GUI类需要设计和编码,其他类直接可以沿用第2阶段中的所有类,直接调接口即可

两个GUI相关类的设计:

HistoryDialog类

class HistoryDialog : public QDialog {
  Q_OBJECT

public:
  HistoryDialog(QWidget *parent = NULL);
  
private:
  //指向主窗口的指针
  QtGuiApplication *mainwindow;
  //历史记录文件的指针,从主窗口对象中的fp_history获得
  FILE *fp;
  Ui::HistoryDialog ui;

private slots:
  //清除历史记录
  void ClearHistory();
};

QtGuiApplication类

class QtGuiApplication : public QMainWindow
{
  Q_OBJECT

  friend class HistoryDialog;

public:
  QtGuiApplication(QWidget *parent = Q_NULLPTR);
  ~QtGuiApplication();

private:
  Ui::QtGuiApplicationClass ui;
  HistoryDialog *historydialog;
  //用来进行题目相关操作
  Question question;
  //现存的计时器线程个数,线程间同步用
  int timer_thread_amount;
  //历史记录文件指针
  FILE *fp_history;

  int question_amount;
  int current_index;
  int current_score;
  //新建计时器线程
  void StartTimer(int seconds);
signals:
  //超时时要发送的信号
  void NoTimeSignal();

private slots:
  //显示历史记录按钮的响应函数
  void ShowHistory();
  //开始做题按钮的响应函数
  void StartExercises();
  //提交答案按钮的响应函数
  void SubmitAnswer();
  //下一道题按钮的响应函数
  void NextQuestion();

  //超时的响应函数
  void RunOutOfTime();
};

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值