2
A
回答
1
將Widget位置存儲在註冊表中。安裝時有默認設置並保存屏幕幾何圖形。例如:
QSettings settings;
settings.beginGroup("MainWindow");
settings.setValue("MRU", m_RecentFiles);
settings.setValue("maximized", isMaximized());
settings.setValue("minimized", isMinimized());
if(!isMaximized())
{
settings.setValue("size", size());
}
QByteArray array = saveState();
settings.setValue("state", array);
QDesktopWidget desktopWidget;
int nb = desktopWidget.numScreens();
settings.setValue("screenNumber", nb);
for(int i = 0; i < nb; ++i)
{
YString screenName = "screen" + YString::number(i);
QRect rect = desktopWidget.screenGeometry(i);
settings.setValue(screenName.data(), rect);
}
1
您可以使用QMainWindow::saveState()
和QMainWindow::restoreState()
方法。
saveState
返回一個QByteArray
,其中包含主窗口的內部狀態,包括停靠區域的停靠窗口小部件的狀態和位置。例如,您可以將此陣列保存在文件中,稍後通過調用restoreState()
來恢復內容。
如果你想有一個默認位置,然後根據你的喜好定位dock widgets,默認情況下,它會檢索字節數組(例如通過一些只在你的應用程序的調試模式下可用的動作)將數組硬編碼到您的源代碼或某個默認配置文件中,然後通過簡單地將此數組傳遞給restoreState()
方法來實現某種「重置」或「設置默認值」操作。
0
一般來說,你只需要添加一個檢查到該測試QWidgets位置,然後決定是否需要移動部件回到屏幕上的mouseMoveEvent。
相關問題
- 1. 如何在qt中設置小部件的絕對位置
- 2. qt - 小部件 - 定位
- 3. ASP.NET machineKey config部分的默認位置
- 4. 在Qt的相同位置添加小部件到QGridLayout?
- 5. 錨定/停靠位置DataGridView
- 6. 配置文件的默認位置 - MacOS?
- 7. 在哪裏把默認銷燬在jQuery UI 1.8.1小部件的銷燬功能
- 8. 如何在QT中設置中央小部件的大小/位置
- 9. Qt將小部件放置在自定義位置
- 10. 是否可以設置Qt控件的默認屬性?
- 11. 刪除Wordpress中的默認小部件
- 12. WordPress的如何設置窗口小部件的默認值?
- 13. Qt小部件停止接收paintevents
- 14. borderlayout的默認位置
- 15. karma:Firefox的默認位置
- 16. 更改vb.net的默認文件位置
- 17. 的Web.config更改文件默認位置
- 18. 加載文件,netbeans的默認位置
- 19. 默認的phing日誌文件位置?
- 20. 更改Grails插件的默認位置
- 21. Eclipse插件視圖的默認位置
- 22. 如何獲取Qt小部件的位置?
- 23. 修復QT中的子佈局/小部件位置
- 24. 的Qt - 允許停靠即使QMainWindow的太小
- 25. 如何安裝完整的Qt 5.5到默認位置
- 26. FileSystemObject - 默認位置
- 27. PrintWriter默認位置
- 28. supervisor.conf默認位置
- 29. 如何設置IPython小部件的默認值?
- 30. 有沒有辦法設置sfWidgetFormFilterDate小部件的默認值?
我懷疑這種方法是否適用於多個屏幕 – Hariprasad
好點,實際上 - 我還沒有測試過這個... –