xinzhiyounizhiyouni的专栏

在QT开发过程中,有时候会遇到这样的问题,当我们自己创建了一个Layout对象以后,使用QWidget的setLayout方法,将这个Layout对象应用到窗口中的时候,发现窗口上没有我们添加的控件,比如,QMainWindow就是一个例子,还有QToolBar也是这样,还有其他的QT预定义的别的窗口类有时候也会遇到这样的情况。

之所以出现这样的情况,是因为这个窗口类中,已经有了一个Layout对象了,这时候,当你再setLayout的时候,就是无效的,这是有三个办法,,一个办法是调用layout()方法,返回这个窗口内部的Layout的对象,然后删除它,再调用setLayout设置自己的Layout对象,还有一个办法,就是直接使用这个窗口内部的Layout对象,第三个方法,就是直接创建其子窗口,在这个子窗口中使用Layout对象,如,在QMainWindow中,我们通常创建一个继承于QWidget的窗口对象,然后调用setCentralWidget方法来安装这个窗口,然后在这个窗口中使用自己的Layout。

要想捉大鱼,不能怕水深。要想摘玫瑰,就得不怕刺。

xinzhiyounizhiyouni的专栏

相关文章:

你感兴趣的文章:

标签云: