小编Joh*_*ing的帖子

Qt Widget - 如何捕获几个键盘键

我知道使用grabKeyboard()我的小部件能够抓住每个键盘事件,如果它没有聚焦,但如果我只想捕获三个或四个键怎么办?

我尝试使用事件过滤器 http://doc.trolltech.com/3.3/qobject.html#installEventFilter

但这没用(也许是因为我这样安装了?)

 class MyWidget: public QGLWidget
    {
        ...
    protected:
        bool eventFilter( QObject *o, QEvent *e );
    };

    bool MyWidget::eventFilter( QObject *o, QEvent *e )
    {
        if ( e->type() == QEvent::KeyPress ) {
            // special processing for key press
            QKeyEvent *k = (QKeyEvent *)e;
            qDebug( "Ate key press %d", k->key() );
            return TRUE; // eat event
        } else {
            // standard event processing
            return FALSE;
        }
    }

// Installed it in the constructor
MyWidget::MyWidget()
{
    this->installEventFilter(this);
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能拦截我的小部件中的几个键,并留下其他小部件(QTextEdits)?

c++ keyboard qt4

4
推荐指数
1
解决办法
8440
查看次数

Windows 8 WinRT - C++或C++ .NET?

我听说Windows 8开发将允许XAML/HTML5 + C++应用程序,但它是原生非托管C++还是托管C++(以前称为C++ .NET)?

c++ microsoft-metro windows-8 windows-runtime winrt-xaml

4
推荐指数
1
解决办法
1121
查看次数

在Windows上堆栈 - 在哪里?

我对exe堆栈的位置感到有点困惑.我知道程序运行之前的CRT通过分配一定量的堆来初始化堆(这又是由分配页面的操作系统分配的),但是在哪里堆?它也在页面上吗?或者它是否在用户模式(ring3)中通过在GDT上使用ring3描述符共享(我想不是,但我不确定)?

c c++ windows stack kernel

4
推荐指数
1
解决办法
195
查看次数

Asm CALL指令 - 它是如何工作的?

我想在Windows环境(PE可执行文件)中有一个明确的解释,CALL XXXXXXXXXXXXXXX指令如何工作.我一直在研究PE格式,但我对CALL ADDRESS指令与从dll导入函数之间的关系以及CALL ADDRESS如何在DLL中找到代码感到困惑.除了ASLR和其他安全功能可能会移动DLL,可执行文件如何处理这个?

c c++ windows x86 assembly

4
推荐指数
2
解决办法
1万
查看次数

总的,弱的,部分的排序 - 完整的定义

有什么区别

  • 严格/非严格的订购,
  • 弱/非弱排序,和
  • 部分/总排序?

language-agnostic strict-weak-ordering

4
推荐指数
1
解决办法
989
查看次数

Visual Studio 2012 + qt + clang,有可能吗?

实际上是否可以使用Visual Studio作为IDE,Qt作为框架库并作为内部编译器使用?

我不知道这是否真的可行,但这将确保我拥有最好的IDE,最好的编译器和最好的GUI框架

c++ qt clang visual-studio-2012

4
推荐指数
1
解决办法
2450
查看次数

C++ 11移动和重新分配

这段代码确实编译了,但我刚刚开始学习C++ 11,我无法理解幕后发生的事情.

void func(int&& var)
{
    int var2(var);
}

void main()
{

    int var1 = 22;
    func(move(var1));
}
Run Code Online (Sandbox Code Playgroud)

我的猜测:move(var1)返回var1的r值(可能是它的数据),func函数用var1的r值初始化var2.但是为什么在func调用之后var1仍然有效?不应该有一个无效值,因为它的临时值已重新分配给var2?

c++ c++11

4
推荐指数
1
解决办法
194
查看次数

C++ 11 - 我丢失了移动/复制任务

我在另一个问题上发布了这个代码,但我对此有了新的疑问:

#include <iostream>
#include <string>
#include <vector>
using namespace std;

class X
{
    public:

    std::vector<double> data;

    // Constructor1
    X():
        data(100000) // lots of data
    {
        cout << "X default constructor called";
    }

    // Constructor2
    X(X const& other): // copy constructor
        data(other.data)   // duplicate all that data
    {
        cout << "X copy constructor called";
    }

    // Constructor3
    X(X&& other):  // move constructor
        data(std::move(other.data)) // move the data: no copies
    {
        cout << "X move constructor called";
    }

    X& operator=(X const& other) …
Run Code Online (Sandbox Code Playgroud)

c++ c++11

4
推荐指数
2
解决办法
198
查看次数

默认构造函数和POD

我得到了POD的含义,我知道当我在C++中声明一个结构时

struct f {};
Run Code Online (Sandbox Code Playgroud)

有一个默认的构造函数,一个默认的复制构造函数,一个默认的析构函数等.(如果我得到了这个)

我的问题是:如何在没有隐式构造函数/析构函数等的情况下使用纯数据(如4个int值)声明POD结构.阻碍?

我错过了什么?

c++

3
推荐指数
2
解决办法
6048
查看次数

VirtualQueryEx和ReadProcessMemory之间的关系

我知道Windows进程是通过加载PE头,然后是以下部分(.text .data等...)来映射的,并且我可以使用ReadProcessMemory读取它们,但是VirtualQueryEx有什么意义呢?我认为它应该一次读取一个页面(寻呼系统使用的内存页面),但我没有看到内存页面与PE部分的关系如何...如果我只想扫描.text部分,我应该使用VirtualQueryEx还是页面与其内容无关?

c++ windows paging memory-management

3
推荐指数
1
解决办法
3550
查看次数