Qt截图软件2-实现截全屏功能

2021-11-26 248 0

创建新项目,选择Qt Widgets Application桌面应用程序,选择之后,填写项目名称,根据默认选项走下一步到创建完成即可。
主界面设计,如图所示,可按照自己的想法进行可视化设计,增加Push Button,可以为按钮添加图标,首先我们可以增加资源文件,然后把图标全部放进资源文件中,如图所示,为按钮添加图标即可。
界面设计完成之后,我们可以对按钮添加功能代码,鼠标右键→转到槽→clicked(),这样我们就可以为按钮添加点击事件了。

添加截全图的代码,主要依赖于Qt提供的函数QGuiApplication::primaryScreen() 我们就能获取到全屏窗口的截图,然后保存图片,那么截全图的功能就完成了。

void MainWindow::on_pb_fullscreenshot_clicked()
{
    hide();
    if(MainWindow::isHidden()){
        QThread::msleep(800);
        QScreen *screen =QGuiApplication::primaryScreen();
        if(const QWindow *window=windowHandle())
            screen=window->screen();
        if(!screen)
            return ;
	    //0可以表示获取到全屏窗口的截图
        originalPixmap=screen->grabWindow(0);

        QDateTime current_date_time =QDateTime::currentDateTime();
        QString current_date =current_date_time.toString("yyyy-MM-dd-hhmmss");
        QString filename=current_date+".jpg";
        originalPixmap.save(filename,"jpg");
        //MainWindow::show();
        show();
    }
}

相关文章

Qt-修改界面无效的可能情况
Qt-Windows下发布应用程序
Qt-改变tabBar位置并改变文字方向
Qt-自定义可编辑模型
Qt-自定义可编辑模型
Qt-网络编程

发布评论