It's tricky. Due to the plugin being in a different execution context from the main application, a direct connection cannot be made. It would have to be a callback, similar then the ones from the plugin to select a certain packet. Those have not yet been implemented. Even if they were, you would hardly get more out of the packetlist then the frame number. An alternative route would be to link your plugin against the wireshark application itself, and cast QCoreApplication::instance() to WiresharkApplication. From there you would be able to attach your code onto MainWindow's signals. But again, more than a frame-number would not be possible, due to the same memory constraints mentioned above. The packet-info itself is, once again, part of the wrong execution context, therefore on most operating systems access would lead to an access violation error.
The reason tap's work is that they were designed to be working like that from the beginning. They also provide a specific object, not packet_info. I tried to implement something similar then what you are trying now in the past when I wrote the plugin interface. In the end I gave up due to too many headaches involved.
cheers
Roland