QT

作者: 不合格码农 | 来源:发表于2019-01-08 10:22 被阅读2次

    1.快捷键

    (1)ctrl + r 运行

    (2)F1查找需要添加的头文件

    2.#应用程序的名字

        TARGERT = mike

    #指定makefile的类型,app

    TEMPLATE = app

    应用程序所在位置:debug文件夹中

    3.connect

    实例一:connect(&b1,&QPushButton::pressed,this,&MainWidget::close);

    注释:&b1:信号发出者,指针类型

              &QPushButton::pressed:  处理的信号       &发送者的类名::信号名字

              this:信号接受者

              &MainWidget:::close:  槽函数,信号处理函数     &接受的类名::槽函数名字

    由于信号没有返回值,所以,槽函数一定没有返回值。

    实例二:

    connect(b4,&QPushButton::clicked,          //  = :把外部所有局部变量、类中所有成员以值传递方式

                [=](bool isCheck)                            //  this:类中所有成员以值传递方式

                {                                                     //&:把外部所有局部变量,引用符号

                    qDebug() << isCheck;

                }

                );

    4. 内存回收

    (1)指定父对象后

    (2)直接或间接继承于QObject,子对象如果是动态分配空间的new,不需要手动释放delete,系统会自动释放。

    5.菜单栏

    PC端常用的是QMain

    头文件:#include <Qmenu>

                //菜单栏  QMenuBar *mBar = menuBar();

                //添加菜单 QMenu *pFile = mBar->addMenu("文件")

                //添加菜单项,添加动作      QAction *pNew = pFile->addAction(“新建”);

    效果如图:

    (1)问题对话框

    头文件:#QMessageBox

    用法:

    QAction  *p4 = menu->addAction("问题对话框");

    connect(p4,&QAction::triggered,

                    [=]()

                    {

                        int ret = QMessageBox::question(this,"question","Are you ok?");

                        switch(ret)

                        {

                               case QMessageBox::Yes:

                                    qDebug() << "i am ok";

                                case QMessageBox::No:       

                                    qDebug() << "i am bad";        

                                default:

                                        break;

                         }

                    }

                    );

    (2)文件对话框

    QAction  *p5 = menu->addAction("问题对话框");

    connect(p5,&QAction::triggered,

                    [=]()    

                    {

                        QString path = QFileDialog::getOpenFileName(this,"open","../");

                         QString path = QFileDialog::getOpenFileName(

                                                                                                    this,

                                                                                                     "open",

                                                                                                        "../",

                                                                         "souce(*.cpp *.h);;Text(*.txt);;all(*.*))";

                    });

    6.工具栏,菜单项的快捷方式

            QToolBar  *toolBar = addToolBar("toolBar");

    工具栏添加快捷键

            toolBar->addAction(pNew);

            QPushButton *b = new QPushButton(this);

            b->setText("~_~");

    //添加小控件

            toolBar->addWidget(b);

            connect(b,&QPushButton::clicked,

                                                    [=]()

                                                    {

                                                        b->setText("123");

                                                      }

                                                       );

    7.状态栏

    t头文件:#include <QLabel>添加标签用的

            QStatusBar  *sBar = statusBar();

            QLable  *label  =  new QLabel(this);

            label->setText("NorMal text file");

            sBar->addWidget(label);

    //addWidget  从左往右添加

        sBar->addWidget(new QLabel("2",this))

    //addPermanentWidget  从右往左添加

        sBar->addPermanentWidget(new QLabel("3",this));

    ;8.核心控件

        QTextEdit  *textEdit = new QTextEdit(this);

        setCentralWidget(textEdit);

    9.浮动窗口

        头文件#include <QDockWidget>

        QDockWidget *dock = new QDockWidget(this);

        addDockWidget(QT::RightDockWidgetArea,dock);

    //给浮动窗口添加控件

        QTextEdit  *textEdit1 = new QTextEdit(this);

        dock->setWidget(textEdit1 );

    10.模态与非模态

        模态对话框  用dlg.exec() 运行,程序运行到此看,会暂停,等待用户操作此窗口,后面的窗口点击没有反应。

        非模态对话框 用dlg.show(0运行,由于程序执行很快,会立即结束show()。要想等待 则把非模态对话框 动态分配 指定父对象 重新new一个,程序结束时释放

    例子:

        QMenuBar *mBar = menuBar();

        setMenuBar(mBar);

         QMenu *menu = mBar->addMenu("对话框");

        QAction *pl = menu->addAction("模态对话框");

        connect(pl,&QAction::triggered,

                       [=]()

                        {

                        QDialog dlg;

                        dlg.exec();//运行到此,后面窗口的程序 不能点了

                        QDebug()  << "11111"; //在关闭dlg时,会出打印信息。

                        }

                );

    11.设计器的使用(带ui的)

        

    相关文章

      网友评论

          本文标题:QT

          本文链接:https://www.haomeiwen.com/subject/lxmxhqtx.html