12.8学习内容

Qt下载(多种下载通道+所有版本) (biancheng.net)12.8学习内容http://c.biancheng.net/view/3851.html下载 QT还是到这个网址比较快。QT所做的案例:

12.8学习内容

 QT Creator学习:

New Project:创建一个新工程,等同于新建文件或项目。

QT Widgets Application 

项目的介绍和位置:包含项目名称(不能有中文和空格)和路径(不要有中文路径,会报错)

 Kit Selection创建配件

Details类信息——默认会创建一个类,

QWigdet是父类(最基础的类,什么东西都没有),QMainWindow(有工具栏、菜单栏、状态栏等等)和QDialog(对话框)是子类,继承关系

版本控制系统:svn(会将两个同名文件A  B合并,但是写代码前需要更新update操作,相当于共享文档,如果忘记更新代码,产生冲突会报错,然后会显示,需要解决冲突问题,解决后输入slove结束,然后commit提交修改代码)、vss、git

创建好后,会生成的文件:.pro(project工程文件,相当于.sln文件),main.cpp是程序入口,mywidget.cpp和mywidget.h文件是自己写的窗口的文件

qmake所属模块,比如qudp里面qmake是network,需要在.pro文件里面添加network,我们现在默认是core和gui模块

12.8学习内容

具体说明一下代码的意义:

main.cpp文件的代码 

#include "widget.h"//我自己写的一个头文件
#include <QApplication>//包含一个应用程序类的头文件

//main程序入口  argc命令行变量的数量  argv命令行变量的数组
int main(int argc, char *argv[])
{
    //a应用程序对象  在QT中,应用程序对象有且只有一个
    QApplication a(argc, argv);
    //窗口对象 Widget父类是QWidget
    Widget w;
    //窗口对象,默认不会显示,必须要调用show方法显示窗口
    w.show();

    //让应用程序对象进入消息循环,让代码阻塞到这一行,不会一闪而过,相当于system("pause")
    return a.exec();
}

 .pro文件的代码,尽量不要修改,注释都尽量不要添加

QT       += core gui  //QT包含的模块,core核心模块 gui图形用户模块

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets//大于4版本以上,包含QT的widget模块

TARGET = 01firstQT//目标 生成的.exe程序的名称,可以从这里改exe的名称
TEMPLATE = app    //模板 应用程序模板 application

SOURCES += \      //源文件,两个源文件
        main.cpp \
        widget.cpp

HEADERS += \
        widget.h  //头文件

FORMS += \
        widget.ui

.h头文件的代码: 

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget> //包含一个头文件QWidget,窗口类

namespace Ui {
class Widget;
}

class Widget : public QWidget //继承父类
{
    Q_OBJECT // Q_OBJECT是一个宏,允许类中使用信号和槽的机制(默认存在)

public:
    explicit Widget(QWidget *parent = 0); //构造函数,默认值为0
    ~Widget();                            //析构函数

private:
    Ui::Widget *ui;
};

#endif // WIDGET_H

widget.cpp文件的代码,设置button的简要代码: 

#include "widget.h"
#include "ui_widget.h"
#include<QPushButton> //按钮控件的头文件

//命名规范
//类名 首字母大写,单词和单词之间首字母大写
//函数名 变量名称 首字母小写 单词和单词之间首字母大写

//快捷键
//注释 ctrl + / 快速注释
//运行 ctrl + r
//编译 ctrl + b
//字体缩放 ctrl + 鼠标滚轮
//查找 ctrl + f
//整行移动 CTRL + shift + 上或者下
//帮助文档 F1,再F1全屏
//自动对齐 ctrl + i
//同名之间.h和.cpp 切换 F4


Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    QPushButton * btn = new QPushButton;
    btn -> show();//show函数弹出btn,但是只能以顶层的方式弹出控件,显示在单独层
    //但是我们希望btn依赖在Widget窗口中
    btn -> setParent(this);//设置附件!!!
    btn -> setText("a");

    QPushButton * btn2 = new QPushButton("d",this);//直接一行代码解决以上问题
    btn -> move(100,100);//移动按钮,坐标点移动
    resize(600,400);//重置窗口大小
    setFixedSize(600,400);//设置固定窗口格式
    setWindowTitle("窗口");//设置窗口标题
    btn2 -> resize(50,50);//设置按钮的大小
}

Widget::~Widget()
{
    delete ui;
}

 好嘞!

上一篇:面向对象->实验报告五(C++)


下一篇:Linux C/C++ 编译、调试问题汇总