初学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();
初学Qt——vs2012开发环境下的窗体跳转的更多相关文章
- 【应用笔记】【AN005】Qt开发环境下基于RS485的4-20mA电流采集
简介 4-20mA电流环具有广泛的应用前景,在许多行业中都发挥着重要作用.本文主要介绍在Qt开发环境下基于RS485实现4-20mA电流采集,实现WINDOWS平台对数据的采集.分析及显示. 系统组成 ...
- arm-linux下qt + opencv开发环境的搭建(Altera DE1 Soc)
arm-linux-gnueabihf-gcc下载 qt下载 arm-linux下qt + opencv开发环境的搭建(Altera DE1 Soc) Ubuntu 16.04 安装QT arm嵌入式 ...
- Qt官方开发环境生成的exe发布方式--使用windeployqt(windeployqt是单独的程序,放在低版本qt4目录下也可以运行的)
Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,如果自己去复制dll,很可能丢三落四,导致exe在别的电脑里无法正常运行.因此 Qt 官方开发环境里自带了一个 ...
- 转:Qt 嵌入式开发环境搭建
地址: http://www.cnblogs.com/lishixian/articles/3013897.html 作者:lsx_007 这里主要是记录了自己在搭建嵌入式开发环境时阅 ...
- QT在linux环境下读取和设置系统时间(通过system来直接调用Linux命令,注意权限问题)
QT在Linux环境下读取和设置系统时间 本文博客链接:http://blog.csdn.NET/jdh99,作者:jdh,转载请注明. 环境: 主机:Fedora12 开发软件:QT 读取系统时间 ...
- iOS系统提供开发环境下命令行编译工具:xcodebuild
iOS系统提供开发环境下命令行编译工具:xcodebuild[3] xcodebuild 在介绍xcodebuild之前,需要先弄清楚一些在XCode环境下的一些概念[4]: Workspace:简单 ...
- spark最新源码下载并导入到开发环境下助推高质量代码(Scala IDEA for Eclipse和IntelliJ IDEA皆适用)(以spark2.2.0源码包为例)(图文详解)
不多说,直接上干货! 前言 其实啊,无论你是初学者还是具备了有一定spark编程经验,都需要对spark源码足够重视起来. 本人,肺腑之己见,想要成为大数据的大牛和顶尖专家,多结合源码和操练编程. ...
- angular 4 开发环境下打包文件过大
angular 4本地开发环境下,ng server -- port 8080 -o 之后在在浏览器中查看数据请求,其中vendor.bundle.js有8.3mb,而整个传输数据大小为16.3mb ...
- Qt官方开发环境生成的exe发布方式
本来想自己写一个打包程序的文章了,但是我发现了宝贝,在这里,大神写的比我牛逼的多了,这里做一下搬运工 一是为了方便大家 二是为了以后方便自己找 原文链接:http://tieba.baidu.com/ ...
随机推荐
- [思路笔记]WEB安全之漏洞挖掘
记录自己在实际渗透测试以及漏洞挖掘中会用到的思路和方法.不断完善,尽量以系统的方式展现程序化式的漏洞挖掘.由于各种原因,不便公开. 通用策略 1.信息搜集 : 数据挖掘.业务挖掘 数据: 邮箱.手机号 ...
- << 和>> 的计算公式
在java中,一个数左移n位,就是将这个数乘以2的n次方,右移就是将这个数除以2的n次方. 如: 8>>2 = 2 (8/2^2) 15 << 3 = 120 (15*(2 ...
- 八、linux-mysql的mysql主从复制原理和实战
1.mysql主从复制介绍 mysql支持单向.双向.链式级联.实时.异步复制,在复制过程中,一台服务器充当主服务器(Master),而一个或多个其它服务器充当从服务器(Slave). 复制:单向同步 ...
- J - Association of Cats and Magical Lights Kattis - magicallights (树状数组+dfs序)
Rar the Cat((™)) is the founder of ACM (Association of Cats and Magical Lights). This is the story o ...
- Docker系列四: 使用UI管理docker容器
一.什么是Portainer? Portainer是Docker的图形化管理工具,提供状态显示面板.应用模板快速部署.容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作).事件日志显示.容 ...
- linux通过grep根据关键字查找日志文件上下文
linux通过grep根据关键字查找日志文件上下文 1.在标准unix/linux下的grep命令中,通过以下参数控制上下文的显示: grep -C 10 keyword catalina.out 显 ...
- smooth curve|population|sample
Distribution Shapes 由直方图到 smooth curve 1.this distribution of heights is bell shaped(or mound shap ...
- python学习笔记(13)常用模块列表总结
os模块: os.remove() 删除文件 os.unlink() 删除文件 os.rename() 重命名文件 os.listdir() 列出指定目录下所有文件 os.chdir() 改变当前工作 ...
- deeplearning.ai 神经网络和深度学习 week1 深度学习概论
1. 预测房价.广告点击率:典型的神经网络,standard NN. 图像:卷积神经网络,CNN. 一维序列数据,如音频,翻译:循环神经网络,RNN. 无人驾驶,涉及到图像.雷达等更多的数据类型:混合 ...
- Qt QString 与 const char* 类型的转换
QString DATA; std::string str = DATA.toStdString(); const char* ch = str.c_str();