[QT]设置程序仅打开一个,再打开就唤醒已打开程序的窗口

这篇具有很好参考价值的文章主要介绍了[QT]设置程序仅打开一个,再打开就唤醒已打开程序的窗口。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求:speedcrunch 这个软件是开源的计算器软件。配合launch类软件使用时,忘记关闭就经常很多窗口,强迫症,从网上搜索对版本进行了修改。

#include "gui/mainwindow.h"

#include <QCoreApplication>
#include <QApplication>

#include <QSharedMemory>
#include <QMessageBox>

#include <Windows.h>
#include <WinUser.h>

int main(int argc, char* argv[])
{
    QApplication application(argc, argv);

    static QSharedMemory *singleApp = new QSharedMemory("SingleApp");//创建“SingleApp”的共享内存块
    if(!singleApp->create(1))//创建失败,说明已经有一个程序运行,
    {
        //弹出提示框注意:该提示应该在 qApp->quit();之前,否则提示框将会一闪而过
        //QMessageBox::information(NULL,"tips","The program is already running");
        QString name = "Qt5152QWindowIcon";//窗口的类名
        QString windowname = "SpeedCrunch";//窗口标题名
        HWND hwnd = FindWindow((LPCWSTR)name.unicode(),(LPCWSTR)windowname.unicode());//查找窗口句柄
        if (hwnd == 0) {
             QMessageBox::information(NULL,"tips","not find wind");
        }
        
        ShowWindow(hwnd,  SW_RESTORE);//激活并置顶窗口,ShowWindow里面的参数可以网上搜一下,不同功能不同参数
        SetForegroundWindow(hwnd);
        
        qApp->quit();//退出当前程序
        return -1;
    }

    QCoreApplication::setApplicationName("SpeedCrunch");
    QCoreApplication::setOrganizationDomain("speedcrunch.org");

    MainWindow window;
    window.show();

    application.connect(&application, SIGNAL(lastWindowClosed()), &application, SLOT(quit()));

    return application.exec();
}

差异图下图:

[QT]设置程序仅打开一个,再打开就唤醒已打开程序的窗口,qt,microsoft,开发语言

findwindow的方法需要添加user32的库,因为speedcrunch已经添加,则在编译文件中未改动。 

效果:

[QT]设置程序仅打开一个,再打开就唤醒已打开程序的窗口,qt,microsoft,开发语言

 文章来源地址https://www.toymoban.com/news/detail-682700.html

到了这里,关于[QT]设置程序仅打开一个,再打开就唤醒已打开程序的窗口的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Qt 设置窗口背景

    窗口背景无非两种:背景色、背景图片。Qt中窗口背景如何设置? 一、QPalette设置背景 二、实现paintEvent,使用QPainter来绘制背景 三、使用QSS来设置背景  关于QSS的使用不想多说,一般我不用QSS设置窗口背景,也不建议使用。(注意:这里是对于窗口而言)。如果是子部件当然

    2024年02月11日
    浏览(37)
  • qt 窗口实现打开文件夹浏览资源(纯代码实现,后附代码)

     新建 widget 项目可参考 QT入门初学者——如何新建一个工程项目(详细)_guuuuug的博客-CSDN博客_qt新建工程   实现界面,点击浏览会打开文件夹 选中文件,窗口显示文件名,文件路径 过长的文字会在最后显示...,鼠标悬浮在文字栏会显示全部文字。 点击右下角打开可以实现打

    2024年02月11日
    浏览(46)
  • 如何使用Qt创建一个新窗口?

    如何使用Qt创建一个新窗口? 在Qt中,我们可以使用QML语言轻松创建图形界面。如果需要创建一个新的窗口,我们可以使用Qt.createComponent来创建一个新组件并将其添加到主窗口中。下面是一个简单的例子。 在这个例子中,我们创建了一个主窗口,并在其中添加了一个按钮。当

    2024年02月11日
    浏览(59)
  • 06-3_Qt 5.9 C++开发指南_多窗体应用程序的设计(主要的窗体类及其用途;窗体类重要特性设置;多窗口应用程序设计)

    常用的窗体基类是QWidget、QDialog 和QMainWindow,在创建 GUI应用程序时选择窗体基类就是从这 3 个类中选择。QWidget 直接继承于 QObject,是 QDialog 和 QMainWindow 的父类,其他继承于 QWidget 的窗体类还有 QSplashScreen、QMdiSubWindow和QDesktopWidget。另外还有一个类QWindow,它同时从 QObject 和Q

    2024年02月13日
    浏览(86)
  • qt设置tableview单元大小跟随窗口变化

    设置效果过于离奇。 右侧为代码设置显示效果

    2024年02月11日
    浏览(37)
  • C++,使用Qt设计一个登录窗口

    要求如下: 1、给窗体改变名称并设置窗口图标、尺寸固定 2、中间放log图 3、用户名和密码使用图片完成 4、账户用明文模式,密码用密文模式 5、点击登录后,将界面上的用户名和“admin”比较,密码和“123456”比较,如果匹配成功,则输出登录成功,如果匹配失败,则输出

    2024年02月12日
    浏览(42)
  • VS+Qt设置窗口尺寸(二):窗体控件自适应窗口布局,自动调整大小

    VS版本:VS2019 QT版本:Qt5.12.3(msvc2017_64) 为了适配不同尺寸的显示屏,软件窗口需要调整大小,窗口内的控件尺寸也要适配窗口的大小。 本例重点讲述如何设置可调整尺寸的窗口及控件,实现窗口最大化和尺寸调节。 本例使用相对简单的按键和文本框来做示例,其他控件均可

    2023年04月23日
    浏览(110)
  • Qt Creator 创建 Qt 默认窗口程序

    Qt 入门实战教程(目录) Windows Qt 5.12.10下载与安装 本文介绍用Qt自带的集成开发工具Qt Creator创建Qt默认的窗口程序。 本文不需要你另外安装Visual Studio 2022这样的集成开发环境,也不需要你再在Visual Studio 2022中安装Qt VS Tools这样的插件。 目的就是为了能够让你可以更快的把Q

    2024年02月09日
    浏览(49)
  • 在Qt创建的UI中放一个显示点云的窗口(PCL+QT5)

    1、首先在 Qt Designer 创建UI后,拖一个Widget窗口出来 2、在对象查看器中右击该Widget,选择 提升窗口部件 ,如下操作: 3、把UI转出来放在VS项目中,其中你的UI代码头文件会自带QVTKOpenGLNativeWidget.h,当然你的VS属性环境得配置好VTK的环境,QVTKOpenGLNativeWidget.h在VTKincludevtk-9.1路径

    2024年02月08日
    浏览(47)
  • Qt窗口设置无边框不能移动,鼠标穿透后不能响应点击事件

      最近在做一个迷你小工具,准备干点不可描述的事情,想要短小强悍,始终在最顶层显示,同时不要自带的关闭按钮和边框,百度一下,发现是需要设置如下两个属性:   那么问题来了,这样的话一运行窗体就在正中间,而且无法拖动,就像这样   哪怕对于我这种

    2024年02月10日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包