在Qt4.8下为窗体添加滚动区域QScrollArea

来源:互联网 发布:数控车床编程例题 编辑:程序博客网 时间:2024/06/03 17:56

    我是一个Qt的初学者,可谓菜到了极点,最近做的一个东西要用到滚动区域,可惜网上查了很多资料,真正适合我的并不多,因为网上的东西基本上都是全代码实现的,可惜我做东西时,控件基本上都是在Qt的设计器里拖放的。不过折腾了一段时间后,勉强算是实现了,毕竟我是Qt菜鸟营中的菜鸟,相信我的实现方法肯定有不当的地方,还希望技术大牛们在看到我的这个笨拙的方法后,能给予批评指正。

    在我做的这个东西里,我想要实现的是:在程序主界面上点击一个按钮的时候,这个带有滚动区域的对话框就显示出来。

    首先,在类的头文件里,定义私有的QScrollArea的指针变量:

          QScrollArea *scroll;
    然后,在类的构造函数中,添加代码:
    scroll = new QScrollArea;      
    scroll->setWidget(ui->widget);
     
    可是,如何正常的显示出来,又出了问题,要是在构造函数里加上代码:scroll.show(),一运行程序,这个对话框就会显示出来,但是不加上scroll.show()的话,又完全没有滚动区域的效果。在该对话框的showEvent()里添加这句代码也会导致一运行程序,这个对话框就显示出来。最后,我想到了一个办法,那就是通过信号槽来实现。
    点击主界面的那个按钮时,发出显示该对话框的信号 show_IQdlg_sig(),在该对话框的类中定义槽函数 show_IQdlg_slot(),在该槽函数中添加代码 scroll.show()就行了。注意添加的不是this.show(),而是scroll.show().效果如下图

原创粉丝点击