Qt 学习日记(一)

  这篇博客仅供自己积累学习,不过如果你也是同样在为学习Qt烦恼,也许这篇博客可能会提供一些帮助。文章也许有很多误解,之后会更新改正,这里只是方便我的理解来表示。

 

  因为本人对游戏设计比较感兴趣再加上同时有要求使用OpenGL和Qt的需求,故开始对Qt的学习。IDE是Qt Creator,版本算是比较新的(Qt5.5),考虑到需求,故从Qt的基本开始,并没有直接上手OpenGL。以前学习过MFC,但是对Qt的了解很有限,所以有些东西要从来过。


  Qt配置与安装这里就不做说明了,网上有太多相关的链接以供查询,这里只说我刚开始学习遇到的一些问题。一开始学习的当然很简单,就是创建一个主窗口,适应一些当中的硬件操作,最主要的就是学习其中的信号与槽函数,这里信号与槽的函数我主要都是通过在Qt5的设计模式下实现的,如果要使用编辑模式设计信号与槽我觉得可能会比较难以上手。


  Qt5相比前几代的,头文件中Gui更改为了Widget,这个不影响,不过很多学习资料都太过老旧,初学时候会造成不少困惑。

 

  首先建立一个基本工程,一路默认就行。这次实现的任务是弄一个多窗口出来。主要就是尝试2种方法,使用对话框调出主窗口,以及一个更加通用的反向过程。先说第一种



  1.在main.cpp中添加已经新建的Dialog的头文件,接着在main函数中声明一个该类的变量,代码如下。

 exec执行窗口时,必须操作当前窗口否则不能使用其他窗口(必须决策),要么进入主窗口要么退出。

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    MyDlg hk;
    if(hk.exec()==QDialog::Accepted)
    {
        w.show();
        return a.exec();
    }

    return a.exec();
}


  再来说第二种,这一种就比较简单了。

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "mydlg.h"
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

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

void MainWindow::on_pushButton_clicked()
{
    close();
}

void MainWindow::on_pushButton_2_clicked()
{
    MyDlg *x=new MyDlg(this);
    x->show();
}

在主窗口中cpp中注册槽函数,定义一个对话框变量,展示(show()不是强制性的抉择,只是弹出就完成了目的)


最后演示的结果(这里是2种方法的复合演示)

1.这里是一个对话框,Back退出(close()),Next进入主窗口


2.New One 会新建一个对话框,Quit退出程序


3.如下,若再次点击New One会新建更多对话框,Next只会返回主窗口。




已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页