0
点赞
收藏
分享

微信扫一扫

Python sqlalchemy使用

Gascognya 2023-12-11 阅读 51

参考文章:

【Qt】边学边写之Qt教程(零基础)-CSDN博客
QT入门看这一篇就够了——超详细讲解(40000多字详细讲解,涵盖qt大量知识)-CSDN博客

1.创建Qt项目

1.1 使用向导创建

Qt5基本模块

 向导会默认添加一个继承自QMainWindow的类,可以在此修改类的名字和基类。默认的基类有QMainWindow、QWidget以及QDialog三个,我们可以选择QWidget(类似于空窗口),QWidget 是所有能看到的窗口或者控件的父类,QMainWindow、QDialog 都继承自它

1.2一个简单的Qt应用程序
1.2.1 main函数中
#include "widget.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();

    return a.exec();
}

QApplication应用程序类

  1. 管理图形用户界面应用程序的控制流和主要设置。
  2. 是Qt生命,一个程序要确保一直运行,就肯定至少得有一个循环,这就是Qt主消息循环,在其中完成来自窗口系统和其它资源的所有事件消息处理和调度。它也处理应用程序的初始化和结束,并且提供对话管理。
  3. 对于任何一个使用Qt的图形用户界面应用程序,都正好存在一个QApplication 对象,不论这个应用程序在同一时刻有多少个窗口。

a.exec()

  • 程序进入消息循环,等待对用户输入进行响应。这里main()把控制权转交给Qt,Qt完成事件处理工作,当应用程序退出的时候exec()的值就会返回。在exec()中,Qt接受并处理用户和系统的事件并且把它们传递给适当的窗口部件。
 1.2.4 QtCreator常用快捷键

2、Qt 按键小程序

2.1 按钮的创建和父子关系
  • 没有建立父子关系,显示的是顶层窗口
#include <QPushButton>
    //添加按钮
    QPushButton btu;
    btu.setText("按钮1");
    //将按钮显示出来
    btu.show();     

  •  建立父子关系,两种方式
  • 利用指针的形式创建 
 //第二种创建
    QPushButton * btn2 = new QPushButton("按键1",this);
    //重新指定窗口大小
    this->resize(600,400);

    //设置窗口标题
    this->setWindowTitle("第一个项目");

    //限制窗口大小
    this->setFixedSize(600,400);
 2.2 Qt窗口坐标体系

对于嵌套窗口,其坐标是相对于父窗口来说的。顶层窗口的父窗口就是屏幕。

2.3 Qt常用API函数
	move 移动窗口到父窗口某个坐标
	resize 重新设置窗口的大小
	setFixedSize 设置窗口的固定大小
	setWindowTitle 设置窗口标题
	setGeometry 同时设置窗口位置和大小,相当于move和resize的结合体

上面这几个函数都是QWidget类的成员函数,按钮其实是个窗口,而窗口类最终都是继承自QWidget类。

 2.4 对象树模型

 Qwidget是能够再屏幕上显示的一切组件的父类。

  • 程序崩溃代码示例:
{
    QPushButton quit("Quit");
    QWidget window;
    quit.setParent(&window);
}

        在上面的代码中,作为父对象的 window 会首先被析构,因为它是最后一个创建的对象。在析构过程中,它会调用子对象列表中每一个对象的析构函数,也就是说, quit 此时就被析构了。然后,代码继续执行,在 window 析构之后,quit 也会被析构,因为 quit 也是一个局部变量,在超出作用域的时候当然也需要析构。但是,这时候已经是第二次调用 quit 的析构函数了,C++ 不允许调用两次析构函数,因此,程序崩溃了。
        由此我们看到,Qt 的对象树机制虽然帮助我们在一定程度上解决了内存问题,但是也引入了一些值得注意的事情。这些细节在今后的开发过程中很可能时不时跳出来烦扰一下,所以,我们最好从开始就养成良好习惯,在 Qt 中,尽量在构造的时候就指定 parent 对象,并且大胆在堆上创建。

3、信号和槽机制

 3.1 系统自带的信号和槽

下面我们完成一个小功能,上面我们已经学习了按钮的创建,但是还没有体现出按钮的功能,按钮最大的功能也就是点击后触发一些事情,比如我们点击按钮,就把当前的窗口给关闭掉,那么在Qt中,这样的功能如何实现呢?

其实两行代码就可以搞定了,我们看下面的代码

 QPushButton * quitBtn = new QPushButton("关闭窗口",this);
  connect(quitBtn,&QPushButton::clicked,this,&MyWidget::close);

 # 第一行是创建一个关闭按钮,这个之前已经学过,第二行就是核心了,也就是信号槽的使用方式

connect函数是建立信号发送者、信号、信号接收者、槽四者关系的函数:

connect(sender, signal, receiver, slot);

参数解释:

  • sender:信号发送者
  • signal:信号
  • receiver:信号接收者
  • slot:接收对象在接收到信号之后所需要调用的函数(槽函数)

这里要注意的是connect的四个参数都是指针,信号和槽是函数指针,使用connect的时候保留&符号。

 

举报

相关推荐

0 条评论