私はSymbianにQtを使用しています。QMenuから開くQDialogに問題があります。QDialogは正常に表示され、QDialogには、QDialogを閉じるためのボタンが付いたQDialogButtonBoxがあります。しかし、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());
}