私は、Qtの信号とスロットのメカニズムを理解しようとしています。私は、QPushButtonとQSpinBoxを持つアプリを持っています。ボタンをクリックすると、スピンボックスを20に変更します。どの信号とスロットを設定する必要がありますか?Qtでスピンボックスを一定の値に設定するにはどうすればいいですか?
次のコードはアプリを示しています。接続機能は問題があります。 QPushButtonのclicked()シグナルが異なるシグネチャを持つため、QSpinBoxのsetValue(int)スロットはここでは機能しません。とにかく、値20をスピンボックスにどのように渡すのですか?私は、spinbox-> setValue(20)を呼び出すスロットとして機能するために何らかの補助関数を書く必要がありますか?もしそうなら、それはどのような形ですか?
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget *window = new QWidget;
QSpinBox *spinbox = new QSpinBox;
QPushButton *button = new QPushButton("Set to 20");
spinbox->setRange(0, 100);
// What should I put below?
QObject::connect(button, SIGNAL(clicked()), spinbox, SLOT(???????));
QLayout *layout = new QHBoxLayout;
layout->addWidget(spinbox);
layout->addWidget(button);
window->setLayout(layout);
window->show();
return app.exec();
}
ドキュメントには必要なものすべてが含まれています。私はこれで始めることをお勧めします:http://doc.trolltech.com/4.5/signalsandslots.html – Anonymous
そこには私が知る必要があることが分かりません。 – PowerApp101
本当ですか? 信号とスロットのメカニズムはタイプセーフです。信号のシグネチャは、受信スロットのシグネチャと一致する必要があります。 あなたの質問をカバーするいくつかの簡単な例があります。 – Anonymous