「QT」 控件使用
1 控件指南
- listview 和 listwidget 的区别
listview 基于 model,需要自己建模保存数据,功能强大;但是需要操作熟练;
listwidget 是基于 item 的,已经定义好数据模型了,直接添加项就行,易用;
2 常用操作
-
显示视频/图像
用 label 显示,可以先放置一个 Vertical Layout、Horizontal Layout,然后动态添加画布——label,更自由; - 在 list 中放置一系列复选框
-
让所有控件占满整个窗口
右击空白出——>布局——>grid layout;
所有控件会自动调整大小;如果对大小不满意,可以设置每个控件的属性,主要有 sizePolicy、minimumSize、maxmumSize;
如果设置属性后没有达到预期效果,就添加弹簧 space 来调整; - 进度条
显示文字:ProgressBar->setFormat(QString::fromLocal8Bit("当前进度为:%1%").arg(QString::number(dProgress, 'f', 1)))
繁忙指示:QProgressBar *m_pProgressBar = new QProgressBar(this); m_pProgressBar->setOrientation(Qt::Horizontal); // 水平方向 m_pProgressBar->setMinimum(0); // 最小值 m_pProgressBar->setMaximum(0); // 最大值
滑动:使用位置滑动时,要在更新值的地方做判断,要不然会陷入死循环;
if(ui->playerSlider->sliderPosition() != pos) { ui->playerSlider->setSliderPosition(pos); }
- table 单元格状态设置
编辑状态设置
3 主题操作
- 环形进度条
http://www.smiao.net/topic/5cc9c8d2182efd0d1cf1679a
-
实现视频播放
QMediaPlayer
QLabel; -
扁平化设计
https://blog.csdn.net/silangquan/article/details/40000841
附录
A 代码示例
1. listwidget 中放置 checkbox c++ 代码
QListWidget *list=new QListWidget;
QListWidgetItem *item=new QListWidgetItem(list,0);
item->setSizeHint(QSize(100,100));
QWidget *w = new QWidget(list);
QHBoxLayout *layout=new QHBoxLayout(w);
QPushButton *pushButton=new QPushButton(w);
QCheckBox *checkBox=new QCheckBox(w);
layout->addWidget(checkBox);
layout->addWidget(pushButton);
w->setLayout(layout);
w->show();
list->setItemWidget(item,w);
list->show();
Comments