• 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>//通信套接字

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

  • 相关阅读:
    Largest Rectangle in Histogram
    Valid Sudoku
    Set Matrix Zeroes
    Unique Paths
    Binary Tree Level Order Traversal II
    Binary Tree Level Order Traversal
    Path Sum II
    Path Sum
    Validate Binary Search Tree
    新手程序员 e
  • 原文地址:https://www.cnblogs.com/chechen/p/6097269.html
Copyright © 2020-2023  润新知