我知道他们在二月份宣布它将在明年过渡到社区开发的模型......但现在,我根本无法在他们的网站上找到它,更不用说应该的 4.5 版本了将于本月发布。
我即将开始一个主要项目的 GUI 部分,虽然我考虑过使用 Qt Jambi,但我对于是否要对显然已被放弃的产品创建主要依赖项感到犹豫。有谁知道这个的真实状况吗?我应该放弃并使用 Swing 吗?
我正在尝试构建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,但是从不生成该文件.
感谢您提供的任何和所有指导.
我在QML中得到一个数组未定义的错误,我想知道什么会修复这个错误.这是当前的代码:
opacity: mBitField[index]
Run Code Online (Sandbox Code Playgroud)
每隔一段时间它会说不能分配undefined给opacity我,我想知道这个修复是否有效:
opacity: mBitField[index] == "undefined" ? 0 : mBitField[index]
Run Code Online (Sandbox Code Playgroud)
基本上我想说的是如果数组是未定义的,可以分配一个0,opacity否则在数组中分配什么.
我正在尝试使用样式表在 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) 我正在使用qml进行应用程序,我非常喜欢它.但有些事情我无法弄清楚.我正在搜索类似QML SystemPalette的内容,但是针对特定元素的样式.我希望有一些看起来像这样的东西:
Button {
SystemStyles { id: styles }
text: "A button"
style: styles.button
}
Run Code Online (Sandbox Code Playgroud)
但如果没有办法做到这一点,我怎样才能构建原生外观的桌面应用程序?
在 Qt Creator 中,我删除了 qmake 步骤,并添加了我自己的 cmake 步骤和 CMakeLists.txt 文件。现在,对于我在项目中内部定义的任何类,自动完成功能都可以工作。例如,我的自定义类的类名以不同的颜色显示,当我将鼠标悬停在变量上时,它会提供有关该变量的详细信息。
但是,对于我在项目中使用的任何第三方库,自动完成功能不起作用。这些类以标准白色显示,当我将鼠标悬停在该库中的变量上时,不会出现任何内容。但这些库在 CMakeLists.txt 中定义正确,并且我的程序可以正常编译和运行。因此,Qt Creator 最终可以找到这些库,但在代码编辑期间无法找到自动完成功能。解决办法是什么?
有人建议我重新实现QWheelEvent处理程序并检查每个子窗口小部件visibleRegion是否为0.
还有更好的建议吗?
为了避免大量不必要的复制,我试图将 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) 我正在尝试使用 Qt 测试框架验证状态机的行为。我只是不明白我应该如何测试 Qt SCXML 实现。当然有QSignalSpy,但这仅适用于不需要事件循环运行的信号/斜率。我本质上想做的是:
myStateMachine.submitEvent("MyEvent");
// Run event loop
// Check result
Run Code Online (Sandbox Code Playgroud)
我尝试QCoreApplication::processEvents()这样做有时会奏效,但有时在调用processEvents(). 我想我可能会触发一个无限循环。谷歌搜索也没有帮助,但必须有一种方法可以正确地做到这一点。
我可以通过 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() 没有被执行。
qt ×10
c++ ×3
qml ×2
c++11 ×1
cmake ×1
java ×1
nmake ×1
qevent ×1
qkeyevent ×1
qmake ×1
qscrollarea ×1
qt-creator ×1
qt-jambi ×1
scxml ×1
stl ×1
stylesheet ×1
swing ×1
unique-ptr ×1