初学Qt——vs2012开发环境下的窗体跳转

最近接了份外快,要求使用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();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值