0

QTableWidget にいくつかのループを含むいくつかの CommandLinkBut​​tons を配置しました。

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);

ボタンからコマンドを実行するスロットにシグナルを接続するにはどうすればよいですか? Command は ToolTip として設定されています。

コマンドをボタンに設定するより良い方法を知っている場合は、お知らせください(=

4

1 に答える 1

0

QSignalMapperを見るか、単にqobject_cast<QCommandLinkButton *>(sender())クリックしたスロットで使用します

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 &)));
于 2012-04-20T13:11:17.570 に答える