学习Qt5(5)

来源:互联网 发布:derby数据库优缺点 编辑:程序博客网 时间:2024/05/16 18:32

1.Qt主窗体

        1)Qt主要使用QMainWindow来作为主窗口,其中包含菜单栏、工具栏、状态栏、中心部件等;

        2)命令动作通常使用QAction来创建;

        3)可以在状态栏上面添加Qt的窗口控件,例如进度条等;

        4)QDockWidget锚接部件通常用于主窗口上面,以实现停靠或浮动的效果;

        5)创建动作:

    openFileAction =new QAction(QIcon("open.png"),tr("打开"),this);    openFileAction->setShortcut(tr("Ctrl+O"));    openFileAction->setStatusTip(tr("打开一个文件"));

        6)创建菜单和工具栏:

    fileMenu =menuBar()->addMenu(tr("文件"));    fileMenu->addAction(openFileAction);    fileTool =addToolBar("File");    fileTool->addAction(openFileAction);

        7)打开文件:

    QString fileName = QFileDialog::getOpenFileName(this,tr("打开"),".",tr("*.cpp *.h"));    QFile file(filename);    if (file.open(QIODevice::ReadOnly | QIODevice::Text))    {        QTextStream textStream(&file);        while(!textStream.atEnd())        {            QString readStr = textStream.readLine();        }    }

        8)打印文件和打印预览:

    QPrinter printer;    QPrintPreviewDialog preview(&printer,0);    connect(&preview, SIGNAL(paintRequested(QPrinter*)), this, SLOT(QPrinter*));    preview.exec;    QPrintDialog printDialog(&printer,this);    if(printDialog.exec())    {        QTextDocument *doc = ui->text->document();        doc->print(&printer);    }

        9)打印图片:

    QPrinter printer;    QPrintDialog printDialog(&printer,this);    if (printDialog.exec())    {        QPainter painter(&printer);        QRect rect =painter.viewport();        QSize size = img.size();        size.scale(rect.size(), Qt::KeepAspectRatio);        painter.setViewport(rect.x(), rect.y(), size.width(), size.height());        painter.setWindow(img.rect());        painter.drawImage(0, 0, img);    }

2.图像坐标转换

        1)利用QMatrix来实现二维坐标的转换,可以用来实现移动、缩放、变形、旋转等功能;

        2)缩放功能:(setScaledContents(true)内容自适应大小)

    QMatrix martix;    QImage img;    martix.scale(3,3);  //水平和垂直都放大三倍,小于1则是缩小    img = img.transformed(martix);

        3)旋转功能:利用martix.rotate(度数)实现;

        4)镜像功能:利用QImage::mirrored(水平镜像,垂直镜像)来实现,其中参数为false或true。

 

3.文本编辑功能

        1)文本编辑功能取决于利用的文本框,通常使用QTextDocument;

        2)文本编辑的排序功能通常使用QTextListFormat来实现;

        3)利用QTextCursor进行文本的定位。

0 0
原创粉丝点击