3

Qt 4.8.6 で QtRuby を使用しており、各項目がツリー コントロールと名前の間にカスタム アイコンを持つツリー ビューを作成しようとしています。最終結果は次のようになります。
                      各項目の前にアイコンが表示されたツリー ビュー

アイコンを配置する場所にスペースを割り当てていますが、アイコンが表示されません。それらを表示するにはどうすればよいですか?
                      2 列のツリー ビュー、ただしアイコンはありません

これが私のコードです(データのないエッジケースを削除するために少し簡略化されています):

class MyModel < Qt::AbstractItemModel
  # ...
  def data(index, role)
    case role
      when Qt::DisplayRole
        case index.column
          when 0; Qt::Variant.new(index.internalPointer.displayName)
          when 1; Qt::Variant.new(index.internalPointer.displayType)
        end
      when Qt::DecorationRole
        if index.column==0 then
          # Just testing to show a static icon for all items
          Qt::Pixmap.new(':/resources/images/Objects-Scene-Normal.png')
        end
    end
  end
end

@mytreeview.model = MyModel.new

Qt Designer ファイルを調べたい.ui場合 (ツリー ビューに、私が持っていないプロパティ セットが必要な場合) は、ここで見ることができます。

4

3 に答える 3

2

指定したパスでは画像が見つからないと思います。QFileInfo::exists()で確認してください。

于 2014-10-08T22:56:11.513 に答える
0

QTreeView の代わりに QTreeWidget を使用します。次に、新しいアイテム用に新しいフォーム クラス (YourTreeWidgetItem) を作成します。

YourTreeWidgetItem* wItem = new YourTreeWidgetItem;
treeWidget->setItemWidget(wItem);

しかし、それはc ++ Qtコードです

于 2014-10-09T06:57:50.703 に答える