还原或带到前QT桌面应用程序
Restoring or bringing to front Qt desktop application
我使用此问题上的runguard代码将我的应用程序制作到一个实例应用程序中:
:QT:单个实例应用程序保护的最佳实践
我想做的是当用户试图在运行时启动应用程序时,将现有的运行应用程序带到前面,如果最小化,请还原。
在我的Delphi Windows编程日中,我曾经在关闭新应用程序之前从新应用程序中广播Windows消息。现有的应用程序将收到并恢复自身并进入前线。
Windows和Linux平台上的QT是可能的吗?
您在qtsingleaplication上有任何特定的麻烦吗?这应该足以满足您想要的内容,并使您可以向运行应用程序发送消息。您只需要一个插槽即可获取该消息,如果它与您的期望匹配,则可以还原。
http://doc.qt.digia.com/solutions/4/qtsingleapplication/qtsingleapplication-example-trivial.html
logView对象也设置为应用程序的激活窗口。每次收到消息时,窗口都会自动抬起和激活。
出于某种原因setActivationWindow()
和activateWindow()
对我不起作用。这是我的解决方法:
#include <QWidget>
#include <qtsingleapplication.h>
class Window : public QWidget
{
Q_OBJECT
public:
Window(QWidget *parent = 0) : QWidget(parent) {}
public slots:
void readMessage(const QString &str) { showNormal(); }
};
int main(int argc, char *argv[])
{
QtSingleApplication instance(argc, argv);
Window *window = new Window;
window->show();
QObject::connect(&instance, SIGNAL(messageReceived(const QString &)), window, SLOT(readMessage(const QString &)));
if (instance.sendMessage(""))
return 0;
return instance.exec();
}
#include "main.moc"
常见,没有IPC。QtSingleApplication
提供了这样的IPC,但是您将从QTNetwork模块中获得额外的依赖性。(如@svlasov所回答)
您将遇到的第一个问题:如果此应用程序不是前景,则无法提出任何应用程序窗口。有针对Windows和OS X的解决方案,如何强制Windows升高。
相关文章:
- 桌面中的Qt QMessageBox中心'critical'
- Qt QML桌面应用程序自动化测试
- 如何使用opencv和Qt拍摄部分桌面的照片
- 需要有关使用 Visual Studio 17 将 QT 桌面应用程序打包为 AppX 格式的指导
- 使用 qt 或 c++ 从桌面获取输入和输出
- 屏幕截图桌面DirectX C /QT
- 捕获桌面屏幕QT/C Winapi
- 我想将使用 VTK、C++ 和 QT 开发的桌面应用程序移植到 Web 应用程序
- 如何为 QT Windows 应用程序设置不同的桌面快捷方式图标和任务栏图标不同
- 在我关闭刚开始的孩子对话框并进入父母对话框之后,我的QT桌面应用程序不断崩溃
- Qt 安装程序框架 mac 桌面别名
- QT 4.x/5.x和OpenGL用于桌面GUI应用程序:选择哪种模块
- 适用于桌面和移动应用程序的Qt
- 还原或带到前QT桌面应用程序
- 如何在不使用qt Quick的情况下在qt桌面应用程序中实现qt虚拟键盘
- 使用共享逻辑(MVC)将Qt桌面应用程序扩展到web服务
- Qt桌面开发
- 使用QT桌面应用程序发送短信而不使用网站
- c++ QT桌面工具栏
- Qt桌面着色器编译问题