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

25-对话框界面设计和类定义

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

6.5.2 对话框界面设计和类定义

采用新建Qt Designer Form Class的方法创建启动登录对话框,它从QDialog继承而来,设置类名称为QDlgLogin。界面设计在UI设计器里进行,主要区域是一个用于显示图片的QLabel组件,在资源文件里载入图片,为QLabel组件的pixmap指定图片。

对话框下方是用于用户名和密码输入的QLineEdit组件,两个按钮用于选择用户输入,设置“取消”按钮的clicked()信号与对话框的reject()槽函数关联。但是“确定”按钮的clicked()信号不要设置为与对话框的任何槽函数关联,需要对其编写自定义的槽函数代码,因为需要根据用户输入确定对话框返回结果。为对话框界面上的组件设置好布局。

下面是qdlglogin.h文件中QDlgLogin类的定义:

class QDlgLogin : public QDialog
{
   Q_OBJECT
private:
   bool   m_moving=false;//表示窗口是否在鼠标操作下移动
   QPoint  m_lastPos;  //上一次的鼠标位置
   QString  m_user="user"; //初始化用户名
   QString  m_pswd="12345";//初始化密码,未加密的
   int   m_tryCount=0; //试错次数
   void   readSettings(); //读取设置,注册表
   void   writeSettings();//写入设置,注册表
   QString  encrypt(const QString& str);//字符串加密
protected:
//用于鼠标拖动窗口的鼠标事件
   void mousePressEvent(QMouseEvent *event);
   void mouseMoveEvent(QMouseEvent *event);
   void mouseReleaseEvent(QMouseEvent *event);
public:
   explicit QDlgLogin(QWidget *parent = 0);
   ~QDlgLogin();
private slots:
   void on_btnOK_clicked();
private:
   Ui::dlgLogin *ui;
};

在QDlgLogin类中,定义了一些私有成员变量。

  • m_moving和m_lastPos用于在拖动窗口时记录移动状态和上次的位置,由于Splash窗口没有标题栏,所以采用在图片上拖拉的方式移动窗口,使用了3个鼠标事件来实现窗口拖动操作。
  • m_user, m_pswd, m_tryCount用于记录用户名、密码和试错次数。
  • readSettings()用于读取存储的设置,writeSettings()用于将设置存储,在Windows系统下,这些信息是存储在注册表里的。
  • encrypt()函数用于对一个字符串进行加密。