RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-192694

Desmond Fox's questions

Martin Hope
Desmond Fox
Asked: 2020-07-06 18:38:51 +0000 UTC

没有在 QGraphicsRectItem 上调用 mousePressEvent

  • 0

我有一个LifeView继承自的类,QGraphicsView用于渲染场景LifeScene(继承自QGraphicsScene)。元素LifeCell(继承自QGraphicsRectItem)绘制在舞台上。

有LifeCell一个覆盖的鼠标点击处理方法

void LifeCell::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
    // Если клетка живая была до нажатия, то перекрашиваем и делаем её мертвой
    changeStatus((currentStatus == C_ALIVE) ? C_DIED : C_ALIVE);
    qDebug() << "LifeCell: pressed";
    QGraphicsRectItem::mousePressEvent(event);
}

我所有LifeCell的元素都在QGraphicsItemGroup.

但是在应用程序的输出中只有这个:

LifeView: pressed

虽然从理论上讲,它也应该是:

LifeCell: pressed

好的,我试着按照网上写的去做:

void LifeView::mousePressEvent(QMouseEvent *event)
{
    qDebug() << "LifeView: pressed";
    QGraphicsView::mousePressEvent(event);
    event->accept();
}

向 LifeView 添加了以下行:

this->setMouseTracking(true);

什么也没有变。我究竟做错了什么?

upd添加到一个组对我来说就是这样。

m_itemGroup = new QGraphicsItemGroup();
    this->addItem(m_itemGroup);

    LifeCell    *pCell  = nullptr;
    for (size_t i = 0; i < rowCount; i++)
    {
        for (size_t j = 0; j < colCount; j++)
        {
            QRectF  rect;

            // Вычисление координат клетки
            qreal x  = j * cellSize;
            qreal y  = i * cellSize;

            rect.setX(x);               rect.setY(y);
            rect.setWidth(cellSize);    rect.setHeight(cellSize);

            pCell   = new LifeCell(rect);

            m_itemGroup->addToGroup(pCell);
        }
    }
c++
  • 1 个回答
  • 10 Views
Martin Hope
Desmond Fox
Asked: 2020-07-01 17:53:18 +0000 UTC

二维 QVector:如何正确声明和初始化?

  • 2

我正在编写游戏“Life”。有这样一个问题。比如有一个LifeMatrix类,里面会有一个二维的,dynamic的(不知道dynamic适不适合)vector,这样我就可以在同一个类中进行某些动作(比如count某个小区的邻居)

我在头文件中这样声明:

QVector<QVector<bool> *> *m_matrix;

我这样初始化它:

LifeMatrix::LifeMatrix(short horizontalCount, short verticalCount, QObject *parent) : QObject(parent)
{
    //
    m_matrix    = new QVector<QVector<bool> *>(verticalCount);
    for (int i = 0; i < verticalCount; i++)
        m_matrix[i] = new QVector<bool>(horizontalCount);

老实说,我不知道我做的对不对。当我想用一些数据填充它时:

for (int i = 0; i < m_matrix->count(); i++)
    for (int j = 0; j < m_matrix[i].count(); i++)
        m_matrix[i][j] = false;

显示几个错误:

no match for 'operator=' (operand types are 'QVector<QVector<bool>*>' and 'QVector<bool>*')
         m_matrix[i] = new QVector<bool>(horizontalCount);
                     ^

就在这里。但这通常很奇怪,因为我已经可以上传数据了。是不是?

ошибка: cannot convert 'bool' to 'QVector<bool>*' in assignment
             m_matrix[i][j] = false;
                            ^

我有个问题。m_matrix[i].count()出于某种原因,当我将点更改为时,我仍然发誓->。毕竟,向量存储指针。如果你留下一个点,错误就会消失。

 ошибка: base operand of '->' has non-pointer type 'QVector<QVector<bool>*>'
             for (int j = 0; j < m_matrix[i]->count(); i++)
                                            ^

我究竟做错了什么?

c++
  • 3 个回答
  • 10 Views
Martin Hope
Desmond Fox
Asked: 2020-06-04 17:48:51 +0000 UTC

从模态窗口获取数据

  • 0

我有一个主窗口类 MainWindow。我从中启动(例如,在授权期间)一个模式授权窗口,其中包含字段“登录”、“密码”(lineLogin分别linePass为 )。我知道可以在模态窗口类中创建一个信号

signals:
  void sendData(QString login, QString password);

并在主窗口类中创建一个插槽,我们在那里对数据执行操作

private slots:
   void getData(QString login, QString password);

然后在主窗口类中连接整个东西

connect(&modal, SIGNAL(sendData(QString, QString)), SLOT(getData(QString, QString));

我们称窗口本身,比方说在插槽中on_actionC_triggered()

modal.exec();

但这让我很困扰:

  1. 通过接受来自模态窗口的数据创建一个额外的插槽。

  2. 通常接受字段值有些麻烦。

如果可能的话,如何直接从 获取数据modal.exec()来处理字段值lineLogin并linePass直接进入on_actionC_triggered()?

如果没有上面的方法不行,那怎么减少代码呢?

c++
  • 1 个回答
  • 10 Views
Martin Hope
Desmond Fox
Asked: 2020-05-24 14:16:53 +0000 UTC

对 RSA 的循环攻击。找d

  • 1

你好。有这样的数据来自对 RSA 的攻击。

Yc = 150817
N = 270247
E = 41

我攻击了密码并得到了这个

X = 133224
k = 7644 //длина цикла атаки

我不知道如何d通过循环的长度来查找。我知道有公式

e*d mod phi(N)=1 
e ** k mod phi(N) = 1   //** - степень

从中如何表达d?

математика
  • 1 个回答
  • 10 Views
Martin Hope
Desmond Fox
Asked: 2020-05-14 16:45:51 +0000 UTC

从外部访问类的私有字段

  • 3

你好,我在某个资源上找到了类似的代码(自己稍微修改了一下):

#include <iostream>

using namespace std;

class PrivateClass
{
public:
    PrivateClass(int a, char b)
        : privateInt(a), privateChar(b) {}
    int     getInt() {return privateInt; }
    char    getChar() {return privateChar; }
private:
    int     privateInt;
    char    privateChar;
};

class Stealer
{
public:

    int &stealInt(PrivateClass &clss)
    {
        return ((Stealer *) (&clss))->stealedInt;
    }

    char &stealChar(PrivateClass &clss)
    {
        return ((Stealer *) (&clss))->stealedChar;
    }

private:
    int     stealedInt;
    char    stealedChar;
};

int main()
{
    PrivateClass    prVar(20, 'a');
    Stealer         stVar;
    int &stlInt     = stVar.stealInt(prVar);
    char &stlChar   = stVar.stealChar(prVar);
    cout << "Private Class:\nInt = " << prVar.getInt() << "\nChar = " << prVar.getChar() << endl;

    cout << "\nStealed:\nInt = " << stlInt << "\nChar = " << stlChar << endl;
    stlInt  = -65;
    stlChar = 'q';
    cout << "Int = " << stlInt << "\nChar = " << stlChar << endl;
    cout << "\nPrivate Class:\nInt = " << prVar.getInt() << "\nChar = " << prVar.getChar() << endl;
    return 0;
}

结果:

Private Class:
Int = 20
Char = a

Stealed:
Int = 20
Char = a
Int = -65
Char = q

Private Class:
Int = -65
Char = q

据我了解,Stealer 类以某种方式访问​​了 PrivateClass 类的私有字段,甚至通过引用,这使得“从外部”更改变量的值成为可能。las,我还没有在任何地方找到明确的答案。会是什么呢?

c++
  • 2 个回答
  • 10 Views
Martin Hope
Desmond Fox
Asked: 2020-05-01 17:52:50 +0000 UTC

X* 到 Y* 转换存在但不可用

  • 2

开始学习设计模式,卡在书的第一章。这本书是为 javaist 编写的,但我决定将代码翻译成 C++。

#include <iostream>
using namespace std;

// interfaces
class FlyBehavior
{
public:
    virtual void fly() = 0;
};

class QuackBehavior
{
public:
    virtual void quack() = 0;
};

// Flying
class FlyWithWings
        : FlyBehavior
{
public:
    virtual void fly()
    {
        cout << "I'm flying" << endl;
    }
};

class FlyNoWay
        : FlyBehavior
{
public:
    virtual void fly()
    {
        cout << "I can't fly" << endl;
    }
};

// Quacking
class Quack
        : QuackBehavior
{
public:
    virtual void quack()
    {
        cout << "Quack!" << endl;
    }
};

class MuteQuack
        : QuackBehavior
{
public:
    virtual void quack()
    {
        cout << "Silence..." << endl;
    }
};

class Squeak
        : QuackBehavior
{
public:
    virtual void quack()
    {
        cout << "Squeak!" << endl;
    }
};

class Duck
{
public:
    FlyBehavior     *flyBehavior;
    QuackBehavior   *quackBehavior;

    virtual void display() = 0;
    virtual void performFly()
    {
        flyBehavior->fly();
    }
    virtual void performQuack()
    {
        quackBehavior->quack();
    }
    void swim()
    {
        cout << "All ducks float" << endl;
    }

};


class MallardDuck
        : Duck
{
public:
    MallardDuck()
    {
        flyBehavior     = new FlyWithWings();
        quackBehavior   = new Quack();
    }

    virtual void display()
    {
        cout << "Typical mallard duck" << endl;
    }
};

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

    Duck *pMallard  = new MallardDuck();
    pMallard->performFly();
    pMallard->performQuack();

    return 0;
}

我不太明白为什么你不能将 from 转换FlyBehavior*为FlyWithWings*. 我知道从接口创建对象是不可能的,但是我把它转换成某个类的对象,就好像是。

编译错误:

\main.cpp:97: error: C2243: cast: 转换“FlyWithWings *”到“FlyBehavior *”存在但不可用

\main.cpp:98: error: C2243: cast: 从“Quack *”到“QuackBehavior *”的转换存在但不可用

\main.cpp:110: error: C2243: cast: 转换“MallardDuck *”到“Duck *”存在但不可用

c++
  • 1 个回答
  • 10 Views
Martin Hope
Desmond Fox
Asked: 2020-04-23 20:36:01 +0000 UTC

检查一个点是否属于阴影区域

  • 0

你好,又是我。一般的任务是这样的:您需要从文件中读取点并检查每个点是否在阴影区域中。在 AutoLISP 中实现。

所以,用AutoLISP写不是问题,我自己来吧。但我不知道如何检查一个点是否属于一个图形。也许 Autocad 中有点检查功能,或者某处描述了一种检查方法?

数据是这样的:

正方形的边长:4。

圆直径:2。

圆心坐标:(0, 0)。

方案

геометрия
  • 1 个回答
  • 10 Views
Martin Hope
Desmond Fox
Asked: 2020-04-22 17:50:06 +0000 UTC

两段的接触点

  • 0

你好。您需要找到一个点,该点距 A 点的距离为 a,距 B 点的距离为 b。

我了解到您必须先输入数据 (A, a, B, b)。我只是不知道下一步该怎么做。

我才刚刚开始。写入数据条目

(defun fnc()
  (setq A (getpoint "Enter A(dot):"))
  (setq a (getdist A "Enter a(dist):"))
  (setq B (getpoint "Enter B(dot):"))
  (setq b (getpoint B "Enter b(dist):"))
  )

谁能建议下一步做什么?

геометрия
  • 2 个回答
  • 10 Views
Martin Hope
Desmond Fox
Asked: 2020-11-08 23:38:46 +0000 UTC

错误:从“const char [1]”到“wxString”的转换不明确

  • 1

有这样的代码(片):

int count = data.getCount();
const XYZ* pData = data.getData();

this->CreateGrid(count, 3);

this->SetColLabelValue(0, "x"); // тут ругается
this->SetColLabelValue(1, "y");
this->SetColLabelValue(2, "z");

for (int i = 0; i < count; i++)
{
    wxString str = "";
    str << pData[i].x; this->SetCellValue(i, 0, str); str = ""; // тут тоже ругается
    str << pData[i].y; this->SetCellValue(i, 1, str); str = "";
    str << pData[i].z; this->SetCellValue(i, 2, str); str = "";
}

我做错了什么?

c++
  • 1 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5