我正在使用Qt for Symbian。我从QMenu打开的QDialog有一些问题。 QDialog显示正常,在QDialog中我有一个QDialogButtonBox,带有一个关闭QDialog的按钮。但是,如果我关闭QDialog然后再次从QMenu打开它,它将显示但是QDialogButtonBox中的按钮不会显示。相反,QMainWindow的按钮会显示,但它们会变灰。
我怎样才能每次都显示QDialog按钮?也许我在关注QDialog时遇到了一些问题?我真的看不出我在这里做错了什么。
我使用的代码不多,你可以自己试试。这是我的代码:
在QMainWindow中,我使用以下命令创建菜单:
QAction *menuButton = new QAction("Menu", this);
menuButton->setSoftKeyRole(QAction::PositiveSoftKey);
QMenu *menu = new QMenu(this);
menuButton->setMenu(menu);
QAction *popup = new QAction("Show popup",this);
connect(popup, SIGNAL(triggered()), this, SLOT(showPopup()));
menu->addAction(popup);
addAction(menuButton);
这显示了QDialog:
void MyMainWindow::showPopup(){
TestDialog *test = new TestDialog(this);
test->setAttribute(Qt::WA_DeleteOnClose);
test->show();
}
这是TestDialog:
TestDialog::TestDialog(QWidget *parent)
: QDialog(parent)
{
ui.setupUi(this);
QDesktopWidget* desktopWidget = QApplication::desktop();
QRect rect = desktopWidget->availableGeometry();
this->setFixedWidth(rect.width());
}
答案 0 :(得分:0)
如果您希望对话框是模态的,请使用exec()。否则,你应该使用show()和raise()来使它成为最重要的。