3
QTabWidgetの実装では、tabCloseRequested()
とcurrentChanged()
シグナルが検出されていません。QTabWidgetのシグナルが検出されない
TileSheetManager::TileSheetManager(QWidget *parent)
: QTabWidget(parent)
{
int w = WIDTH;
int h = HEIGHT;
this->setMinimumSize(w, h);
this->setMaximumSize(w, h);
setTabsClosable(true);
setTabShape(QTabWidget::Rounded);
connect(this, SIGNAL(tabCloseRequested(int index)), this, SLOT(closeTileWidget(int index)));
connect(this, SIGNAL(currentChanged(int index)), this, SLOT(tabChanged(int index)));
}
qDebug()
は私のために働いていなかったので、私はこのためQMessageBox
を使用しています。
void TileSheetManager::closeTileWidget(int index)
{
QMessageBox msgBox;
msgBox.setText("Tab " + QString::number(index) + " removed!");
msgBox.exec();
TileWidget *t = (TileWidget *) widget(index) ;
t->deleteLater();
removeTab(index);
}
void TileSheetManager::tabChanged(int index)
{
QMessageBox msgBox;
msgBox.setText("Tab was Changed!");
msgBox.exec();
TileWidget *t;
for(int i = 0; i < count(); i++)
{
t = (TileWidget *) widget(i) ;
t->resetSetBrush();
}
}
タブは、選択したブラシがリセットされていない、と私は何もメッセージを取得していないので、私は信号がピックアップされていない締結よ、閉じて取得されていません。以前のプロジェクトでも同様のコードを使用していたので、これはうまくいきました。
ありがとうなければなりません!出来た。しかし、私の他のシグナルスロット接続は、スロットパラメータの変数名と一緒に働いています。理由は何ですか?再度、感謝します。 – Rikonator
私は同じ問題を抱えていますが、接続に変数名がなく、まだ信号が取り出されていません...どのようなアイデアですか? –