QT笔记之VS开发程序遇到的问题

转载:http://www.cnblogs.com/li-peng/p/3644812.html

转载:http://www.cnblogs.com/csuftzzk/p/VS_Qt_Experience.html

Qt  的窗口部件通过发射信号(signal)来表明一个用户的动作已经发生了或者是一个状态已经改变了。

如点击一个QPushButton时,按钮会发送一个clicked()信号,信号可以与函数(在qt里称做槽slot)相连接

可以把信号理解为c#里的事件

在vs2012里和在Qt Creator里添加信号和槽不一样,这里把两种环境下怎么添加详细说明一下

1.在vs2012里添加信号和槽

新建一个qt的项目QtDemo

在qtdeom.h里添加槽

private slots:
         void Btn_OpenClick();

整体代码

 1 #ifndef QTDEMO_H
 2 #define QTDEMO_H
 3
 4 #include <QtWidgets/QMainWindow>
 5 #include "ui_qtdemo.h"
 6
 7 class QtDemo : public QMainWindow
 8 {
 9     Q_OBJECT
10
11 public:
12     QtDemo(QWidget *parent = 0);
13     ~QtDemo();
14
15 private:
16     Ui::QtDemoClass ui;
17 private slots:
18          void Btn_OpenClick();
19 };
20
21 #endif // QTDEMO_H

在qtdemo.cpp里添加实现,这里我们只是弹出一个QMessagBox

 1 #include "qtdemo.h"
 2 #include <QMessageBox>
 3 QtDemo::QtDemo(QWidget *parent)
 4     : QMainWindow(parent)
 5 {
 6     ui.setupUi(this);
 7
 8 }
 9
10 QtDemo::~QtDemo()
11 {
12
13 }
14
15 void QtDemo::Btn_OpenClick()
16 {
17     QMessageBox msg;
18     msg.setText("HelloWord!");
19     msg.exec();
20 }

双击qtdemo.ui打开qt设计师窗体

我们在窗体上放一个PushButton

点击编辑信号槽

点击PushButton手动红色箭头指向窗体

点击QtDemoClass窗口下的编辑打开信号槽窗体点击添加把我们之前写的方法名称加到里边

确定关闭后在配置连接窗体下点点击licked()和Btn_OpenClick()后确定

点击保存关闭qt设计师窗体

回到vs2012后F5运行

2.在Qt里添加信号和槽

打开 Qt Creator新建一个项目MyQtDemo

点击mainwindow打开设计窗体在窗体上添加一个PushButton

点击右键先把转到槽

打开转到槽窗体

点击clicked()点击确定

在mainwindow.cpp里添加QMesageBox

 1 #include "mainwindow.h"
 2 #include "ui_mainwindow.h"
 3 #include <QMessageBox>
 4 MainWindow::MainWindow(QWidget *parent) :
 5     QMainWindow(parent),
 6     ui(new Ui::MainWindow)
 7 {
 8     ui->setupUi(this);
 9 }
10
11 MainWindow::~MainWindow()
12 {
13     delete ui;
14 }
15
16 void MainWindow::on_pushButton_clicked()
17 {
18     QMessageBox msg;
19     msg.setText("Hello Word !");
20     msg.setStandardButtons(QMessageBox::Ok|QMessageBox::Cancel);
21     msg.setDefaultButton(QMessageBox::Cancel);
22     msg.exec();
23 }

运行

2.用VS编程QT有关网络的Demo时遇到连接错误

有关网络的头文件都包含进来了

1 #include <QtNetwork/QTcpServer>//监听套接字
2 #include <QtNetwork/QTcpSocket>//通信套接字

但还是链接错误,应该是相应的库没找到,最后的解决办法是:

时间: 2024-08-28 19:41:38

QT笔记之VS开发程序遇到的问题的相关文章

Linux 程序设计学习笔记----进程管理与程序开发(下)

转载请注明出处:http://blog.csdn.net/suool/article/details/38419983,谢谢! 进程管理及其控制 创建进程 fork()函数 函数说明具体参见:http://pubs.opengroup.org/onlinepubs/009695399/functions/fork.html 返回值:Upon successful completion, fork() shall return 0 to the child process and shall re

qt编译及qwt开发环境搭建笔记

qt的编译安装参见http://qt-project.org/doc/qt-4.8/install-x11.html 应注意以下要点,需要安装以下套件吗,否则编译后跟ubuntu的界面不兼容 Error while building on Ubuntu 12.* Before building it on Ubuntu 12.* be sure you have these packages: libfontconfig1-dev libfreetype6-dev libx11-dev libx

Qt开发程序在Windows 10应用需要管理员运行的解决思路

Qt开发程序在Windows 10应用需要管理员运行的解决思路 过了很长的时间没有发布博客了,但是我依然努力地开发Qt程序.目前呢,我发现开发Qt程序在Windows 10上有一个怪现象--有些程序右下角加上了盾牌的标志.那这个为什么呢? 原来是因为我的程序名称包含了Patch,结果就包含了加上了盾牌的标志.如果我去掉了Patch标志,盾牌就消失了.原来Windows对于文件名的一些敏感字,会选择性地做出一些防御操作.看来Windows 10在给我们安全的同时还给我们带来了"意想不到"

Qt 开发程序后的公布问题

Qt 开发程序后的公布问题 Qt 是一套跨平台 C++ 图形用户界面应用程序开发框架,利用它能够很方便的开发各种类型的应用程序.可是随着 Qt 的发展.功能越来越强大,公布时须要文件也越来越多.公布时把须要的文件挑出来就变得有些难度,好多刚開始学习的人花费了几天时间也没能让他的程序在别人的电脑上顺利的运行起来. 百度 "qt 程序公布" 能够找到一些文章.里面给出的方法都是自己一个个的把须要的文件找出来.事实上不须要这么费劲,Qt 里早就提供了一个小工具帮我们公布程序. 打开Qt 的安

Qt 开发程序后的发布问题

Qt 开发程序后的发布问题 Qt 是一套跨平台 C++ 图形用户界面应用程序开发框架,利用它可以非常方便的开发各种类型的应用程序.但是随着 Qt 的发展,功能越来越强大,发布时需要文件也越来越多.发布时把需要的文件挑出来就变得有些难度,好多初学者花费了几天时间也没能让他的程序在别人的电脑上顺利的运行起来. 百度 "qt 程序发布" 可以找到一些文章.里面给出的方法都是自己一个个的把需要的文件找出来.其实不需要这么费劲,Qt 里早就提供了一个小工具帮我们发布程序. 打开Qt 的安装路径,

Linux 程序设计学习笔记----进程管理与程序开发(上)

转载请注明出处,http://blog.csdn.net/suool/article/details/38406211,谢谢! Linux进程存储结构和进程结构 可执行文件结构 如下图: 可以看出,此ELF可执行文件存储时(没有调入内存)分为代码区.数据区和未出花数据区三部分. 代码区:存放cpu的执行的机器指令. 数据区:包含程序中的已经初始化的静态变量,以及已经初始化的全局变量. 未初始化数据区:存入的是未初始化的全局变量和未初始化的静态变量. 现在在上面的程序代码中增加一个int的静态变量

基于Qt的跨平台应用开发

1 Qt简介 Qt是1991年奇趣科技开发的一个跨平台的C++图形用户界面应用程序框架.它提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能.Qt很容易扩展,并且允许真正地组件编程.基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界 面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西. 2008年,奇趣科技被诺基亚公司收购,QT也因此成为诺基亚旗下的编程语言工具.2012年,Qt被Digia收购.2014年4月,跨平台集成

Android学习笔记_78_ Android开发中使用软引用和弱引用防止内存溢出

在<Effective Java 2nd Edition>中,第6条"消除过期的对象引用"提到,虽然Java有 垃圾回收机制,但是只要是自己管理的内存,就应该警惕内存泄露的问题,例如的对象池.缓存中的过期对象都有可能引发内存泄露的问题.书中还提到可以用 WeakHashMap来作为缓存的容器可以有效解决这一问题.之前也确实遇到过类似问题,但是没有接触过"弱引用"相关的问题,于是查阅了一些资料. <Java 理论与实践: 用弱引用堵住内存泄漏>

Hadoop学习笔记(4) ——搭建开发环境及编写Hello World

Hadoop学习笔记(4) ——搭建开发环境及编写Hello World 整个Hadoop是基于Java开发的,所以要开发Hadoop相应的程序就得用JAVA.在linux下开发JAVA还数eclipse方便. 下载 进入官网:http://eclipse.org/downloads/. 找到相应的版本进行下载,我这里用的是eclipse-SDK-3.7.1-linux-gtk版本. 解压 下载下来一般是tar.gz文件,运行: $tar -zxvf eclipse-SDK-3.7.1-linu