Qt中为Label控件添加滚动条问题

无事不翻书 2014-09-17 10:09:20
问题描述如下:我在主窗口中布局了两个子窗口,在其中一个子窗口中布局了一个Label控件用于显示图像,并具有对图像进行缩放的功能,当图像放大超出其父窗口的尺寸时希望会自动出现滚动条,因此我在布局中添加了一个scrollArea控件,然后把label控件放到该scrollArea中,但是缩放时并无滚动条出现,效果图如下:(希望大牛们给指点一下,谢谢!)
...全文
2530 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
无事不翻书 2014-09-19
  • 打赏
  • 举报
回复
谢谢大家的回答!主要问题还是出在对QScrollArea尺寸的设置上,采用desinger设计布局窗体时,要给拖入的QScrollArea控件设定一个最小值,这样当label上显示的图片大于这个设置的最小尺寸时,QScrollArea控件就自动出现了滚动条;如果纯代码添加的话可以参考Marcelxx的方法;具体可参考如下网址:http://jingyan.baidu.com/article/546ae18563b1cd1149f28cc5.html
无事不翻书 2014-09-18
  • 打赏
  • 举报
回复 1
你好!Qt自带的例子我已经测试过了,但是在我的UI框架下不能用;例子中是在主窗口中添加scrollArea控件和Label控件,然后将 scrollArea设置成了setCentralWidget,我现在是在主窗口中布局了两个子窗口,想在其中一个子窗口中实现类型Qt自带图像浏览示例的功能,就不可以了;另外我现在的label是布局在tabwidget控件中的,该控件有一个 usesScrollButton的属性,应该也具有自带滚动条的功能,但是调试时并未有滚动条出现;希望能给指点下是否还有别的方法可以实现,谢谢!
Marcelxx 2014-09-18
  • 打赏
  • 举报
回复
代码:将QLabel添加到QScrollArea中就行了,同时还有一点就是QLabel的大小比QScrollArea大,才能显示出滚动条。 自己优化下,应该能满足你的要求了!!

	QTabWidget *tabwidget = new QTabWidget;
	QScrollArea *scrollArea = new QScrollArea;
	QLabel *widget = new QLabel;
	widget->resize(400,400);
	scrollArea->setWidget(widget);
	tabwidget->addTab(scrollArea,"page1");
	tabwidget->show();
foruok 2014-09-17
  • 打赏
  • 举报
回复
QLabel 就木有滚动条,你把它加到有滚动条的Widget中,比如QMainWindow,就可以有滚动条,而且Qt带一个使用QLabel浏览图片的示例,可以显示滚动条。
yiqie520asd 2014-09-17
  • 打赏
  • 举报
回复
缩放大小时 label的尺寸没有变化,所以没有滚动条

16,240

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧