标签: qt5

Qt3D是Qt5的一部分吗?

我在Windows中安装了Qt5库,但Qt助手中没有关于Qt3D的文档.Qt3D是Qt5的一部分还是已从发行版本5中删除?

qt qt5 qt3d

15
推荐指数
2
解决办法
4943
查看次数

QListView选择因键盘活动而发生变化时发出信号?

我有一个QTialog,用QT Designer创建,看起来像这样: 对话

左侧的服务器列表是带有QStringListModel的QListView.通过将视图的激活(QModelIndex)信号连接到对话框中的插槽功能,鼠标单击列表视图中的项目将使用所选项目的信息更新表单.

但是,向上或向下按键盘也会更改所选项目,但不会发出任何信号,因此表单不会更新以匹配所选项目.怎么解决这个问题?

c++ qt qlistview qt5

15
推荐指数
1
解决办法
1万
查看次数

将QML信号连接到C++ 11 lambda插槽(Qt 5)

将QML信号连接到常规C++插槽很容易:

// QML
Rectangle { signal foo(); }

// C++ old-style
QObject::connect(some_qml_container, SIGNAL(foo()), some_qobject, SLOT(fooSlot()); // works!
Run Code Online (Sandbox Code Playgroud)

但是,无论我尝试什么,我似乎都无法连接到C++ 11 lambda函数槽.

// C++11
QObject::connect(some_qml_container, SIGNAL(foo()), [=]() { /* response */ }); // fails...
QObject::connect(some_qml_container, "foo()", [=]() { /* response */ }); // fails...
Run Code Online (Sandbox Code Playgroud)

两次尝试都失败并出现函数签名错误(没有QObject :: connect重载可以接受这些参数).但是,Qt 5文档暗示这应该是可能的.

不幸的是,Qt 5示例总是将C++信号连接到C++ lambda插槽:

// C++11
QObject::connect(some_qml_container, &QMLContainer::foo, [=]() { /* response */ }); // works!
Run Code Online (Sandbox Code Playgroud)

这种语法不适用于QML信号,因为QMLContainer :: foo签名在编译时是未知的(并且手动声明QMLContainer :: foo会破坏首先使用QML的目的.)

我正在尝试做什么?如果是这样,QObject :: connect调用的正确语法是什么?

c++ qt signals-slots c++11 qt5

15
推荐指数
2
解决办法
5167
查看次数

在qt5的qtquick 2.0中渲染自定义opengl

我正在寻找一种方法来在qtquick 2.0项目中呈现我的自定义opengl调用.为了给你一些上下文:我有一个使用opengl进行渲染的C++ 3d引擎.目标是让它在qtquick 2.0 UI中呈现.

我发现的是pre qt 5.0(qtquick 2.0)你会使用QtGlWidget并将其嵌入到QDeclarativeView中.我发现的另一种方法是使用QtDeclarativeItem并覆盖void QDeclarativeItem :: paint(QPainter*p,const QStyleOptionGraphicsItem*o,QWidget*w)方法.

据我了解,这是不可能的,因为QtQuick 2.0使用基于OpenGl的新渲染器.因此,它似乎不像重写油漆方法那么容易.

有谁知道如何实现一个允许渲染我的opengl调用的QQuickItem?

opengl qt qt-quick qt5

14
推荐指数
2
解决办法
6118
查看次数

如何在VS 2012中使用Qt5和Qt Creator 2.6.1与编译器?

官方下载现在仅包括VS 2010的Qt库5.0.0.我在VS 2012 Express中尝试了它们,但收到错误消息"错误:LNK2038:检测到'_MSC_VER'不匹配:值'1600'与值'1700'不匹配......"

我是否必须在VS 2012中安装VS 2010或编译Qt5的完整源代码?

更新:我的IDE是Qt Creator 2.6.1.我只在VS 2012中使用C++编译器,因为在官方下载中还没有用于minGW的Qt库5.0.0 .

UPDATE-2(2013-1-1):今天看到它,官方博客说:

我们还在为5.0系列做一些事情.我们有想要解决的错误.我们目前没有MinGW的二进制包(因为WebKit尚未使用它)和MSVC 2012(您需要从源代码编译),我们将尽快提供这些包.目前的计划是在1月底之前的某个时间发布第一个补丁级别5.0.1.

UPDATE-3(2013年1月31日): 说到最后,但只增加的Qt 5.0.1 MinGW的4.7.

UPDATE-4(2013-7-06):经过漫长的等待,Qt 5.1.0 for Windows 32-bit(VS 2012,511 MB)增加了.

c++ qt qt-creator qt5 visual-studio-2012

14
推荐指数
1
解决办法
1万
查看次数

使用动态链接在Linux上交叉编译Windows的Qt应用程序

为了符合Qt的LGPL许可证,使用Qt库的应用程序必须使源代码可用或动态链接到Qt(如果我用这几个字正确地得到了它).

所以我想创建一个完全正确的闭源应用程序.另外,我想在Linux(目前是Xubuntu 12.04)上使用支持C++ 11的g ++/MinGW来开发Windows二进制文件.我按照这个有用的指南来完成后者.但正如指南还指出的那样,创建了静态链接的可执行文件.

由于我使用MXE自动下载和构建Qt库(版本5.0),因此我没有太多机会影响该过程.所以我的问题是,如何创建Qt库和相应应用程序的动态链接版本?

qt cross-compiling dynamic-linking qt5 mxe

14
推荐指数
3
解决办法
7105
查看次数

Qt5转发信号

使用旧语法,可以转发信号,例如:

connect(sender, SIGNAL(valueChanged(QString,QString)), this, SIGNAL(updateValue(QString,QString)));
Run Code Online (Sandbox Code Playgroud)

我喜欢使用新的Qt5语法.是否可以使用新语法转发信号?

qt qt5

14
推荐指数
1
解决办法
5344
查看次数

QT5 QPlatformNativeInterface和HWND

使用Qt5(来自WId)的Windows上获取HWND的答案之一中,建议使用QPlatformNativeInterface以恢复本机窗口处理程序.

要访问QT标头,尽管示例使用其完整路径:

#include <QtGui/5.0.0/QtGui/qpa/qplatformnativeinterface.h>
Run Code Online (Sandbox Code Playgroud)

当然,这不是一个明确的解决方案.有没有办法使用QT的默认包含系统包含QPlatformNativeInterface

请注意,都没有

#include <QPlatformNativeInterface> 
Run Code Online (Sandbox Code Playgroud)

工作(在默认QT构建期间不生成此文件)

也不

#include <QGuiApplication>
Run Code Online (Sandbox Code Playgroud)

作品(仅包含QPlatformNativeInterface的前向声明 )

hwnd wid qtgui qt5

14
推荐指数
3
解决办法
8398
查看次数

QLocalSocket是否真的用于namedpipes

根据Qt文档,如果我们想在Windows上使用命名管道,我们可以使用QLocalSocket.我正在用Qt编写服务器和客户端程序.如果我尝试使用WIN32 API在管道中写入一些消息,Qt客户端不会显示它.此外,如果客户端再次使用WIN32 API进行写入,则Qt服务器不会回显发送的消息.QLocalSocket真的推荐用于命名管道吗?

这是Win32 Server代码

     wcout << "Creating an instance of a named pipe..." << endl;
    // Create a pipe to send data
    HANDLE pipe = CreateNamedPipeW(
        L"\\\\.\\pipe\\ServicePipe", // name of the pipe
        PIPE_ACCESS_OUTBOUND, // 1-way pipe -- send only
        PIPE_TYPE_BYTE, // send data as a byte stream
        100, // only allow 1 instance of this pipe
        0, // no outbound buffer
        0, // no inbound buffer
        0, // use default wait time
        NULL // use default security attributes
        ); …
Run Code Online (Sandbox Code Playgroud)

c++ qt qlocalsocket qt5

14
推荐指数
1
解决办法
5646
查看次数

QML窗口调整大小/移动闪烁

我正在开发一个简单的QML应用程序,我注意到,与QML窗口相比,调整大小和移动窗口会产生难看的闪烁QtWidgets.

所以我创建了2个测试应用程序来显示差异:

QWidgets:

在此输入图像描述

QML:

在此输入图像描述

正如您所看到的那样QML,应用程序的版本闪烁得非常难看,而QtWidgets一个版本很干净.当你的用户界面越来越复杂时,现在这变得非常难看.

你对此有什么了解吗?这是一个错误吗?针对此问题是否有任何修复/解决方法?

qt qml qt-quick qt5 qtquickcontrols

14
推荐指数
2
解决办法
3511
查看次数