Qt QColumnView将列调整为内容的宽度和更改复选框的图像

时间:2013-10-28 10:03:18

标签: c++ qt checkbox

我正在尝试使用QColumnView来实现可调整大小的列。我遇到了三(3)个问题。

  1. 无法根据内容的宽度自动调整列。柱固定在一定宽度。我可以允许列调整内容的宽度,还是可以为列定义固定宽度?

  2. 如果我点击所谓的最后(第二)列(即“组件1项目1”),它仍会自动扩展到第三列。如何阻止它扩展到另一列(空白)?

  3. 我无法更改复选框已选中和未选中状态的图像。图像没有显示出来。尺寸为40x40,但图像为空白。

  4. 请帮忙。

    感谢。

    void SetDialog::createLayout() {
        this->setStyleSheet("QListView::indicator { width: 40; height: 40; }"
        "QListView::indicator::checked { image: url(../Icons/Checkbox_Checked.png); }"
        "QListView::indicator::unchecked { image: url(../Icons/Checkbox_Unchecked.png); }");
    
        ...
    
        page1ColumnView = new QColumnView(page1);
        page1ColumnView->setFixedSize(772, 400);
    
        QStandItemModel *model = new QStandItemModel;
    
        QStandardItem *component1 = new QStandardItem("Component 1");
        QStandardItem *component2 = new QStandardItem("Component 2");
        model->appendRow(component1);
        model->appendRow(component2);
    
        QStandardItem *component1Item1 = new QStandardItem("Component 1 Item 1");
        QStandardItem *component1Item2 = new QStandardItem("Component 1 Item 2");
        component1Item1->setCheckable(true);
        component1Item2->setCheckable(true);
        component1->appendRow(component1Item1);
        component1->appendRow(component1Item2);
    
        QStandardItem *component2Item1 = new QStandardItem("Component 2 Item 1");
        QStandardItem *component2Item2 = new QStandardItem("Component 2 Item 2");
        component2Item1->setCheckable(true);
        component2Item2->setCheckable(true);
        component1->appendRow(component2Item1);
        component1->appendRow(component2Item2);
    
        ... }
    

0 个答案:

没有答案