2014-09-28 75 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