Qtcreator使用的简单记录

Qtcreator使用的简单记录

https://blog.csdn.net/lindyl/article/details/10724999
在创建项目的时候,对于基类有3种类型,分别为QWidget、QMainWindow、QDialog。
Qtcreator使用的简单记录_第1张图片
QWidget是它们两个的父类,这个比较简单。

main.cpp文件的分析

#include "mywidget.h"
//包含一个应用程序类的头文件
#include 

int main(int argc, char *argv[])
{
    //a应用程序对象,在Qt中有且只有一个
    QApplication a(argc, argv);
    //窗口对象w,其父类为widget
    mywidget w;
    //窗口对象默认不会显示 需要调用show函数来显示
    w.show();
    //让应用程序进入消息循环
    return a.exec();
}

.pro文件的分析

Qtcreator使用的简单记录_第2张图片

mywidget.h文件的分析

Qtcreator使用的简单记录_第3张图片
从QWidget类派生处一个myWidget类

mywidget.cpp文件的分析

Qtcreator使用的简单记录_第4张图片
创建button按钮
Qtcreator使用的简单记录_第5张图片
有关按钮的操作

//创建一个按钮
QPushButton *btn = new QPushButton;
        
//显示按钮,这种显示方式是以顶层的方式显示的
btn->show();

//将创建的按钮依附在当前的mywidget上
btn->setParent(this);
//设置按钮上的文字
btn->setText("first button");
//移动按钮的位置,默认创建的位置是0,0点
btn->move(100,100);
//重置按钮的大小
btn->resize(50,50);

创建button按钮的另一种方法

//创建一个按钮,这样有一个特点就是窗口widget大小按照按钮大小设置的
QPushButton *btn2 = new QPushButton("第二个按钮",this);

有关widget窗口的设置

 //重置窗口大小
 resize(600,400);
 //设置固定窗口大小,设置后这个widget就不能改变大小了
 setFixedSize(600,400);
 //设置窗口标题
setWindowTitle("第一个窗口");
Qt中的坐标系

左上角为0,0点
x以右为正方向
y以下为正方向

Qt中的对象树

Qtcreator使用的简单记录_第6张图片

信号和槽函数

创建一个类文件

Qtcreator使用的简单记录_第7张图片
Qtcreator使用的简单记录_第8张图片
找到他的父类QPushbutton,没有找到就找父类的父类即QWidget
Qtcreator使用的简单记录_第9张图片
将他的父类改为QPushbutton
Qtcreator使用的简单记录_第10张图片
Qtcreator使用的简单记录_第11张图片
Qtcreator使用的简单记录_第12张图片

添加析构函数
Qtcreator使用的简单记录_第13张图片

Qtcreator使用的简单记录_第14张图片

第二个案例代码

实现自定义槽函数
按照下面的创建一个名字为signal_slot的工程,使用的基类为QWidget。如下图所示:

Qtcreator使用的简单记录_第15张图片
接下来添加两个文件分别文件名分别为teacher和student。
Qtcreator使用的简单记录_第16张图片
widget.cpp
Qtcreator使用的简单记录_第17张图片
teacher.h
Qtcreator使用的简单记录_第18张图片

Qtcreator使用的简单记录_第19张图片
Qtcreator使用的简单记录_第20张图片

void Student ::treat()
{
	
}

自定义信号、槽函数的重载

代码见signal_slot_2
Qtcreator使用的简单记录_第21张图片
Qtcreator使用的简单记录_第22张图片

按下按钮触发事件,先添加一个头文件#include
Qtcreator使用的简单记录_第23张图片

使用信号连接信号

Qtcreator使用的简单记录_第24张图片

Qtcreator使用的简单记录_第25张图片

断开信号的连接
Qtcreator使用的简单记录_第26张图片
关于信号的其他一些知识
Qtcreator使用的简单记录_第27张图片
lambda表达式

#include 

int main() {
    // Lambda表达式示例 1
    auto add = [](int a, int b) -> int {
        return a + b;
    };

    std::cout << "Sum: " << add(3, 4) << std::endl;

    // Lambda表达式示例 2:值捕获
    int x = 5;
    auto square = [x](int a) -> int {
        return a * x;
    };

    std::cout << "Square: " << square(3) << std::endl;

    // Lambda表达式示例 3:引用捕获
    int y = 10;
    auto multiply = [&y](int a) -> int {
        return a * y;
    };

    std::cout << "Product: " << multiply(2) << std::endl;

    return 0;
}

在示例中,Lambda表达式 add 接受两个参数并返回它们的和,而Lambda表达式 square 和 multiply 捕获了外部变量 x 和 y,并分别执行相应的操作。Lambda表达式的关键之一是它可以在需要函数对象的地方轻松地定义和使用,而无需显式地声明一个函数。

QMainWindow菜单栏和工具栏

Qtcreator使用的简单记录_第28张图片

你可能感兴趣的:(QT学习,qt,linux)