小编Mal*_*vel的帖子

QML ListView过滤器项

我有一个ListView表.我想添加一些过滤器按钮来根据项目类型隐藏/显示该表的项目.最简单的方法是设置项委托的可见属性.但是,隐藏的项目仍计入listView.contentHeight或listView.visibleArea.heightRatio.因此,这些值在滚动时会发生变化,并影响滚动条的高度和位置,它会折叠,展开,跳转无序.

其他问题是在listView中,如果选择了一个项目,则无法知道其索引,例如它看起来像是在表中的第二位,但实际上由于不可见的项目,它的索引更高.如果根本不计算隐形物品,那可能会很好.

请帮忙解决这个问题.谢谢你们.

ListView{
  id: listView
  delegate: itemdelegate
}

Component{
  id: itemdelegate
  Item{
    visible: model.type === filteredType ? true: false
  }
}
Run Code Online (Sandbox Code Playgroud)

listview filter qml

7
推荐指数
1
解决办法
5776
查看次数

指向联合成员的指针

我有一个结构:

struct TypeValue{
 u8 type;
 union{
   u8 u8value;
   s8 s8value;
 }value;
}
Run Code Online (Sandbox Code Playgroud)

根据类型 var 我们可以有值 fromu8values8value。现在我有一个结构TypeValue,我想获得指向value元素的空指针(不关心指针类型),哪个是正确的:

void *ptr = &typevalue.value (1)
OR
void *ptr = &typevalue.value.u8value (2)
Run Code Online (Sandbox Code Playgroud)

(将其放入 for 循环中以根据类型找到正确的值)

当然 (2) 是一种正确的方法,但我必须遍历数据类型才能获得指向正确值的正确指针。但问题是(1)是否正确,因为我想知道指向联合的指针是否等于指向其元素的指针?大/小端会影响结果吗?

c pointers member unions

6
推荐指数
1
解决办法
4404
查看次数

在C中初始化一个结构

我有一个与C中的结构初始化有关的问题.我有一个结构:

struct TestStruct
{
u8 status;
u8 flag1;
u8 flag2;
};
Run Code Online (Sandbox Code Playgroud)

我想要一个泛型函数/宏来初始化这个结构并设置一个参数的值,例如status = 1,简单的方法是:

TestStruct t = {};
t.status = 1;
Run Code Online (Sandbox Code Playgroud)

但是,通过执行此操作,我将状态值设置为两次,在init函数中首先设置为0,然后将其设置为1(优化没有帮助?).
(请不要告诉我t = {1,0,0}我正在寻找一种通用方法)
我正在考虑init函数中的一个宏,例如:

#define INIT_TESTSTRUCT (param, value) \
{ .status=0, .flag1=0, .flag2=0, .param=value }
TestStruct t = INIT_TESTSTRUCT(status, 0);
Run Code Online (Sandbox Code Playgroud)

但是,编译器给出错误"初始化字段被覆盖",因为我已经设置了状态值两次.

请帮助指出如何改变宏来实现我想要的,非常感谢.

c struct init c-preprocessor

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

for循环条件始终为true

我在C中有一个For循环:

u8 i;
for (i=0; i <= 255; i++)
{
    //code
}
Run Code Online (Sandbox Code Playgroud)

现在编译器抱怨"由于数据类型的范围有限,比较总是正确的"我知道255是u8 max但是for循环必须有条件.那我应该放在那里?谢谢.

c types for-loop range

4
推荐指数
2
解决办法
739
查看次数

标签 统计

c ×3

c-preprocessor ×1

filter ×1

for-loop ×1

init ×1

listview ×1

member ×1

pointers ×1

qml ×1

range ×1

struct ×1

types ×1

unions ×1