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

Posted 车臣

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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>//通信套接字

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

 

以上是关于QT笔记之VS开发程序遇到的问题的主要内容,如果未能解决你的问题,请参考以下文章

QT5.8+VS2015 开发时遇到的坑

QT笔记之解决QT5.2.0和VS2012中文乱码

QT笔记之VS2010 Qt中导入qrc资源文件

20171115-构建之法:现代软件工程-阅读笔记

Qt编程遇到的问题,我在qt中直接使用C语言的程序片段,有问题 ,求解

[搬运] 将 Visual Studio 的代码片段导出到 VS Code