zoukankan      html  css  js  c++  java
  • QT 截取屏幕的实现

    QPixmap提供了两个函数 grabWidget 和 grabWindow 可以将屏幕上的窗体存成一个 QPixmap 格式的图片,很容易再将 QPixmap 存成文件。函数使用很简单,两行代码就可以:

    QPixmap pixmap = QPixmap::grabWidget(this); //this是调用该函数的QWidget 指针
    pixmap.save(“widget.png”,”png”);

    两个函数的原型如下:

    QPixmap QPixmap::grabWindow ( WId window, int x=0, int y=0, int w=-1, int h=-1 )

    • WId 表示被截取窗口的ID号
    • x, y 表示截取范围的起始坐标
    • w, h 分别表示截取范围的宽度和高度,如果为 -1,则表示全部截取

    QPixmap QPixmap::grabWidget ( QWidget * widget, int x=0, int y=0, int w=-1, int h=-1 )

    widget表示被截取窗口的画布部分,其余参数同grabWindow

    grabWidget 和 grabWindow 两种方式,差别在于带不带 标题栏

    void MainWindow::on_pushButton_clicked()
    {
        QPixmap pixmap = QPixmap::grabWindow( QApplication::desktop()->winId(), pos().x(), pos().y(), frameGeometry().width(), frameGeometry().height() );
        pixmap.save("d:\a.bmp","bmp");
    }
    void MainWindow::on_pushButton_2_clicked()
    {
        QPixmap pixmap = QPixmap::grabWidget(this);
        pixmap.save("d:\b.bmp","bmp");
    }

    需要强调的是: 执行 grabWidget()的时候,会自动调用 paintEvent( QPaintEvent *event ) 进行重绘操作。

  • 相关阅读:
    Java安全之对称加密、非对称加密、数字签名
    Java 设计模式 之 中介者模式(Mediator)
    使用jquery获取radio的值
    java6枚举类型
    java http头信息
    怎样用java生成GUID与UUID
    struts2国际化
    JSON.stringify(),JSON.parse(),toJSON()方法使用
    阻塞队列之六:LinkedBlockingDeque
    jQuery给控件赋值....
  • 原文地址:https://www.cnblogs.com/liqiu/p/3492365.html
Copyright © 2011-2022 走看看