我正在尝试将结构写入tempGroupFileinto GroupFile。fwrite()写入时返回1,但实际上文件中没有写入任何数据GroupFile。函数printRec()在屏幕上打印出结构。data是结构变量。这些操作后文件GroupFile为空。代码:
GWTemp = fopen(tempGroupFile, "rb");
GW = fopen(GroupFile, "wb");
if((GW == NULL) || (GWTemp == NULL))
{
puts("Failed to open file.");
fflush(stdin);
getchar();
return 0;
}
while(fread(&data, sizeof data, 1, GWTemp))
{
if(fwrite(&data, sizeof data, 1, GW))
{
printRec(data);
}
}
Run Code Online (Sandbox Code Playgroud) 我的问题如下:我需要创建包含QStateMachine实例的类。此类应具有插槽,您可以通过这些插槽“询问”状态机以转换到另一个状态。如果转换成功,我的班级应该发出有关它的信号。我将如何实施呢?类应具有根据特定插槽调用发出特定信号的能力。这是一个小类的例子:
class MyClass : public QObject
{
Q_OBJECT
public:
explicit MyClass(QObject *parent = 0)
{
mStateMachine = new QStateMachine(this);
QState *s1 = new QState(mStateMachine);
QState *s2 = new QState(mStateMachine);
QState *s3 = new QState(mStateMachine);
s1->addTransition(); // Transition to s2
s2->addTransition(); // Transition to s3
s3->addTransition(); // Transition to s1
mStateMachine->setInitialState(s1);
mStateMachine->start();
}
signals:
toS1();
toS2();
toS3();
public slots:
slotToS1()
{
/* post event to state machine about
transition to state s1,
if transition was successful,
then emit toS1() signal. */ …Run Code Online (Sandbox Code Playgroud) 我创建了一个包含按钮的项目.我正在尝试使用此按钮关闭项目的父窗口,但是当我单击该项目时,我收到此消息:
TypeError:对象的属性'close'QQuickRootItem(0x1d8efed8)不是函数
你能帮帮我吗?
项目代码:
import QtQuick 2.4
Item {
id: backButton
ItemForButton{
id: baseButton
text: "Back"
onClicked: {
backButton.parent.close()
}
}
}
Run Code Online (Sandbox Code Playgroud)
窗口代码:
Window {
id: window
visible: true
BackButton {
}
x: 30
y: 30
}
Run Code Online (Sandbox Code Playgroud) 我试图在 main.qml 文件中使用 idcontainerItem在主窗口中定位具有 id 的项目mainWindow。但是我在输出中收到了这条消息:
无法将 QQuickWindowQmlImpl 分配给 QQuickItem
消息指向字符串anchors.fill: mainWindow。我的代码:
import QtQuick 2.4
import QtQuick.Window 2.2
Window {
visible: true
color: "black"
id : mainWindow
width: 360
height: 360
Item {
anchors.fill: mainWindow
id: containerItem
}
}
Run Code Online (Sandbox Code Playgroud)
我将非常感谢您的帮助!