小编sco*_*nov的帖子

QJsonObject :: insert与直接分配给QJsonValueRef相比?

我已经在Qt中使用JSON相当一段时间了,而且我总是按照示例中的方式进行操作。但是,我想知道与将项目添加到QJsonObject时使用的直接分配相比,对QJsonValueRef的直接分配实际上是否存在区别,即这些行:QJsonObject::insert

  • json["name"] = mName;
  • json.insert("name", mName);

有所不同还是仅仅是编码风格的问题?

c++ qt json

5
推荐指数
1
解决办法
765
查看次数

如何将信号作为函数参数传递?

所以我希望制作我们自己的通用继承复选框类,它能够在其构造函数中获取一些值,并以我们需要的方式弹出一个完全连接到我们模型的小部件.

目前我们在视图中做了类似的事情

connect(checkboxWidget, &QCheckbox::Clicked, this, &VMyView::Signal);
Run Code Online (Sandbox Code Playgroud)

单击复选框时,会从VMyView发出信号.

如果我想将该信号作为参数传递到我的新继承类中,并将其连接到自己的connect语句中,我该怎么做?

研究表明我可以传递一个const char*但是我得到了信号/插槽不匹配的编译错误.

CheckBox(View myView, const char* signal)
{
    connect(this, &QCheckBox::Clicked, myView, signal);
}
Run Code Online (Sandbox Code Playgroud)

返回Signal和slot参数不兼容的错误.我也试过SIGNAL(信号)同样的结果.

c++ qt

5
推荐指数
1
解决办法
2327
查看次数

Aframe 和 aframe-ar:在 div 中显示视频流而不是全屏

我正在使用aframe-ar,需要将视频流显示在与场景嵌入的同一div中。

我正在尝试使用默认场景:

<a-scene embedded arjs='sourceType: webcam; debugUIEnabled: false;'>
 <a-marker preset="hiro">
  <a-box position='0 0.5 0' material='color: black;'></a-box>
 </a-marker>
</a-scene>
Run Code Online (Sandbox Code Playgroud)

渲染的盒子成功嵌入到周围div,但我的网络摄像头的视频流是全屏的,并放置在其他 html 元素后面。

我还尝试明确指定相机,但这没有帮助!

简而言之:我想让视频也嵌入到周围的环境中div

  • A 型框架版本:0.8.0
  • 平台/设备:Chrome/台式电脑

我怎样才能做到这一点?

aframe

5
推荐指数
1
解决办法
2515
查看次数

如何在SQL Server Express表中保存QTime并将其读回?

我在SQL Server Express与字段的表name varchar(10)timeVar time我要保存的值QTime的变量time场.

这是我尝试过的:

QTime time = QTime::currentTime();
QString timeString = time.toString("hh:mm:ss");
QString query = QString("insert into timeHold(name,timeVar) values ('ABC','%2')").arg(timeString);

qry->prepare(query);
qry->exec();
Run Code Online (Sandbox Code Playgroud)

但是,我明白了QSqlQuery::value: not positioned on a valid record.

当我从SQL Server Management Studio将值插入表中时,insert into timeHold values('XYZ', '12:17:35')效果很好.令我惊讶的是,当我尝试从管理工作室读取存储在表中的值时,我能够获得名称字段,但不能获得时间字段.

这是我用来从表中读取值的代码:

QString query = QString("select * from timeHold");

qry->prepare(query);
qry->exec();
qry->first();

int noOfRecords = qry->numRowsAffected();

do {
    qDebug() << qry->value(0).toString();
    qDebug() << qry->value(1).toString();
} while (qry->next());
Run Code Online (Sandbox Code Playgroud)

代码生成以下输出:

"ABC"
"\u0017" …
Run Code Online (Sandbox Code Playgroud)

c++ qt sql-server-express

5
推荐指数
1
解决办法
125
查看次数

Rails 中的 ArgumentError('1' 不是有效类型)

我正在处理具有选择列表的表单:

<%= f.select :type, options_for_select(Property.types), {prompt: "Select Type of Property..."}, class: "form-control" %>
Run Code Online (Sandbox Code Playgroud)

type是我数据库中的一个整数。该Property.types是从拉列表enum中我的财产模型属性:

enum type: { Type_1: 1, Type_2: 2, Type_3: 3 }
Run Code Online (Sandbox Code Playgroud)

出于某种原因,在提交表单时,我收到一个错误:

ArgumentError ('1' is not a valid type): Completed 500 Internal Server Error in 10ms (ActiveRecord: 4.0ms)

我认为这是因为选定的列表值是作为字符串而不是整数提交的。

我正在使用 Rails v.5.2.1。

如何解决这个问题?

ruby-on-rails ruby-on-rails-5

5
推荐指数
1
解决办法
2509
查看次数

如何将 QStyle::standardIcon/standardPixmap 与 QStyle::StandardPixmap 一起使用?

在我的代码中,有一堆尝试QIconsQStyle标准像素图创建的调用,例如:

QIcon groupIcon;
groupIcon.addPixmap( style()->standardPixmap( QStyle::SP_DirClosedIcon ),
                     QIcon::Normal, QIcon::Off );
groupIcon.addPixmap( style()->standardPixmap( QStyle::SP_DirOpenIcon ),
                     QIcon::Normal, QIcon::On );
Run Code Online (Sandbox Code Playgroud)

虽然这可以正常工作,但使用模型的图标 Qt::DecorationRole会根据项目的展开状态显示打开或关闭的图标,但它有两个问题:

  1. 它对高 dpi 不友好,而且图标很小
  2. QStyle::standardPixmap被标记为已过时,并被QStyle::standardIcon描述为首选方法。

我不确定如何将上面的代码翻译成QStyle::standardIcon

QIcon groupIcon( style()->standardIcon( QStyle::SP_DirClosedIcon ) );
Run Code Online (Sandbox Code Playgroud)

对于封闭的项目效果很好,并且在 hidpi 上看起来很棒。但我不知道如何添加状态SP_DirOpenIcon。没有像“ QIcon::addIcon”这样的等效方法QIcon::addPixmap

这里采取的正确方法是什么,它是高 dpi 友好且面向未来的?

qt

5
推荐指数
1
解决办法
4466
查看次数

为什么按值传递 QStringView 比引用 const 更快?

我在Qt 的 Doc 中找到了这个:

QStringViews 应该通过值传递,而不是通过引用到常量:

他们给出了以下示例:

void myfun1(QStringView sv);        // preferred
void myfun2(const QStringView &sv); // compiles and works, but slower
Run Code Online (Sandbox Code Playgroud)

这怎么可能?

c++ qt

5
推荐指数
1
解决办法
651
查看次数

为什么Q_OBJECT破坏QDoc?

问题

从Qt 5.10升级到Qt 5.11之后,我开始遇到问题,无法使用QDoc为现有项目生成文档。

尽管源代码中存在相应的注释,但文档中缺少功能是许多问题之一。

研究

我设法将问题缩小到包含Q_OBJECT宏,如提供的代码示例所示(请参见下文)。

Qt文档中确实提到了这一点:

如果未由Cpp.ignoretokensCpp.ignoredirectives变量指定,则非标准构造(通常为宏)可能会导致错误的文档编制。

Q_OBJECT 但是不应被认为会引起问题,因为它会写得更远:

Q_OBJECT但是,该宏是一个例外:QDoc可以识别此特殊的非标准构造,因此无需使用Cpp.ignoredirectives变量进行指定。

无论如何,我都将其包含qt-cpp-defines.qdocconfqdocconf文件中。

我也尝试过手动添加Q_OBJECT到忽略列表

Cpp.ignoredirectives += Q_OBJECT
Run Code Online (Sandbox Code Playgroud)

但结果是一样的。

我体验Windows 10和Ubuntu 17下所描述的问题在Windows 7下我无法执行qdoc.exe在所有

qdocconf克服此问题的正确配置是什么?

最小的例子

为了快速重现(在实际情况下,声明和实现被拆分,并添加了适当的注释),请考虑以下设置:

oo

#include <QObject>

class Foo : public QObject
{
//  Q_OBJECT // <-- uncomment this to break QDoc
public:
    Foo() {}

    void boo() {}

protected:
    void moo() {}
};
Run Code Online (Sandbox Code Playgroud)

Foo.cpp

#include "Foo.h" …
Run Code Online (Sandbox Code Playgroud)

c++ qt qdoc qt5.11

5
推荐指数
1
解决办法
248
查看次数

是否可以将自定义小部件添加到 QListView 中?

我有一个很大的日志数据(100、1000、100000、...记录),我想以下列方式将其可视化:

在此处输入图片说明 在此处输入图片说明 在此处输入图片说明

为了避免性能和内存问题,我应该使用哪个小部件(例如QListView, QListWidget)以及如何使用?

c++ qt qlistview

5
推荐指数
1
解决办法
3990
查看次数

如何防止 QTableview 中过于激进的文本删除?

我有一个问题,Qt 中的文本删除在表格中过于激进,请参见图片。 在此输入图像描述

带有完整数字0.8888的单元格......自从显示QTableWidget以来我已经进行了编辑,其他的与创建QTableWidget时一样。看起来 elide 是根据较小的宽度计算的,实际上也是如此。当小部件变得可见时,如何防止这种情况并立即删除正确的文本?

简化代码以重现:

QTableWidget *tableWidget;
tableWidget = new QTableWidget(Dialog);
tableWidget->setGeometry(QRect(40, 20, 256, 192));
tableWidget->setRowCount(4);
tableWidget->setColumnCount(1);
tableWidget->setItem(0, 0, new QTableWidgetItem("0.234823489789234"));
Run Code Online (Sandbox Code Playgroud)

和结果

在此输入图像描述

请注意,我想避免自己进行删除,因为用户可以编辑该值。自己进行删除意味着在编辑开始时(也许通过委托)放回真正的值。会很复杂。

c++ qt qtablewidget qtablewidgetitem qt5

5
推荐指数
1
解决办法
2940
查看次数