最近接了份外快,要求使用vs+qt开发一个简单的数据管理系统。qt开发使用的语言是c++,然而c++只是大一第二学期有教过而已,基本也差不多忘光了,废话不多说,讲下今天遇到的问题吧

如标题所说,窗体跳转的问题。

首先讲下qt开发环境的问题,qt开发有两种方式,一种是使用Qt Creator开发,这种可以在Linux系统下实现开发。还有一种是使用visual studio开发,这种只能在Windows系统下进行开发,使用vs的话还需要我们自行安装插件到vs上去。而且随着了解加深,发现其实用vs开发很麻烦,因为不同版本对qt的一些函数会有不同的改变。

比如在我们.cpp中修改窗体中label为中文文本时,出现的是一堆乱码,这需要我们对QString进行定义。之前查到在使用Qt Creator时可以使用以下代码解决该问题

//Set Encode

QTextCodec::setCodecForTr(QTextCodec::codecForName(“system”));

QTextCodec::setCodecForCStrings(QTextCodec::codecForName(“system”));

QTextCodec::setCodecForLocale(QTextCodec::codecForName(“system”));

结果发现在vs2010时这三个函数是都有的,而在vs2012中,第二跟第三两个函数已经没有了。。然而到了vs2013又重新有了,这就是使用vs的麻烦之处。

后来又在一些问题上,比如添加信号槽,vs下跟qt Creator下是两种写法,然后今天完成登录界面要跳转到主界面时,去网上找到的基本都是在qt Creator下怎么跳转,然而在vs下不能用,最后找到一篇接近的,才实现了这个功能。

下面贴上详细代码

首先新建一个窗体界面

第一个窗体界面是在创建项目时自动给我们添加的就不贴上去了

在FormFiles文件夹里新建一个ui文件,这里名为home.ui;

然后右键编译,给其生成ui_Home.h文件

接着在Healer Files文件夹新建home.h头文件

#ifndef Home_H
#define Home_H #include <QtWidgets/QWidget>
#include "ui_home.h"
#include<QtSql> class Home : public QWidget
{
Q_OBJECT public:
Home(QWidget *parent = 0);
~Home();
private:
Ui::Home ui;
QSqlDatabase db;
private slots:
};
#endif // MYCLASS_H

Source Files文件夹新建home.cpp

#include "home.h"
#include <QMessageBox>
#include<modelInfo.h>
Home::Home(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
} Home::~Home()
{ }

完成后对第一个窗体login的头文件进行修改如下

login.h

#ifndef MYCLASS_H
#define MYCLASS_H #include <QtWidgets/QWidget>
#include "ui_login.h"
#include<QtSql>
#include"home.h" //包含新窗体头文件 class Login : public QWidget
{
Q_OBJECT public:
Login(QWidget *parent = 0);
~Login();
bool connectSql();
private:
Ui::Login ui;
Home *home;//这里添加了新窗体定义
QSqlDatabase db;
private slots:
void Btn_OpenClick();
};
#endif // MYCLASS_H

在login.cpp里跳转到新窗体代码段如下

#include "home.h"//需要包含头文件,以下代码段实现跳转,写在相应的信号槽中即可
this->hide();
home = new Home();
home->show();

初学Qt——vs2012开发环境下的窗体跳转的更多相关文章

  1. 【应用笔记】【AN005】Qt开发环境下基于RS485的4-20mA电流采集

    简介 4-20mA电流环具有广泛的应用前景,在许多行业中都发挥着重要作用.本文主要介绍在Qt开发环境下基于RS485实现4-20mA电流采集,实现WINDOWS平台对数据的采集.分析及显示. 系统组成 ...

  2. arm-linux下qt + opencv开发环境的搭建(Altera DE1 Soc)

    arm-linux-gnueabihf-gcc下载 qt下载 arm-linux下qt + opencv开发环境的搭建(Altera DE1 Soc) Ubuntu 16.04 安装QT arm嵌入式 ...

  3. Qt官方开发环境生成的exe发布方式--使用windeployqt(windeployqt是单独的程序,放在低版本qt4目录下也可以运行的)

    Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,如果自己去复制dll,很可能丢三落四,导致exe在别的电脑里无法正常运行.因此 Qt 官方开发环境里自带了一个 ...

  4. 转:Qt 嵌入式开发环境搭建

    地址: http://www.cnblogs.com/lishixian/articles/3013897.html         作者:lsx_007 这里主要是记录了自己在搭建嵌入式开发环境时阅 ...

  5. QT在linux环境下读取和设置系统时间(通过system来直接调用Linux命令,注意权限问题)

    QT在Linux环境下读取和设置系统时间 本文博客链接:http://blog.csdn.NET/jdh99,作者:jdh,转载请注明. 环境: 主机:Fedora12 开发软件:QT 读取系统时间 ...

  6. iOS系统提供开发环境下命令行编译工具:xcodebuild

    iOS系统提供开发环境下命令行编译工具:xcodebuild[3] xcodebuild 在介绍xcodebuild之前,需要先弄清楚一些在XCode环境下的一些概念[4]: Workspace:简单 ...

  7. spark最新源码下载并导入到开发环境下助推高质量代码(Scala IDEA for Eclipse和IntelliJ IDEA皆适用)(以spark2.2.0源码包为例)(图文详解)

    不多说,直接上干货! 前言   其实啊,无论你是初学者还是具备了有一定spark编程经验,都需要对spark源码足够重视起来. 本人,肺腑之己见,想要成为大数据的大牛和顶尖专家,多结合源码和操练编程. ...

  8. angular 4 开发环境下打包文件过大

    angular 4本地开发环境下,ng server -- port 8080 -o 之后在在浏览器中查看数据请求,其中vendor.bundle.js有8.3mb,而整个传输数据大小为16.3mb ...

  9. Qt官方开发环境生成的exe发布方式

    本来想自己写一个打包程序的文章了,但是我发现了宝贝,在这里,大神写的比我牛逼的多了,这里做一下搬运工 一是为了方便大家 二是为了以后方便自己找 原文链接:http://tieba.baidu.com/ ...

随机推荐

  1. 关于前端CSS的总结

    CSS语法 CSS语言的基本单位是样式声明:propertyName : value ; CSS语言的使用方式: 1.把CSS样式声明作为HTML标签的style属性值.2.使用CSS选择器 CSS常 ...

  2. Pay Back(模拟)

    链接:https://ac.nowcoder.com/acm/contest/1086/C 题目描述 "Never a borrower nor a lender be." O h ...

  3. Git内部原理(1)

    Git本质上是一套内容寻址文件系统,在此之上提供了VCS的用户界面. Git底层命令(plumbing) vs 高层命令(porcelain) Git的高层命令包括checkout.branch.re ...

  4. 吴裕雄--天生自然python机器学习:朴素贝叶斯算法

    分类器有时会产生错误结果,这时可以要求分类器给出一个最优的类别猜测结果,同 时给出这个猜测的概率估计值. 概率论是许多机器学习算法的基础 在计算 特征值取某个值的概率时涉及了一些概率知识,在那里我们先 ...

  5. Uncaught TypeError: Cannot read property 'querySelector' of null

    报错. 解决办法:把报错部分的js放到body后面

  6. list集合、txt文件对比的工具类和文件读写工具类

    工作上经常会遇到处理大数据的问题,下面两个工具类,是在处理大数据时编写的:推荐的是使用map的方式处理两个list数据,如果遇到list相当大数据这个方法就起到了作用,当时处理了两个十万级的list, ...

  7. 快速进入当前目录的cmd窗口

  8. 系统学习javaweb重点难点1--如何区分<input/>框里的三种常用属性:type属性 name属性 和 value属性

    感想:这是我系统学习javaweb的时候感觉这个是一个初学者十分容易搞混的点 学习笔记: 首先,是type属性. 表单输入项标签之一,用户可以在该标签上通过填写和选择进行数据输入. type属性设置该 ...

  9. php单例模式的常见应用场景

    单例模式(Singleton)也叫单态模式,是设计模式中最为简单的一种模式,甚至有些模式大师都不称其为模式,称其为一种实现技巧,因为设计模式讲究对象之间的关系的抽象,而单例模式只有自己一个对象,也因此 ...

  10. Qt 添加Includes、Libraries库

    1 #------------------------------------------------- # # 加载相机SDK-Includes-Libraries # #------------- ...