VS2012下QT creator登录对话框设计

最近看《Qt教程及软件》学习QT,这本书的编程是在Qt creator上进行的,本人更倾向于在VS2012上进行开发,故根据自己实验中的经验,笔记一下在VS2012进行Qt编程的一些问题及解决方法,本人用的是Qt5.3版本。

首先,新建一个工程

选择Qt Application,填写工程名

一直Next,Base class选择QWidget,点击Finish创建

此时项目未添加对应的include文件,有许多地方显示“can not open source file……”。选择菜单栏PROJECT->User Properties… 进入添加头文件设置页面

点击“Additional Include Directories”进行编辑,添加你QT安装目录下的以下文件夹

新建一个对话类,右键项目名,添加新类

选择Qt5 Classes,双击 Qt5GuiClasses

Base Class填QDialog,点击Finish完成创建

然后就进行ui布置了,在logindlg.ui中设计下面的界面:行输入框为Line Edit。其中用户名后面的输入框在属性中设置其object Name为usrLineEdit,密码后面的输入框为pwdLineEdit,登录按钮为loginBtn,退出按钮为exitBtn。设置完如下图:

点击选择”编辑信号/槽“,按住退出按钮拖一下,弹出对话框,信号选择clicked(),槽选择close(),实现点击退出功能。若没有close(),选择“显示从QWidget继承的信号和槽”。

按照上面方法设置登录按钮的信号与槽,其槽函数要自己写,所以槽选择那里点击编辑,新增一个slot1(),改名为on_loginBtn_clicked()。点击确定。保存Qt 设计师并关闭。

回到VS2012,修改main.cpp:

#include "user.h"
#include <QtWidgets/QApplication>
#include "logindlg.h"

int main(int argc, char *argv[])
{
  QApplication a(argc, argv);
  User w;
  loginDlg login;
  if(login.exec() == QDialog::Accepted)
  {
  w.show();
  return a.exec();
  }
  else return 0;
}

接着修改loginDlg.cpp,先在loginDLg.h中添加之前的槽函数的声明。

#ifndef LOGINDLG_H
#define LOGINDLG_H

#include <QDialog>
#include "ui_logindlg.h"

class loginDlg : public QDialog
{
  Q_OBJECT

public:
  loginDlg(QWidget *parent = 0);
  ~loginDlg();

private:
  Ui::loginDlg *ui; //这里定义ui为指向类的指针
private slots:
  void on_loginBtn_clicked(); //槽函数声明
};

#endif // LOGINDLG_H

最后在loginDlg.cpp中定义槽函数,实现正确输入帐号密码则进入主窗口,否则报错。

void loginDlg::on_loginBtn_clicked()
{
  if(ui->usrLineEdit->text() == tr("caddress")&&ui->pwdLineEdit->text()==tr("123456"))
    accept();
  else{
    QMessageBox::warning(this,tr("Warning"),tr("user name or password error!"),QMessageBox::Yes):
  }
}

至此,程序还有许多错误,有大部分头文件未找到,按照上面的方法继续添加相应文件夹:

添加完后点击编译,则相应的头文件就找到了。

loginDlg.cpp完整代码:

#include "logindlg.h"
#include <qmessagebox> //添加该头文件才能使用QMessageBox

loginDlg::loginDlg(QWidget *parent)
 : QDialog(parent)
{
 (*ui).setupUi(this); //这里ui需要为类类型,所以得解指针
}

loginDlg::~loginDlg()
{

}

void loginDlg::on_loginBtn_clicked()
{
 if(ui->usrLineEdit->text() == tr("caddress")&&ui->pwdLineEdit->text()==tr("123456")) //这里需要指针,直接使用ui
  accept();
 else{
  QMessageBox::warning(this,tr("Warning"),tr("user name or password error!"),QMessageBox::Yes);
 }
}

点击编译就能实现功能

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C#中登录窗体和欢迎窗体关闭方法分析

    本文实例分析了C#中登录窗体和欢迎窗体关闭方法.分享给大家供大家参考.具体分析如下: 在c#的winform编程中,我们经常会做登录窗体或欢迎窗体,并把他们作为启动窗体.   但是,我们有可能会遇到一些问题.   请看下面的代码: 复制代码 代码如下: private void button1_Click(object sender, EventArgs e) {     this.Close();     new Form2().Show(); } 这段代码想让form1中的button1在点

  • VS2012实现简单登录界面

    本文实例为大家分享了VS2012实现登录界面的具体代码,供大家参考,具体内容如下 这个是第一个界面的代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using Syst

  • C#.NET实现网页自动登录的方法

    本文实例讲述了C#.NET实现网页自动登录的方法.分享给大家供大家参考.具体如下: 用C#语言编写一个Windows Form应用程序,实现自动登录一个特定的页面. 下面以自动登录:http://localhost/Web/Login.aspx 作为例子,讲解如何模拟手工输入用户名密码并点击登录,实现自动登录. 新建一个C#应用程序,给应用程序起个名字,如AutoLogin,在窗体中添加一个TextBox.Button,及WebBrowser控件,并为WebBrowser控件添加webBrows

  • c#调用存储过程实现登录界面详解

    1,创建存储过程 复制代码 代码如下: create proc Pro_Login(@UserName nvarchar(10),@PassWord nvarchar(10))as select * from [User] UserName=@UserName and PassWord=@PassWord 2,通过类是实现配置数据库字符串连接 复制代码 代码如下: class ConnectionString{public static string conStr = "Data Source=

  • C#实现登录窗口(不用隐藏)

    (1).在程序入口处,打开登录窗口 复制代码 代码如下: static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Form form = new login(); form.Show(); Application.Run(); }   复制代码 代码如下: private void button1_Click(object sender

  • VS2012下QT creator登录对话框设计

    最近看<Qt教程及软件>学习QT,这本书的编程是在Qt creator上进行的,本人更倾向于在VS2012上进行开发,故根据自己实验中的经验,笔记一下在VS2012进行Qt编程的一些问题及解决方法,本人用的是Qt5.3版本. 首先,新建一个工程 选择Qt Application,填写工程名 一直Next,Base class选择QWidget,点击Finish创建 此时项目未添加对应的include文件,有许多地方显示"can not open source file--"

  • Qt Creator使用教程的简单说明

    目录 Qt Creator 欢迎界面 Qt Creator 新建项目 1)左边栏 2) 代码编辑器 Qt Creator 编辑 UI Qt Creator 生成和运行程序 Qt 在很长的一段时间内都没有自己的开发环境,直到 Qt 被诺基亚收购,才大力推自己的集成开发环境,就是 Qt Creator,这为 Qt 的开发带来了很大的方便. 在 Qt Creator 诞生之前, 程序员可以通过 qmake 命令行编译,或者像前面几节一样手动输入 g++ 命令编译,在 Linux 平台还有 KDevel

  • C/C++ QT实现自定义对话框的示例代码

    对话框分为多种,常见的有通用对话框,自定义对话框,模态对话框,非模态对话框等,其中通用对话框包括了,QFileDialog文件对话框,QColorDialog颜色对话框,QFontDialog字体对话框,QInputDialog输入对话框等,自定义对话框则主要是实现自己布局的简单页面,区别于窗体对话框则显得更加简单一些,除对话框外,多窗体设计也是最常用的,例如多窗体嵌入,MID窗体等,下面则是每种窗体的代码总结. 创建自定义窗体 1.首先使用两个控件,TableView主要是表格处理,TreeV

  • C/C++ Qt 自定义Dialog对话框组件应用案例详解

    在上一篇文章 <C/C++ Qt 标准Dialog对话框组件应用> 中我给大家演示了如何使用Qt中内置的标准对话框组件实现基本的数据输入功能. 但有时候我们需要一次性修改多个数据,使用默认的模态对话框似乎不太够用,此时我们需要自己创建一个自定义对话框,这类对话框也是一种窗体,所以可以在其上面放置任何的通用组件,以实现更多复杂的开发需求. 目前自定义对话框与主窗体的通信有两种方式,一种是通过函数实现通信,另一种则是通过信号实现通信,我们以通过函数通信为基础,解释一下如何实现跨窗体通信. 首先需要

  • Qt creator中项目的构建配置和运行设置的步骤

    使用 Qt Creator 集成开发环境构建和运行程序是一件非常简单的事情,一个按钮或者一个快捷键搞定全部,大家已经都了解了.但是,这些看起来简单的过程,背后到底发生了什么呢? 点击 Qt Creator 项目模式,可以看到当前项目的配置界面: 在打开具体的项目之后,Qt Creator 的项目模式才会变得可用.对于打开的项目,比如 HelloWorld 项目,可配置的内容如上图左侧显示的五大类,分别是"Build & Run(构建和运行)""编辑器"&qu

  • Qt Creator配置opencv环境的全过程记录

    首先需要下载好相应的opencv+控件文件夹(注意不要有中文和空格): 到文件夹下的x86/bin 目录中拷贝所有的.dll文件(建议选择按类型排序,否则有可能拷贝漏了) 复制到C:\Windows\SysWOW64下 使用: 在Qt Creator 中创建新工程,在工程中的.pro文件添加两行: INCLUDEPATH += D:/Qt_Opencv_Project/opencv_3.4.2_Qt/include LIBS += D:/Qt_Opencv_Project/opencv_3.4.

  • linux系统下的ssh登录和配置方法

    一 ssh的两种登录方式 1密码登录: [root@westos Desktop]# ssh root@192.168.122.26 Address 192.168.122.26 maps to bogon, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT! root@192.168.122.26's password: Last login: Tue Jan 17 13:27:29 2017 from

  • CentOS下SSH无密码登录的配置文件

    1.确认本机sshd的配置文件(需要root权限) $ gedit /etc/ssh/sshd_config 找到以下内容,并去掉注释符"#" RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys 2.如果修改了配置文件需要重启sshd服务 (需要root权限) $ /sbin/service sshd restart 配置SSH无密码登录需要3步: 1.生成公钥和私

  • Ubuntu18.04下QT开发Android无法连接设备问题解决实现

    目录 1. 需求 2. 问题现象 3. 解决办法 1. 需求 在Linux环境下搭建QT的Android开发环境,开发了一款APP想部署安装在实体手机设备上. Linux版本: ubuntu18.04 64位,运行在虚拟机环境下. QT版本: 5.12.6 测试手机: 小米10至尊版 系统版本是: Android 11 error: insufficient permissions for device: user in plugdev group; are your udev rules wr

  • .net 单点登录的设计与实践

    前言 最近轮到我在小组晨会来分享知识点,突然想到单点登录,准备来分享下如何实现单点登录,所以有了下文.实现方案以及代码可能写得不是很严谨,有漏洞的地方或者错误的地方欢迎大家指正. 刚开始头脑中没有思路,直接在博客园里面看看别人是如何来实现的,看了几篇文章发现,发现解决方案有点问题,或者说不算实现了单点登录 名称定义 为了方便说明先说明几个文中出现的名词的含义: P站:统一登录授权验证中心,demo中 域名是www.passport.com:801 A站:处于不同域名下的测试网站,demo中 域名

随机推荐