gpt4 book ai didi

c++ - QT4/C++ : no such signals problem

转载 作者:行者123 更新时间:2023-11-30 00:41:07 24 4
gpt4 key购买 nike

我有一个小程序来显示设备和捕获任何数据包,带有 GUI。我使用 QT Designer 和 Netbeans 6.9 来绘制 GUI,但是当我尝试实现信号/槽时问题就来了。基本上当一个组合框被选中时,QlineEdit 将显示所选设备的 MAC 地址。错误:

 Object::connect: No such signal QComboBox::selectedDev(int) in MainGUI.cpp:21
Object::connect: (sender name: 'comboBox')
Object::connect: (receiver name: 'MYMACBOX')

主界面.h

#ifndef _MAINGUI_H
#define _MAINGUI_H

#include "ui_MainGUI.h"

class MainGUI : public QDialog {
Q_OBJECT
public:
MainGUI();
virtual ~MainGUI();
void displayDevices();
void selectedValue();
public slots:
void showmac(int);

signals:
void selectedDev(int);
private:
Ui::MainGUI widget;
};

主界面.cpp

#include "MainGUI.h"
#include "pcapCapture.h"
#include <pcap.h>
#include <iostream>
MainGUI::MainGUI() // constructor
{
widget.setupUi(this);
//show devices here
QObject::connect(widget.comboBox,SIGNAL(selectedDev(int)),widget.MYMACBOX,SLOT(showmac(int)));
}
void MainGUI::showmac(int value)
{
//show MAC address here
}

我不知道这里的问题是什么,我尝试了不同的方法来解决这个问题,但它们不起作用。对于这里任何明显的错误,我深表歉意,我还是 QT4(和 libpcap)的新手。

最佳答案

QComboBox 没有 selectedDev(int) 信号。该文档为每个 Qt 类提供了一个方便的信号和槽列表:QComboBox documentation

您已经在 MainGUI 类中定义了 selectedDev(int) 信号,因此您对连接的调用应该是这样的:(连接的参数是:信号源、信号、槽或信号源、槽或信号。)

QObject::connect(this,SIGNAL(selectedDev(int)),widget.MYMACBOX,SLOT(showmac(int)));

但这不会有任何效果,因为没有任何东西触发 selectedDev(int) 信号。

也许您可以尝试将组合框的 currentIndexChanged(int) 连接到您的 selectedDev(int) 信号,如下所示:

QObject::connect(widget.comboBox,SIGNAL(currentIndexChanged(int)),this ,SIGNAL(selectedDev(int)));

我在这里所做的是在组合框索引更改时触发 MainGUI 的 selectedDev(int) 信号。

如果您只是想在用户在组合框中选择某些内容时执行 showmac(int),您不能比这更直接:

QObject::connect(widget.comboBox,SIGNAL(currentIndexChanged(int)),widget.MYMACBOX,SLOT(showmac(int)));

您似乎对信号和插槽有些困惑,这里有一些链接可能会有所帮助:

Signals & Slots from the Qt documentation

An introductory Qt article from my blog that explains how a very simple Qt application works (这与它是我的博客无关,但对于任何开始使用 Qt 的人来说,它是对 Qt 应用程序的一个很好的概述)

关于c++ - QT4/C++ : no such signals problem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4447816/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com