2012-04-13 5 views
0

ich einige CommandLinkButtons mit einigen Schleifen in eine QTableWidget gesetzt habe:Verbinden verschiedene Signale von CommanLinkButtons von einem QTableWidget

QCommandLinkButton *MysticalButton = new QCommandLinkButton; 

QueryReturn = ModHandling->ModuleXML("attribute",ModuleList.at(iMod),"Settings","Icon"); 
QIcon Icon(QueryReturn); 
QSize IconSize; 
IconSize.scale(48, 48, Qt::KeepAspectRatio); 
MysticalButton->setIconSize(IconSize); 
MysticalButton->setIcon(Icon); 

QueryReturn = ModHandling->ModuleXML("search", ModuleList.at(iMod), "Title"); 
MysticalButton->setText(QueryReturn); 

QueryReturn = ModHandling->ModuleXML("search", ModuleList.at(iMod), "Description"); 
MysticalButton->setStatusTip(QueryReturn); 

// I use the Tooltip to get the Command of this Button: 
QueryReturn = ModHandling->ModuleXML("search", ModuleList.at(iMod), "Exec"); 
MysticalButton->setToolTip(QueryReturn); 

ui->tableWidget_Main->setCellWidget(iRow, iCol, MysticalButton); 

Wie verbinde ich ein Signal an einen Slot, der den Befehl vom Button ausgeführt wird? Der Befehl wird als ToolTip btw festgelegt.

Wenn Sie eine bessere Art und Weise kennen, dann den Befehl an die Taste, um lass es mich wissen (=

Antwort

0

einen Blick auf QSignalMapper nehmen oder einfach qobject_cast<QCommandLinkButton *>(sender()) in Ihrem geklickt Steckplatz

QSignalMapper * signalMapper = new QSignalMapper(this); 

QCommandLinkButton *MysticalButton = new QCommandLinkButton; 

QueryReturn = ModHandling->ModuleXML("attribute",ModuleList.at(iMod),"Settings","Icon"); 
QIcon Icon(QueryReturn); 
QSize IconSize; 
IconSize.scale(48, 48, Qt::KeepAspectRatio); 
MysticalButton->setIconSize(IconSize); 
MysticalButton->setIcon(Icon); 

QueryReturn = ModHandling->ModuleXML("search", ModuleList.at(iMod), "Title"); 
MysticalButton->setText(QueryReturn); 

QueryReturn = ModHandling->ModuleXML("search", ModuleList.at(iMod), "Description"); 
MysticalButton->setStatusTip(QueryReturn); 

// I use the Tooltip to get the Command of this Button: 
QueryReturn = ModHandling->ModuleXML("search", ModuleList.at(iMod), "Exec"); 
MysticalButton->setToolTip(QueryReturn); 

ui->tableWidget_Main->setCellWidget(iRow, iCol, MysticalButton); 

connect(MysticalButton, SIGNAL(clicked()), signalMapper, SLOT(map())); 
signalMapper->setMapping(MysticalButton, QueryReturn); 


connect(signalMapper, SIGNAL(mapped(const QString &)), 
     this, SIGNAL(executeCommand(const QString &))); 
Verwandte Themen