Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 具有树组织项的Qt小部件_C++_Qt_Qtreeview_Qlistview - Fatal编程技术网

C++ 具有树组织项的Qt小部件

C++ 具有树组织项的Qt小部件,c++,qt,qtreeview,qlistview,C++,Qt,Qtreeview,Qlistview,我想有一个小部件与项目组织在树结构。但是,它应该在一行中查看,并且每个子树都应该用大括号表示。例如: 1。要素1 2。要素2 3。元素3(3.element314.element414{4.element435.element53}5.element516.element613.element324.element42)4元素4。元素5 每个元素还应该有一个关联的图标,并且应该可以单击。我想到QListView或QTreeView。第二种方法听起来更好,但我必须知道如何强制它以这种方式显示项目。

我想有一个小部件与项目组织在树结构。但是,它应该在一行中查看,并且每个子树都应该用大括号表示。例如:

1。要素1 2。要素2 3。元素3(3.element314.element414{4.element435.element53}5.element516.element613.element324.element42)4元素4。元素5


每个元素还应该有一个关联的图标,并且应该可以单击。我想到QListView或QTreeView。第二种方法听起来更好,但我必须知道如何强制它以这种方式显示项目。

正确的方法仍然是实现您自己的视图。只要用户与视图的交互相当有限,就不会那么困难了(Qt的pieview示例,您的应该更简单)

或者,您也可以创建一个样式化按钮数组(smth,如下所示:)


然后,每个按钮将代表视图中的一个项目。

正确的方法仍然是实现您自己的视图。只要用户与视图的交互相当有限,就不会那么困难了(Qt的pieview示例,您的应该更简单)

或者,您也可以创建一个样式化按钮数组(smth,如下所示:)


然后,每个按钮将代表视图中的一个项目。

否您必须在此处创建自己的自定义视图。这需要做很多工作。但如果不想让它可点击,那么您可以将其序列化为json,然后打印出来。您可能需要基于抽象视图实现自己的视图。但在开始编码之前,您应该了解,用户将如何展开/折叠项,会发生什么,如果树高100级,会发生什么,如果顶层有1000个元素,则会发生什么?项将不可折叠。它应该一直扩大。树也不会这么高这么宽。我确信实现我自己的视图将是一项艰巨的工作——这听起来有些过分。那么,用户是否应该以某种方式与树交互?是的,用户应该能够选择特定的元素。不,您必须在这里创建自己的自定义视图。这需要做很多工作。但如果不想让它可点击,那么您可以将其序列化为json,然后打印出来。您可能需要基于抽象视图实现自己的视图。但在开始编码之前,您应该了解,用户将如何展开/折叠项,会发生什么,如果树高100级,会发生什么,如果顶层有1000个元素,则会发生什么?项将不可折叠。它应该一直扩大。树也不会这么高这么宽。我确信实现我自己的视图将是一项艰巨的工作——这听起来有点过头了。那么,用户是否应该以某种方式与树交互?是的,用户应该能够选择特定的元素。
//stylesheet:
QPushButton {
     background-color: white;
     border-width:0px;
    border-style:none;
 }
 QPushButton:pressed {
     background-color: blue;
     color:white;
 }
 QPushButton:checked {
     background-color: darkblue;
     color:white;
 }