Hi,I haven't exactly understood the code you posted,however I tell you what I have understood.

Qt Code:
  1. //constructor of myMainForm...
  2. connect(popup, SIGNAL(clicked()), this, SLOT(setOption()));
To copy to clipboard, switch view to plain text mode 
I suppose you want to use this single connection instead of the 8 connections for each button,is it right?
For what I know, it can't work because it's not the popup that emits the clicked() signal but are the buttons. If you want that your popup emits the clicked signal, you have to call it via a slot invoked by the clicked signal emitted from the buttons,:
Qt Code:
  1. //In the popup constructor
  2. connect(buttonN,SIGNAL(clicked()),this,SLOT(emitclicked())); //8 times,for each button
To copy to clipboard, switch view to plain text mode 
and then:
Qt Code:
  1. void Popup::emitclicked(){emit clicked();}
To copy to clipboard, switch view to plain text mode 

Another way is to organize the buttons inside an array,in this way you can spare lines of code
Qt Code:
  1. //inside Mainform
  2. QVector<Button*> buttons;
  3. for(int i=0;i<8;i++){
  4. buttons[i]=new Button(...);
  5. connect(buttons[i],SIGNAL(clicked()),this,SLOT(setOption()));
To copy to clipboard, switch view to plain text mode