// QMessageBox对话框默认为模式对话框,但该对话框显示在主窗口下
int res = QMessageBox::question(NULL, tr("Question"), tr("Are you sure to delete this rules?"),
QMessageBox::Yes | QMessageBox::Cancel);
if (QMessageBox::Yes == res)
{
QStringList result;
for (int i = selectedrowset.size() - 1; i >= 0; i--)
{
//record data
QTableWidgetItem* item = this->item(selectedrowset.at(i), 0);
if (item)
{
QString text = item->text();
if (!result.contains(text))
result.append(text);
}
this->removeRow(selectedrowset.at(i));
}
emit signal_delete(result);
}
答案 0 :(得分:3)
QDialog是其父控件的模态,但由于您使用的是 NULL
,因此根本没有父控件。
int ret = QMessageBox::warning(this, tr("My Application"),
tr("The document has been modified.\n"
"Do you want to save your changes?"),
QMessageBox::Save | QMessageBox::Discard
| QMessageBox::Cancel,
QMessageBox::Save);
将主窗口添加为父窗口(第一个参数),消息框将变为模态。