less than 1 minute read

1 控件指南

  1. listview 和 listwidget 的区别
    listview 基于 model,需要自己建模保存数据,功能强大;但是需要操作熟练;
    listwidget 是基于 item 的,已经定义好数据模型了,直接添加项就行,易用;

2 常用操作

  1. 显示视频/图像
    用 label 显示,可以先放置一个 Vertical Layout、Horizontal Layout,然后动态添加画布——label,更自由;

  2. 在 list 中放置一系列复选框
    • ListWidget 中添加按钮和 CheckBox
      code
    • listview 中添加按钮和 CheckBox
      android
  3. 让所有控件占满整个窗口
    右击空白出——>布局——>grid layout;
    所有控件会自动调整大小;如果对大小不满意,可以设置每个控件的属性,主要有 sizePolicy、minimumSize、maxmumSize;
    如果设置属性后没有达到预期效果,就添加弹簧 space 来调整;

  4. 进度条
    显示文字: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);
    }
    
  5. table 单元格状态设置
    编辑状态设置

3 主题操作

  1. 环形进度条

http://www.smiao.net/topic/5cc9c8d2182efd0d1cf1679a

  1. 实现视频播放
    QMediaPlayer
    QLabel;

  2. 扁平化设计

https://blog.csdn.net/silangquan/article/details/40000841


TOP

附录

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