到目前爲止,我只有我的主窗口彈出其他窗口是QDialogs,我沒有得到它與QWidget一起工作。我想要顯示的另一個窗口是用表單編輯器設計的,然後包裝在一個名爲ResultViewer的類中,該類擴展了QWidget(而不是QDialog)。我想要的是讓ResultViewer在一個單獨的窗口中顯示它的用戶界面。現在,當我嘗試顯示它時,ResultViewer UI會彈出到主窗口頂部的主窗口中。如何讓另一個窗口彈出來擴展QWidget而不是QDialog?
我使用以顯示它的代碼是這樣的(在我mainwindow.cpp文件)
ResultViewer * rv = new ResultView(this);
rv->show();
的構造函數ResultViewer看起來像這樣
ResultViewer::ResultViewer(QWidget * parent) :
QWidget(parent),
ui(new Ui::ResultViewer)
{
ui->setupUi(this);
}
我已經通過看QWidget文檔有點但是我能找到的唯一可能是QWidget::window()
函數,但是這個解釋不是很清楚,它只是給出了一個改變窗口標題的例子。
感謝VestniK,深入瞭解它我認爲我可能切換到QDialog。原本我不想使用它,因爲它們通常在打開時擋住主窗口,但顯然這很容易改變。 – 2010-05-12 22:00:39
Dialod可以是模態和非模態的。如果你使用QDialog :: show()(實際上這個函數是從QWidget繼承的),它是非模態的(不會阻塞你的主窗口),如果你使用QDialog :: exec(),你的對話框是模態的(阻止你的主窗口)。 – VestniK 2010-05-12 22:05:13