我在做3个选项卡,从QDialog
。然后在3个选项卡中添加2个小部件和1个QDialog。 我叫QDialog::accept
和QDialog::reject
。但我想要调用自定义方法,并在调用它们时应将对话框屏幕重置为列表框选择屏幕。我的代码如下:如何在按下QDialog Cancel或OK时调用某个功能?
BTSettingsTab::BTSettingsTab(const QFileInfo &fileInfo, QWidget *parent)
: QDialog(parent)
{
...........
.............
QLabel *topLabel = new QLabel(tr("Choose setting :"));
QListWidget *settingsListBox = new QListWidget;
QStringList settings;
/*for (int i = 1; i <= 30; ++i)
applications.append(tr("Application %1").arg(i));
applicationsListBox->insertItems(0, applications);*/
settings.append(tr("newConfiguration:"));
settings.append(tr("Edit Configuration:"));
settings.append(tr("Delete Configuration:"));
settings.append(tr("add current location to turnoff Places:"));
settings.append(tr("temporarily turnoff distance:"));
settings.append(tr("temporarily turn off turnoff places:"));
settings.append(tr("factory reset:"));
settings.append(tr("turn on distance:"));
settings.append(tr("turn on turnoff places:"));
settings.append(tr("exit"));
settingsListBox->insertItems(0,settings);
QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok
| QDialogButtonBox::Cancel);
connect(buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept);
connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject);
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(topLabel);
layout->addWidget(settingsListBox);
layout->addWidget(buttonBox);
setLayout(layout);
}
我看到了您的文章。谢谢。我实现了重载函数和断点击中它们。我得到了所选项目的行号。我使用了QString * curr = settingsListBox-> currentItem() - > text();
现在我该如何开始一个新窗口?
如果你有第二个问题,你应该[问它作为一个单独的问题](https://meta.stackoverflow.com/questions/290746/follow-on-question-vs-edit-to-original-when -to-使用-哪个)。提示:你如何开始这个窗口? – Caleth