QT

2019-01-08  本文已影响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的)

    

上一篇下一篇

猜你喜欢

热点阅读