2011-09-07 11 views
6

Come posso impostare i bordi delle celle in un QTableWidget a 0px? Preferibilmente posso scegliere quali lati del bordo di una cella per impostare a 0, ma posso vivere con loro tutte le impostazioni a 0 pure.Set QTableWidget a 0px

EDIT: o impostando il confine per 0px o impostare il colore al bianco sarebbe bene pure.

risposta

11

È possibile disattivare tutte le frontiere con QTableWidget::setShowGrid, e riattivare alcune delle quali con un foglio di stile (ad esempio: "QTableView::item { border-left: 1px solid black; }")

Questi ultimi sono bordi interni delle celle, quindi potrebbero non essere allineati come la griglia.

Se si desidera modificare i confini individualmente per ogni cella, è necessario scrivere un delegato (come in that answer).

7

controllo se QTableWidget di setShowGrid avrebbe funzionato per voi, si dovrebbe occupare in questo modo:

tableWidget->setShowGrid(false); 

speranza che questo aiuti, riguarda

0

Il modo più semplice per farlo per me senza influenzare la politica messa a fuoco di widget e utilizzando QSS è quello di creare la seguente delegato personalizzato e installarlo per la tabella:

* .h:

class FocusControlDelegate : public QStyledItemDelegate { 
    public: 
     FocusControlDelegate(QObject *parent = 0); 
     virtual void initStyleOption(QStyleOptionViewItem *option, const QModelIndex &index) const;   
     void setFocusBorderEnabled(bool enabled); 

    protected: 
     bool f_focus_border_enabled; 
    }; 

* .cpp:

FocusControlDelegate::FocusControlDelegate(QObject *parent) : QStyledItemDelegate(parent) { 
    f_focus_border_enabled = false; 
} 

void FocusControlDelegate::setFocusBorderEnabled(bool enabled) { 
    f_focus_border_enabled = enabled; 
} 

void FocusControlDelegate::initStyleOption(QStyleOptionViewItem *option, const QModelIndex &index) const { 
    QStyledItemDelegate::initStyleOption(option, index); 
    if(!f_focus_border_enabled && option->state & QStyle::State_HasFocus) 
     option->state = option->state & ~QStyle::State_HasFocus; 
} 
Problemi correlati