我正在使用QT在C++中编写一个应用程序,你有n个点并计算它的凸包.但是,一旦计算出来,我就不知道如何绘制点并绘制船体的边界.制作菜单按钮等很简单,但我不确定我知道这样做的工具.
你怎么做到这一点?
我从 QTextEdit 派生了一个类并将其用作“日志”。我为它配备了一个插槽来接收日志消息。
class CLogbook : public QTextEdit
{
Q_OBJECT;
public:
void log(QString msg) {append(msg)};
public slots:
void recvLogSignal(const QString message)
{
append("hallo");
std::cout << "signal received.\n";
log(message);
}
Run Code Online (Sandbox Code Playgroud)
};
另一个类然后发出这样的信号:
// in the header
signals:
void logMessage(const QString);
// in the implementation
emit logMessage("qt is cute");
std::cout << "if you can read this the logMessage was emitted\n";
Run Code Online (Sandbox Code Playgroud)
我还将信号连接到插槽
connect(tableeditor, SIGNAL(logMessage(const QString)), logbook, SLOT(recvLogSignal(const QString)));
Run Code Online (Sandbox Code Playgroud)
但是,该消息从未显示在“日志”中。我在这里缺少什么?
已解决:发出信号后调用连接方法:-(
我想在QGraphicsScene中实现arc.我希望点击三个点时我的弧应被绘制,以便在点击三个点时绘制弧,其中第一个点将开始弧,第二个将是弧上的任何点,第三个将是弧的终点.我试过学习drawArc函数,但是对于startangle和spanangle感到困惑.我无法动态设置它们.请建议我继续下去.
我尝试了解决方案在我的项目中使用它,但是出现了以下错误:
error: cannot allocate an object of abstract type 'arc'
arcItem = new arc(++id, startP, midP, endP);
Run Code Online (Sandbox Code Playgroud)
你能帮帮我解决问题吗?我正在为我的项目提供一部分代码.在cadgraphicsscene的mousepress活动中,我做了以下事情.
cadgraphicsscene.cpp
void CadGraphicsScene::mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent)
{
// mousePressEvent in the graphicsScene
if(mouseEvent->button() == Qt::LeftButton)
{
switch (entityMode)
{
case ArcMode:
if (mFirstClick)
{
startP = mouseEvent->scenePos();
mFirstClick = false;
mSecondClick = true;
}
else if (!mFirstClick && mSecondClick)
{
midP = mouseEvent->scenePos();
mFirstClick = false;
mSecondClick = false;
mThirdClick = true;
}
else if (!mSecondClick && mThirdClick)
{
endP = mouseEvent->scenePos();
mThirdClick …Run Code Online (Sandbox Code Playgroud)