我是编程和尝试获取swipeview来动态添加页面的新手。我的main.qml在下面的代码中。我有静态显示的“设置”页面Serialsettings.qml。现在,我想添加其他qml页面。我要这样做的方法是,在我的设置页面中为每个qml设置复选框,如果它们是工单,则应将其添加到swipeview中。我该怎么做呢 ?
import QtQuick 2.7
import QtQuick.Window 2.2
import QtQuick.Controls 2.1
import QtQuick.Layouts 1.1
import com.powertune 1.0
ApplicationWindow {
visible: true
minimumWidth: 800
minimumHeight: 480
title: qsTr("PowerTune")
color: "black"
SwipeView {
id: view
currentIndex: 0
anchors.fill: parent
Item {
id: firstpage
SerialSettings{} // Loads Serialsettings.qml into SwipeView
}
//Add pages dynamically via Checkboxes in Serialsettings.qml
}
PageIndicator {
id: indicator
count: view.count
currentIndex: view.currentIndex
anchors.bottom: view.bottom
anchors.horizontalCenter: parent.horizontalCenter
}
}
Run Code Online (Sandbox Code Playgroud) 我用 C 编写了一些代码来读取 CAN 总线数据。当我读取 11 位 CAN ID 时,一切正常。当我尝试读取 29 位 ID 时,它会错误地显示 ID。
例子:
接收带有29位ID的消息:
0x01F0A020
并打印它
printf("%X\n", frame.can_id);
Run Code Online (Sandbox Code Playgroud)
它打印81F0A020。
11位ID消息
0x7DF
并打印它
printf("%X\n", frame.can_id);
Run Code Online (Sandbox Code Playgroud)
它正确打印7DF。
为什么会这样呢?
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <net/if.h>
#include <fcntl.h>
#include <inttypes.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <linux/can.h>
#include <linux/can/raw.h>
#define MAX_DATA_LEN 8
#define MAX_FIELDS 23
#define MAX_FIELD_LEN 64
#include <limits.h>
char data_str[MAX_FIELDS][MAX_FIELD_LEN];
int i;
int
main(void)
{
int …Run Code Online (Sandbox Code Playgroud)