【QT杂谈】无法填充父窗口的splitter
2018-06-17 20:51:04来源:未知 阅读 ()
搞界面调整,用到了动态分隔控件,但这个控件却没有填充到父类的全部范围。(如下图,程序为全屏)
窗口布局如下
GroupBox
┗━ 纵向结构
┗━ 横向结构
┗━ pushbutton * n
┗━ Splitter
┗━ ListView
┗━ GraphicsView
void ListTopology::setSize(const QSize & size) { m_ctrSplitter->resize(size); ///新加入解决问题的代码 m_ctrWellList->resize(QSize(size.width()*(1.0 / 7), size.height())); m_ctrTopology->resize(QSize(size.width()*(6.0 / 7), size.height())); #ifdef _DEBUG QSize NewSize = m_ctrWellList->size(); WGDebug("topology size width:" << NewSize.width() << ", height:" << NewSize.height()); NewSize = m_ctrTopology->size(); WGDebug("topology size width:" << NewSize.width() << ", height:" << NewSize.height()); #endif }
之前没有加入解决问题的代码在设置控件大小的时候忘记设置分割器控件的大小导致无法完全填充父控件的全部尺寸。
以下为该widget初始化代码。
ListTopology::ListTopology(QWidget *parent/* = Q_NULLPTR*/) : QWidget(parent) { m_ctrSplitter = new QSplitter(Qt::Horizontal, this); m_ctrWellList = new WGTreeView(m_ctrSplitter); m_ctrTopology = new QGraphicsView(m_ctrSplitter); // 将比例设置为 1:7 m_ctrSplitter->setStretchFactor(0, 1); m_ctrSplitter->setStretchFactor(1, 7); }
以下为调用窗口时的替换组件代码:
void MainWindow::CreateWell() { QSize size = m_ctrTabWidget->size(); m_ctrLayoutMain->replaceWidget(m_ctrTabWidget, m_TopologyView); m_TopologyView->resize(m_ctrTabWidget->size()); m_TopologyView->setSize(size); }
问题思考:
在QT的整个体系中具有resize的函数,并且在创建时也已经确立了父子的从属关系,为什么在调整大小的时候仍然需要自己设置,还是由于我自己的代码失误导致了这种关系链的断裂,留待以后深入研究
----------------------------------2018.4.12 底线在这里 ----------------------------------------------------------------------------
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 无法正确通过算法题目都是哪些原因造成的? 2020-04-05
- Qt5 error LNK2019 无法解析的外部符号的解决办法 2020-02-14
- 编程杂谈——使用emplace_back取代push_back 2019-10-17
- nginx静态资源文件无法访问,403 forbidden错误 2018-06-27
- 不重新发送信息,则无法刷新网页... ...点击取消查看正常的 2018-06-18
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash