0
我有一個由中央應用程序創建和管理的對話框。該對話在運行時生成小部件,並具有用於將對話恢復到其默認安排的成員函數,即,即,頂部的按鈕框和底部的單個小部件。這個恢復功能在對話被隱藏時被調用。我可以從對話中獲得額外的小部件,但我無法讓對話本身縮小到原始大小。這是我正在使用的代碼,名稱已更改爲通用。通過函數調用縮小QDialog
void Dialogue::restore()
{
const short RESTORE_WIDTH = 800;
const short RESTORE_HEIGHT = 200;
QRect newGeometry(frameGeometry());
// Remove all old origins
foreach(RuntimeWidget* child, findChildren< RuntimeWidget* >())
child->deleteLater();
// Restore widget to default state
newGeometry.setWidth(RESTORE_WIDTH);
newGeometry.setHeight(RESTORE_HEIGHT);
setGeometry(newGeometry);
updateGeometry();
addRuntimeWidget();
}
void Dialogue::addRuntimeWidget()
{
RuntimeWidget* pWidget(new RuntimeWidget());
vbxlytDialogue->addWidget(pWidget);
adjustSize();
adjustPosition(this);
pWidget->setFocus(Qt::OtherFocusReason);
}
我沒有,現在給它一個嘗試。 – JadziaMD 2011-06-06 18:04:46
工作得很好,除了現在下一次添加的調用之外,對於調整大小以適應新的小部件並沒有很好的工作。這是第一次調用後的下一次調用,父窗口小部件實際上已經過調整以適應新的窗口小部件。 – JadziaMD 2011-06-06 18:09:51