Qt流式布局
最后显示的效果图1:
整体的UI设计布局
整体的UI布局比较简单,没有什么较为复杂的地方,所以就简单的说一下
1、流式布局的实现:
-
首先包含流式布局文件(这个文件Qt一般都会提供,直接在示例工程中搜索 Flow Layout Example )就可以看到相关的示例工程;其中就包含了源文件;
-
和使用水平,垂直布局一样,流式布局的使用方式如下:
QWidget *widget = new QWidget(NULL); FlowLayout *layout = new FlowLayout(widget); //创建流式布局 QPushButton* button = new QPushButton("测试"); QPushButton* button1 = new QPushButton("测试2"); layout->addWidget(button); //向布局中添加自定义控件 layout->addWidget(button1); widget->setLayout(layout);
2、点击QListWidget中的Item,右侧的QScroll Area就要将对应的窗口显示置顶位置;
- 在设计界面时,首先做好关联;例如可以将QListWidget中的Item文字内容设置为QScroll Area中子窗口的一个属性,如widget->setProperty(“WidgetName”,“A”);
- 处理QListWidget的Item点击事件,获取点击的Item内容;遍历QScroll Area中的所有在子控件(即所有使用了流式布局的窗口),根据窗口的自定义属性WidgetName来找到对应的子窗口,获取子窗口的Y坐标,widget->y();
- 设置QScrollArea中的当前位置ui->scrollArea->verticalScrollBar()->setSliderPosition(posy);;同理也是可以通过设置QScrollArea的水平和绘制滚动条的当前位置来实现让窗口水平/垂直居中的