2

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

1 に答える 1

0

ダイアログをモーダルにする場合は、exec()を使用します。それ以外の場合は、show()とraise()を使用して、上に表示する必要があります。

于 2011-04-13T14:17:29.960 に答える