您的位置:首页 > 编程语言 > Qt开发

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

2013-08-06 16:32 375 查看
    我是一个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().效果如下图


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息