//方法1:调用load后获取
camera = new QCamera(this);
//先需要载入才能获取到对应参数
camera->load();
//输出当前设备支持的分辨率
QList<QSize> sizes = camera->supportedViewfinderResolutions();
emit resolutions(sizes);
//重新设置分辨率
QCameraViewfinderSettings set;
set.setResolution(cameraWidth, cameraHeight);
camera->setViewfinderSettings(set);
//获取完成后卸载
camera->unload();//方法2:通过事件信号获取
camera = new QCamera(this);
connect(camera, SIGNAL(stateChanged(QCamera::State)), this, SLOT(stateChanged(QCamera::State)));
void CameraThread::stateChanged(QCamera::State state)
{if (state == QCamera::ActiveState) {//输出当前设备支持的分辨率QList<QSize> sizes = camera->supportedViewfinderResolutions();emit resolutions(sizes);//重新设置分辨率QCameraViewfinderSettings set;set.setResolution(cameraWidth, cameraHeight);camera->setViewfinderSettings(set);}
}//QCamera没有指定设备名称的时候则采用默认的摄像机
camera = new QCamera(this);
//cameraName = @device:pnp:\\?\usb#vid_046d&pid_0825&mi_00#6&212eebd3&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global
//可以通过设备描述符来查找设备名称(唯一标识)
camera = new Utf8(), this);
void Widget::showEvent(QShowEvent *)
{static bool isLoad = false;if (!isLoad) {isLoad = true;//执行对应的处理}
}
//详细的Qt版本+编译器+位数
QString compilerString = "<unknown>";
{
#if defined(Q_CC_CLANG)QString isAppleString;
#if defined(__apple_build_version__)isAppleString = QLatin1String(" (Apple)");
#endifcompilerString = QLatin1String("Clang ") + QString::number(__clang_major__) + QLatin1Char('.') + QString::number(__clang_minor__) + isAppleString;
#elif defined(Q_CC_GNU)compilerString = QLatin1String("GCC ") + QLatin1String(__VERSION__);
#elif defined(Q_CC_MSVC)if (_MSC_VER > 1999) {compilerString = QLatin1String("MSVC <unknown>");} else if (_MSC_VER >= 1920) {compilerString = QLatin1String("MSVC 2019");} else if (_MSC_VER >= 1910) {compilerString = QLatin1String("MSVC 2017");} else if (_MSC_VER >= 1900) {compilerString = QLatin1String("MSVC 2015");} else if (_MSC_VER >= 1800) {compilerString = QLatin1String("MSVC 2013");} else if (_MSC_VER >= 1700) {compilerString = QLatin1String("MSVC 2012");} else if (_MSC_VER >= 1600) {compilerString = QLatin1String("MSVC 2010");} else {compilerString = QLatin1String("MSVC <old>");}
#endif
}//拓展知识 查看 QSysInfo 类下面有很多好东西
// qVersion() = QT_VERSION_STR
QString version = QString("%1 %2 %3").arg(qVersion()).arg(compilerString).arg(QString::number(QSysInfo::WordSize));
//格式化输出受到本地操作系统语言的影响//英文操作系统
//这样获取到的是Mon到Sun,英文星期的3个字母的缩写。
QDateTime::currentDateTime().toString("ddd");
//这样获取到的是Monday到Sunday,英文星期完整单词。
QDateTime::currentDateTime().toString("dddd");//中文操作系统
//这样获取到的是周一到周日。
QDateTime::currentDateTime().toString("ddd");
//这样获取到的是星期一到星期日。
QDateTime::currentDateTime().toString("dddd");//主动指定语言转换
//如果没有指定本地语言则默认采用系统的语言环境。
QLocale locale;
//QLocale locale = QLocale::Chinese;
//QLocale locale = QLocale::English;
//QLocale locale = QLocale::Japanese;//下面永远输出中文的周一到周日
String(QDateTime::currentDateTime(), "ddd");
//下面永远输出中文的星期一到星期日
String(QDateTime::currentDateTime(), "dddd");
//实例化数据库表模型
QSqlTableModel *model = new QSqlTableModel(this);
//指定表名
model->setTable("table");
//设置列排序
model->setSort(0, Qt::AscendingOrder);
//设置提交模式
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
//立即查询一次
model->select();
//将数据库表模型设置到表格上
ui->tableView->setModel(model);//测试发现过滤条件中除了可以带where语句还可以带排序及limit等
model->setFilter("1=1 order by id desc limit 100");//如果在过滤条件中设置了排序语句则不可以再使用setSort方法
//下面的代码结果是执行出错,可能因为setSort又重新增加了order by语句导致多个order by语句冲突了。
model->setSort(0, Qt::AscendingOrder);
model->setFilter("1=1 order by id desc limit 100");//通过setFilter设置单纯的where语句可以不用加1=1
model->setFilter("name='张三'");
//如果还有其他语句比如排序或者limit等则需要最前面加上1=1
//下面表示按照id升序排序,查询结果显示第5-15条记录。
model->setFilter("1=1 order by id asc limit 5,10");//多个条件用and连接
//建议任何时候用了setFilter则最前面写1=1最末尾加上 ; 防止有些地方无法正确执行。
model->setFilter("1=1 and name='张三' and result>=70;");//下面表示查询姓名是张三的记录,按照id字段降序排序,结果从第10条开始100条,相当于从第10条到110条记录。
model->setFilter("1=1 and name='张三' order by id desc limit 10,100;");//在第3行开始添加一条记录
model->insertRow(2);
//立即填充刚刚新增加的行,默认为空需要用户手动在表格中输入。
model->setData(model->index(2, 0), 100);
model->setData(model->index(2, 1), "张三");
//提交更新
model->submitAll();//删除第4行
model->removeRow(3);
model->submitAll();//总之有增删改操作后都需要调用model->submitAll();来真正执行,否则仅仅是数据模型更新了数据,并不会更新到数据库中。//撤销更改
model->revertAll();
本文发布于:2024-01-28 16:04:20,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17064290668599.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |