QT 学习1

第一步是安装环境,因为之前已经安装过qt了,所以这里直接跳过这一步。

我找了很多书籍,qt学习基本都是以qtcreator开始教的,建个项目,在ui上直接操作,我觉得熟了可以这样搞,一开始学习还是要脚踏实地,自己写。

第一个qt程序

// qt.cpp
#include <QtDebug> int main( ) { qDebug() << "Hello Qt World!"; return 0; }

保存后,输入 qmake  -project  得到qt-cli.pro 文件(以文件夹命名的)

文件内容长这样

再输入 qmake 会生成Makefile

接着输入make 会生成可执行文件

执行./qt-cli 即可运行

 这不像是图形界面,连个窗口都没有,加个窗口

#include <QApplication>
#include <QMainWindow>

int main(int argc, char* argv[])
{
    QApplication a(argc, argv);   // 必须要,少了编译报错

    QMainWindow w;
    w.show();

    return a.exec();    // 必须要,少了编译报错

}

编译前一定要在.pro 文件中加上   greaterThan(QT_MAJOR_VERSION, 4): QT += widgets ,不是会报一堆错

可以认为这4行就是一切套路的开始,基本每个qt程序都有它。

结果

 设置窗口标题,大小等

#include <QApplication>
#include <QMainWindow>

int main(int argc, char* argv[])
{
    QApplication a(argc, argv);   // 必须要,少了编译报错
    // QApplication b(argc, argv);    // 不要加,程序会出莫名其妙的问题

    QMainWindow w;
    w.show();
    w.setWindowTitle("QT");    // 设置标题
    w.resize(1000,500);    // 设置大小

    QMainWindow x;       // 再产生一个窗口
    x.show();
    x.setWindowTitle("GTK");
    x.setFixedSize(300, 500);   // 设置固定大小,没有最大化的按钮了
    // b.exec();   // 不要加,程序会出莫名其妙的问题
    return a.exec();    // 必须要,少了编译报错

}

 去掉最大化,最小化,关闭等按钮

#include <QApplication>
#include <QMainWindow>

int main(int argc, char* argv[])
{
    QApplication a(argc, argv);   // 必须要,少了编译报错
    // QApplication b(argc, argv);    // 不要加,程序会出莫名其妙的问题

    QMainWindow w;

    w.setWindowTitle("QT");
    w.resize(1000,500);    // 设置大小
    //w.setWindowFlags(Qt::WindowCloseButtonHint | Qt::WindowMaximizeButtonHint | Qt::WindowMinimizeButtonHint);
    w.setWindowFlags(Qt::WindowCloseButtonHint);       // 只有关闭
    w.setWindowFlags(Qt::WindowMaximizeButtonHint);    // 只有最大化
    w.setWindowFlags(Qt::WindowMinimizeButtonHint);    // 只有最小化
    // 最终结果只有最小化,因为最后设置最小化把上面的覆盖了
    w.show();

    QMainWindow x;       // 再产生一个窗口
    x.show();
    x.setWindowTitle("GTK");
    x.setFixedSize(300, 500);   // 设置固定大小,没有最大化的按钮了
    // b.exec();   // 不要加,程序会出莫名其妙的问题
    return a.exec();    // 必须要,少了编译报错

}

 关闭所有按钮(不知道有没有更好的办法)

#include <QApplication>
#include <QMainWindow>

int main(int argc, char* argv[])
{
    QApplication a(argc, argv); 

    QMainWindow w;

    w.setWindowTitle("QT");
    w.setFixedSize(1000,500);  // 设置固定大小后没有最大化按钮
    w.setWindowFlags(Qt::WindowMaximizeButtonHint);    // 只开启最大化按钮

    // 结果就是什么按钮没有
    w.show();
    return a.exec();  
}

结果

原文地址:https://www.cnblogs.com/goodluck14/p/13342037.html