私のアプリケーションにはメニューバーに「actionhelp」があり、クリックするとメインウィンドウの反対側に[OK]ボタンを含むQDialogが開きます。QStackedWidgetがあります。私の質問は、それを押したときにstackedwidgetのインデックスを変更する方法です。 QDialogの[OK]ボタン??
質問する
458 次
2 に答える
2
シグナルとスロット。QStackedWidget のインデックスを変更するスロットに、ok ボタンからの信号を接続します (または、閉じた後に QDialog::Accepted をチェックするときに独自の信号を発行します)。
コード例:
main メソッドで QAction を作成して接続します。
QAction *displayDialog = new QAction("Display Dialog", this);
connect(popup, SIGNAL(triggered()), this, SLOT(showDialog()));
表示ダイアログ:
void showDialog()
{
YourDialog *dialog = new YourDialog(this);
int return_code = dialog.exec();
if (return_code == QDialog::Accepted)
{
int index = someValue;
qStackedWidget.setCurrentIndex(index);
}
}
于 2013-03-19T10:30:00.783 に答える
0
ダイアログに行編集があり、行編集値 (またはスピン ボックス) に基づいてスタック ウィジェットのインデックスを変更したいとします。
//your dialog
//the constructor
YourDialog::YourDialog(QWidget*parent)
:QDialog(parent)
{
connect(ur_ok_btn, SIGNAL(clicked()), SLOT(accept ()));
}
//access to line edit value
QString YourDialog::getUserEnteredValue(){return ur_line_edit->text();}
YourDialog クラスのインスタンスを作成する場所:
//your main window
YourDialog dlg;
if( dlg.exec() == QDialog::Accepted ){
int i = dlg.getUserEnteredValue().toInt();
ur_stacked_widget->setCurrentIndex(i);
}
于 2013-03-19T10:39:37.993 に答える