Qt中QScrollArea类的简单使用心得

       平台:windows 64位

       Qt版本:5.5.1 MinGW 32bit

根据自己目前的需求简单说下怎么在QScrollArea滚动窗口中实现多个控件的滚动显示,先看看最终效果:

先说一下在QScrollArea滚动窗口中要添加控件要使用QScrollArea::setWidget(QWidget * widget)这个函数,当添加的控件显示范围大于scrollArea则会出现滚动条,但是从名字可以看出这个函数是用于设置一个QWidget,而不能用于不断的添加QWidget,所以这里面并不能像大家想的那样来直接实现上面的效果,而是需要创建一个自己的QWidget,再在其中来添加自己需要的控件。

下面给出代码看看,由于我的滚动窗口是已经用设计器添加到对话框上的,所以我直接用ui->scrollArea来调用,buttonListWidget是我重新实现的QWidget子类,等会在下面可以看到实现代码:

  1 buttonListWidget *buttonList = new buttonListWidget(this);
  2 buttonList->initWidget(strList);
  3 ui->scrollArea->setWidget(buttonList);

buttonListWidget类,其实内容不多,但是主要是掌握到方法:

buttonListWidget.h

  1 class buttonListWidget : public QWidget
  2 {
  3     Q_OBJECT
  4 public:
  5     explicit buttonListWidget(QWidget *parent = 0);
  6     void initWidget(QStringList& nameList);
  7
  8 signals:
  9
 10 public slots:
 11 };

buttonListWidget.cpp

  1 buttonListWidget::buttonListWidget(QWidget *parent) : QWidget(parent)
  2 {
  3
  4 }
  5
  6 void buttonListWidget::initWidget(QStringList &nameList)
  7 {
  8     QHBoxLayout *layout = new QHBoxLayout(this);
  9     foreach (QString str, nameList)
 10     {
 11         QPushButton *button = new QPushButton(str, this);
 12         button->setMinimumSize(button->size());
 13         layout->addWidget(button);
 14     }
 15     this->setLayout(layout);
 16 }
时间: 2024-11-03 05:32:23

Qt中QScrollArea类的简单使用心得的相关文章

Qt中QComboBox类的简单使用

QComboBox提供了下拉列表框的控件.下面简单介绍几个的方法和属性. (1)addItems void addItem(const QString &text, const QVariant &userData = QVariant()) void addItem(const QIcon &icon, const QString &text, const QVariant &userData = QVariant()) 在列表的最后一项添加一个文本内容为test

java中Color类的简单总结

java中Color类的简单总结 1.颜色的常识 任何颜色都是由三原色组成(RGB),JAVA中支持224为彩色,即红绿蓝分量取值 介于0-255之间(8位表示) 2.Color类中的常量 public final static Color black = new Color(0,0,0); public final static Color bule = new Color(0,0,255); . . 有很多这样的常量,可供我们直接类名去调用而不需要去实例化. 3.Color中的构造函数 pu

个人对QT中QBitArray类的剖析

我们知道Qt中的QBitArray类支持在位(bit)的层次上进行数据操作.本文剖析该类在二进制文件读写时的一些要点.另外,在Qt中,QDataStream类对于二进制文件的读写提供了诸多便利,需要注意的是QBitArray的读写依赖于QDataStream类. 使用QBitArray向文件中写数据: QFile file("C:\\Users\\lenovo\\Desktop\\测试"); file.open(QIODevice::WriteOnly);//只写 QDataStrea

Qt中QGraphics类坐标映射关系详解(有图有真相,实例讲解)

如果你英文足够好,可以参考Qt帮助文档中的:The Graphics View Coordinate System. --------------------------------------------------------------------------------------------------------------------------- 首先,先上显示界面图(Embeded dialog),下面就是以该实例讲解: 1.QGraphicsItem及其衍生类以及其他可作为图

关于Opencv2.4.x中stitcher类的简单应用

1.opencv2.4以上版本有stitcher类,可以简单方便的实现图像的拼接,目前只是简单的测试一下stitcher类的拼接功能,也是纠结了好长时间,最终发现是要在链接库中加上opencv_stitching249.lib(对于Release),opencv_stitching249d.lib(对于Debug)才行,不然会出现VS2013编译不成功,错误提示是:(注:红色数字249是当前opencv的版本号,根据你的opencv版本号,更改这个数值) 1>main.obj : error L

一.SalesForce中Schema类的简单介绍

一.Schema以及Schema NameSpace是什么 在SalesForce中Schema指的是应用程序中对象(Object)以及对象之间的各种关系.Schema NameSpace中包含了好多的类和方法,通过这些类和方法,可以访问Schema的一些基本信息. 二.Schema常用的类和方法 在Schema NameSpace中包含了很多的类以及方法,在此并不会对所有的类和方法做介绍,只会对其中几个类的几个方法做简单介绍. 1.Schema.getGlobalDescribe方法``这个方

2.关于QT中数据库操作,简单数据库连接操作,数据库的增删改查,QSqlTableModel和QTableView,事务操作,关于QItemDelegate 代理

 Linux下的qt安装,命令时:sudoapt-get install qt-sdk 安装mysql数据库,安装方法参考博客:http://blog.csdn.net/tototuzuoquan/article/details/39565783 如果行想进数据库开发,需要安装libqt5sql5-mysql.命令是: sudo apt-get install libqt5sql5-mysql 4 创建一个项目 要调用数据库,需要加上QT += gui widgets sql  也就是说要加

Spring中ClassPathXmlApplicationContext类的简单使用

一.简单的用ApplicationContext做测试的话,获得Spring中定义的Bean实例(对象).可以用: ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");RegisterDAO registerDAO = (RegisterDAO)ac.getBean("RegisterDAO"); 如果是两个以上:ApplicationContext

关于QT中QSqlQuery类一些函数的笔记

1 QSqlQuery::next() 从数据库的开头一直往下找,如果某一行存了数据则返回1,如果是1个空行,则返回02 QSqlQuery::value(0) 如果存入数据库的数据是00 11 11 11 11 则打印出来的是QVariant(QString, "00111111") 转成字符串类型 QSqlQuery::value(0).toString()则打印出来的结果为 00 11 11 11 113 QSqlQuery::value(1).toString() 打印出来的则