【发布时间】:2013-10-24 10:03:44
【问题描述】:
我有一些对话框和调用这些对话框的按钮。但是,每次单击按钮都会调用一个新的对话窗口。我希望先关闭现有窗口,然后用户才能单击按钮打开另一个窗口。
下面是一个调用插槽的按钮示例。每当我单击按钮时,它都会调用对话窗口的副本。有没有办法只调用对话窗口的一个副本?
谢谢。
书签.cpp:
Bookmark::Bookmark()
{
createButtons();
connect(bookmarkButton, SIGNAL(clicked()), this, SLOT(openBookmarkDlg()));
}
void Bookmark::createButtons()
{
...
bookmarkButton = new QToolButton;
bookmarkButton->setText("Bookmark");
addWidget(bookmarkButton);
...
}
void Bookmark::openBookmarkDlg()
{
BookmarkDlg *bkDlg = new BookmarkDlg;
bkDlg->show();
}
书签.h:
class Bookmark : public QToolBar
{
Q_OBJECT
public:
Bookmark(void);
~Bookmark(void);
public slots:
void openBookmarkDlg();
private:
createButtons();
QToolButton *bookmarkButton;
};
【问题讨论】:
-
只是不要在
Bookmark::openBookmarkDlg()中创建另一个对话框实例 -
@DmitrySazonov:谢谢。我将
new语句移到了我的构造函数中,现在它只打开了对话窗口的一个实例。我还将show()改为exec()。 -
@Wallace 如果我的回答有帮助,请投票。如果它解决了您的问题,请单击它附近的复选框。通过做这些事情,您将帮助未来的访问者。