2014-09-28 76 views
0

我需要使用QTableWidget而不是复选框中的文本。复选框必须位于项目的中心。带复选框的QTableWidget

我试过复选框的例子被选中。如果我取消选中复选框,它会消失。

+1

你能在这里发表至少在哪里复选框消失的例子的源代码? – 2014-09-28 09:41:39

回答

3

您可以设置复选框,与此代码为中心:

QWidget *pWidget = new QWidget(); 
    QCheckBox *pCheckBox = new QCheckBox(); 
    QHBoxLayout *pLayout = new QHBoxLayout(pWidget); 
    pLayout->addWidget(pCheckBox); 
    pLayout->setAlignment(Qt::AlignCenter); 
    pLayout->setContentsMargins(0,0,0,0); 
    pWidget->setLayout(pLayout); 
    pMyTableWidget->setCellWidget(0,0,pWidget); 

(我不知道如果我理解你那么这里)如果你想如果没有选择它的复选框消失,您需要将复选框的单击信号连接到插槽,这会使您的复选框不可见。使用这样的连接方法:

connect(checkbox,SIGNAL(clicked()),this,SLOT(checkboxClicked())); 

您需要创建槽checkboxClicked您将检查复选框是否选中的位置。如果没有,那么你必须将其设置为不可见。例如:

QCheckBox* Chb = qobject_cast<QCheckBox *>(QObject::sender()); 
    if(!Chb->checked()) 
     Chb->setVisible(false); 
+0

+1在真正的应用程序,它仍然需要实现自定义QAbstractItemModel – 2014-09-28 10:12:15