1、第一个Qt窗口程序,基于基类mainwindow 要是实现的界面如: 开工 1.新建qt项目,命名为HelloDlg, 基类选择mainwindow【注意不要选错了,否则有些东西没有啦】 a. b. 此时项目结构如图 接下来新建一个qt设计师界面类 选择 Dialog without Buttons 其它默认 此时项目架构如图: 设计如图Dialog界面 设置其对象名如:UNm_ledit表示lineedit用户名输入框的对象名 然后点击tab按钮,设置 tab顺序 依次点击其中的
2、数字, 然后按下F3键即可。
然后右键”登陆”按钮 选择 转到槽
然后输入如下代码:
注意要在dialog.cpp中 包含 QMessageBox 头文件
#include
3、ccept(); } else { QMessageBox::warning(this, tr("Warning"), ("user name or password wrong!"), QMessageBox::Yes); ui->UNm_ledit->clear(); //清空用户名编辑框 ui->pwd_ledit->clear(); ui->UNm_ledit->setFocus(); //鼠标回到用户名编辑框 } } 此时已经完成了登陆按钮的功能, 但是点击登陆之后
4、 怎么跳转到主窗口中去呢? 这里就需要在主窗口的文件中做如下处理,先回到main.cpp文件中。 首先在main.cpp中包含dialog.h头文件 #include “dialog.h” 然后如输入如下代码 ,代码中附有详细解释, 代码简单,所以不单独解释 return 0 , 表示没有进入主窗口, 一直不退出! 此时编译之后, 通过输入用户名和密码点击登陆 就可以键入主窗口了, 但是发现 在输入密码的时候是明文显示的, 那肿么是好? 再次回到dialog.cpp文件中, 在其初始化代码中告诉LineEdit编辑框说明这是个密码框就可以了,具体代码如下: 添加的代码只有
5、一句: ui->pwd_ledit->setEchoMode(QLineEdit::Password); 好了, 现在输入密码没有问题了, 也可以登陆主窗口了,但是登陆主窗口里面什么都没有, 那么怎么是好? 下面要做几件事情 1.编辑菜单栏, 为其添加图标,为其添加响应事件 2.在主窗口中动态显示当前时间 3.编辑状态栏 1.编辑菜单栏 单击mainwindow.ui 回到mainwindowui设计界面 在这里设置菜单选项 大概设置成这个样子 然后添加图标 添加图标的第一步就是要准备ico图标资源, 在项目目录下新建一个image文件夹把图标放到里面去
6、 然后新建Qt资源文件 命名为Resource 此时的项目架构为: 然后点击添加 前缀 将前缀更改为/menu 然后再点击添加 添加文件,将项目目录下的image文件夹中的图标全部添加进来 然后回到mainwindow.ui设计界面, 看到编辑器下面的 Action 编辑器 ,然后双击其中的按钮就会弹出一个属性框出来 这里更改每个按钮的对象名称, 这里的“新建”按钮,我们更改为 m_new_Btn 然后下面那个有“图标” , 后面那个有个下列框, 点进去,选择刚才的图标, 确定,就可以把图标添加进来了 这里你可能会发现点击进去,没有看到刚添加到资源
7、文件中的图标, 这是因为你刚没有保存Resource.qrc文件所致,回去保存一下,回来再看就有了
然后在Action编辑器中选中新建按钮 右键 转到槽,就可以为这个按钮添加响应函数了
此时我们先在mainwindow上添加三个个Label,分为命名为 view_new , view_time ,view_str
然后在mainwindow.cpp中找到刚才的新建按钮函数,并输入如下代码
2.接下来要实现动态显示时间,这里就需要有一个定时器,定时器的初始化同样在mainwindow.cpp的初始化代码中进行
首先还是要先包含#include
8、 这里还需要建立一个定时器的函数, 来响应定时器的变化,就是说时间到了之后,应该来刷新显示时间, 這样才能实现动态显示时间。 先到mainwindow.h中添加私有信号槽 private slots: void timerUpDate(); 然后到mainwindow.cpp中完成timerUpdate()函数, 代码如下。然后还要到mainwindow的初始化函数中新建一个Timer ,具体代码如下 接下来添加状态栏, 在状态栏中我们还添加两个信息显示, 于是要声明两个label用来显示这些信息, 这两个label 在mainwindow.h中声明即可。 回到main
9、window.h文件,当然首先还是要包括相应的头文件
#include






