小编ymo*_*eau的帖子

Qt 占碑死了吗?

我知道他们在二月份宣布它将在明年过渡到社区开发的模型......但现在,我根本无法在他们的网站上找到它,更不用说应该的 4.5 版本了将于本月发布。

我即将开始一个主要项目的 GUI 部分,虽然我考虑过使用 Qt Jambi,但我对于是否要对显然已被放弃的产品创建主要依赖项感到犹豫。有谁知道这个的真实状况吗?我应该放弃并使用 Swing 吗?

java swing qt qt-jambi

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

Qt moc.exe没有生成*.moc文件

我正在尝试构建qtestlib/tutorial1示例,但是当我运行时没有生成testqstring.moc文件nmake(我在Windows XP SP3上运行Qt 4.5.2).
我将testqstring.cpp从tutorial目录复制到我的构建目录(C:\ sandboxes\testqstring),并从Qt命令提示符运行我的MS Visual Studio 8安装中的vsvars32.bat文件来添加VS环境变量.

根据教程,我应该运行:

> qmake -project "CONFIG += qtestlib"
> qmake
> nmake
Run Code Online (Sandbox Code Playgroud)

当我这样做时,输出nmake是:

C:/Apps/Qt/2009.03/qt/bin\moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_TESTLIB_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"....\Apps\Qt\2009.03\qt\include\QtCore" -I"....\Apps\Qt\2009.03\qt\include\QtGui"-I"....\Apps\Qt\2009.03\qt\include\QtTest"-I"....\Apps\Qt\2009.03\qt\include"-I"." -I"....\Apps\Qt\2009.03\qt\include\ActiveQt"-I"debug"-I"....\Apps\Qt\2009.03\qt\mkspecs\win32-g ++"-D__GNUC__ - DWIN32 testqstring.cpp -o debug\testqstring.moc

g ++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_TESTLIB_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"....\Apps\Qt\2009.03\qt\include\QtCore"-I" ....\Apps\Qt\2009.03\qt\include\QtGui"-I"....\Apps\Qt\2009.03\qt\include\QtTest"-I"....\Apps\Qt\2009.03\qt\include"-I"." -I"....\Apps\Qt\2009.03\qt\include\ActiveQt"-I"debug"-I"....\Apps\Qt\2009.03\qt\mkspecs\win32-g ++"-o debug\testqstring.o testqstring.cpp

testqstring.cpp:63:27:testqstring.moc:没有这样的文件或目录
NMAKE:致命错误U1077:'C:\ Apps\Qt\2009.03\mingw\bin\g ++.EXE':返回代码'0x1'停止.
NMAKE:致命错误U1077:'C:\ PROGRA~1\MICROS~3\VC\BIN \nmake.exe':返回代码'0x2'停止.

所以,我可以看到正在调用moc.exe来生成debug/testqstring.moc,但是从不生成该文件.

感谢您提供的任何和所有指导.

qt qmake nmake

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

QML数组未定义检查

我在QML中得到一个数组未定义的错误,我想知道什么会修复这个错误.这是当前的代码:

opacity: mBitField[index]
Run Code Online (Sandbox Code Playgroud)

每隔一段时间它会说不能分配undefinedopacity我,我想知道这个修复是否有效:

opacity: mBitField[index] == "undefined" ? 0 : mBitField[index]
Run Code Online (Sandbox Code Playgroud)

基本上我想说的是如果数组是未定义的,可以分配一个0,opacity否则在数组中分配什么.

qt qml

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

使用QSS悬停父QFrame时如何设置子QLabels的颜色?

我正在尝试使用样式表在 QFrame 内设置 2 个标签的悬停状态颜色,但无论是否存在实际悬停,框架都会采用悬停状态:

看截图: 在此处输入图片说明

我有一个带有 QLabels 的 QFrame。我将默认颜色设置为绿色和紫色。当我将鼠标悬停在 QFrame 上时,两个标签的颜色都应该变成红色。

完全相同的CSS没有工作的HTML,但我似乎无法将其与QT样式表开始工作。

div{background-color:black; width:200px; height:100px;}

#label1{color: green;}
#label2{color: purple;}

div:hover #label1 {color: red;}
div:hover #label2 {color:red;}
Run Code Online (Sandbox Code Playgroud)

qt stylesheet qtstylesheets

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

如何访问qml应用程序的原生样式?

我正在使用qml进行应用程序,我非常喜欢它.但有些事情我无法弄清楚.我正在搜索类似QML SystemPalette的内容,但是针对特定元素的样式.我希望有一些看起来像这样的东西:

Button {
    SystemStyles { id: styles }

    text: "A button"
    style: styles.button

}
Run Code Online (Sandbox Code Playgroud)

但如果没有办法做到这一点,我怎样才能构建原生外观的桌面应用程序?

qt mobile-application qml

5
推荐指数
0
解决办法
707
查看次数

Qt Creator 使用 cmake 自动完成

在 Qt Creator 中,我删除了 qmake 步骤,并添加了我自己的 cmake 步骤和 CMakeLists.txt 文件。现在,对于我在项目中内部定义的任何类,自动完成功能都可以工作。例如,我的自定义类的类名以不同的颜色显示,当我将鼠标悬停在变量上时,它会提供有关该变量的详细信息。

但是,对于我在项目中使用的任何第三方库,自动完成功能不起作用。这些类以标准白色显示,当我将鼠标悬停在该库中的变量上时,不会出现任何内容。但这些库在 CMakeLists.txt 中定义正确,并且我的程序可以正常编译和运行。因此,Qt Creator 最终可以找到这些库,但在代码编辑期间无法找到自动完成功能。解决办法是什么?

qt cmake qt-creator

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

问:如何确定QScrollArea中的小部件是否可见?

有人建议我重新实现QWheelEvent处理程序并检查每个子窗口小部件visibleRegion是否为0.

还有更好的建议吗?

c++ qt qscrollarea

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

是否可以将 unique_ptr 存储在 QPairs 的 QList 中?

为了避免大量不必要的复制,我试图将 unique_ptr 存储在一对列表中。我正在使用一个简单的类 Test,它带有一个 QString;

我正在使用 VS2013 和 Qt5.4

using std::unique_ptr;

QList<QPair<unique_ptr<Test>, unique_ptr<Test>>> list;

auto a = std::make_unique<Test>("a");
auto b = std::make_unique<Test>("b");

// First make a pair
auto pair = qMakePair(std::move(a), std::move(b));      // Fails
// Error C2280 - attempting to reference a deleted function
Run Code Online (Sandbox Code Playgroud)

由于失败,我尝试了:

QList<std::pair<unique_ptr<Test>, unique_ptr<Test>>> list;
auto pair = std::make_pair(std::move(a), std::move(b)); // Succes
list.append(std::move(pair)); // Fails
// Error C2280 - attempting to reference a deleted function
Run Code Online (Sandbox Code Playgroud)

由于失败,我完全改为 STL 容器:

std::list<std::pair<unique_ptr<Test>, unique_ptr<Test>>> list;
auto pair = make_pair(std::move(a), std::move(b)); // …
Run Code Online (Sandbox Code Playgroud)

c++ qt stl unique-ptr c++11

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

如何测试 Qt SCXML 状态机

我正在尝试使用 Qt 测试框架验证状态机的行为。我只是不明白我应该如何测试 Qt SCXML 实现。当然有QSignalSpy,但这仅适用于不需要事件循环运行的信号/斜率。我本质上想做的是:

myStateMachine.submitEvent("MyEvent");
// Run event loop
// Check result
Run Code Online (Sandbox Code Playgroud)

我尝试QCoreApplication::processEvents()这样做有时会奏效,但有时在调用processEvents(). 我想我可能会触发一个无限循环。谷歌搜索也没有帮助,但必须有一种方法可以正确地做到这一点。

qt scxml

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

如何合成按键事件?

我可以通过 Qt 中的回调函数从 HAL 获取键值。为该键创建了事件

QKeyEvent *event = new QKeyEvent (QEvent::KeyPress, 
                                  inputKey.keyValue, 
                                  Qt::NoModifier);
Run Code Online (Sandbox Code Playgroud)

注意:inputKey.keyValue从 HAL 层接收的键值。

现在我需要在 Qt 中注册此按键事件,以便如果 IR Remote 中发生任何按键,则以相应的形式keyPressEvent(e)event(e)将被调用。并且根据按键,将执行特定的操作。

注意:有不止一种形式,其中按键事件将被触发并且有不止一种按键“Page_Up,Page_Down,Ok Key等等......”

尝试调用 Postevent() 和 connect(.......) 但没有任何帮助我。KeyPressEvent() 没有被执行。

c++ qt qkeyevent qevent

4
推荐指数
1
解决办法
8497
查看次数