- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
单击 Dock 中的应用程序图标可启动该应用程序,或者如果该应用程序已打开,则将您切换到该应用程序并显示该应用程序中所有打开的窗口。
在我的 Qt 应用程序中,我没有看到这种行为。我有一个停靠栏快捷方式,我最小化停靠栏上的应用程序,如果我单击最小化的实例,应用程序将恢复。
如果我单击 Dock 中的应用程序图标(dock 快捷方式),则没有任何反应。
(我可以右键单击,然后“显示所有窗口” - 但这与所有其他应用程序的行为不相似)
我试图放置来自这个答案的代码:https://stackoverflow.com/a/15363738/1217150
放置qDebug
语句,
if(test) qDebug("registered");
在构造函数中,和
void MyApplictionClass::onClickOnDock()
{
qDebug("dock clicked");
}
在启动时,我收到两条消息...但是在最小化之后,或在启动后的任何时间,单击或双击停靠栏快捷方式都没有反应。
完整代码插入:
我的应用程序类.h:
#include <objc/objc.h>
#include <objc/message.h>
class MyApplicationClass: public QApplication
{
....
bool dockClickHandler(id self, SEL _cmd, ...);
void onClickOnDock();
};
我的应用程序类.cpp:
MyApplicationClass::MyApplicationClass()
{
....
objc_object* cls = objc_getClass("NSApplication");
SEL sharedApplication = sel_registerName("sharedApplication");
objc_object* appInst = objc_msgSend(cls, sharedApplication);
if(appInst != NULL)
{
objc_object* delegate = objc_msgSend(appInst, sel_registerName("delegate"));
objc_object* delClass = objc_msgSend(delegate, sel_registerName("class"));
const char* tst = class_getName(delClass->isa);
bool test = class_addMethod((objc_class*)delClass,
sel_registerName("applicationShouldHandleReopen::hasVisibleWindows:"),
(IMP)dockClickHandler(appInst, sharedApplication), "B@:");
if(!test) qDebug("not registered");
else qDebug("registered");
}
.....
}
bool MyApplicationClass::dockClickHandler(id self, SEL _cmd, ...)
{
Q_UNUSED(self)
Q_UNUSED(_cmd)
onClickOnDock();
return true;
}
void MyApplicationClass::onClickOnDock()
{
qDebug("dock clicked");
}
也许我做错了什么?有一些我不明白的东西......被引用的帖子有 dockClickHandler
不是类(class)的一部分......我只是不知道他们在哪里......我不得不当我注册它时给它参数,否则它拒绝构建。不过,它似乎在做……某事……只是做错了事。在该代码中,我看不到应用会在何处对单击停靠栏使用react。
这是正确的做法吗?或者,如何在单击停靠栏快捷方式时恢复我的应用程序?
(OSX 10.6-10.9,Qt 4.8)
最佳答案
如果您指的是这个:QT on OS X, how to detect clicking the app Dock Icon , onClickOnDock 不应是该类的成员。
您可以将其作为普通函数放入 MyApplicationClass.cpp 文件中。
关于c++ - 在最小化停靠后恢复 Qt 应用程序,在 OS X 上使用停靠快捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27511526/
如何将 CControlBar 派生窗口停靠到拆分窗口 (CSplitterWnd) 的中间?我希望在移动分离器时重新定位栏。 为了更清楚地说明我所追求的是什么,想象一下 Visual Studio(
我正在使用我认为是在 90 年代初开发的 MFC 代码。我被赋予了将软件带入 21 世纪的艰巨任务,使其能够在 Windows 7/8 之类的系统上运行。该应用程序面向众多平台,其中一个是 Windo
我有一个导航 View ,在导航 View 中我想在导航栏的右侧放置一个按钮 here is sencha fiddle My Fiddle is here 你可以看到我的菜单按钮,我希望该按钮位于右
我创建了以下 fiddle 来说明问题 http://jsfiddle.net/spjvo6g2/ 如何将activelist等子div停靠到父div的顶部垂直对齐
我是一名优秀的程序员,十分优秀!