第一个qt窗口项目mainwindow.docx_第1页
第一个qt窗口项目mainwindow.docx_第2页
第一个qt窗口项目mainwindow.docx_第3页
第一个qt窗口项目mainwindow.docx_第4页
第一个qt窗口项目mainwindow.docx_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论