2011-09-07 30 views
6

¿Cómo puedo establecer los límites de celda en un QTableWidget en 0px? Preferiblemente, puedo elegir qué lados del borde de una celda establecer en 0, pero puedo vivir con la configuración de todos a 0 también.Establecer bordes de celda de QTableWidget en 0px

EDITAR: Configurar el borde en 0px o configurar el color en blanco sería bueno también.

Respuesta

11

Puede desactivar todas las fronteras con QTableWidget::setShowGrid, y volver a habilitar algunas de ellas con una hoja de estilo (por ejemplo: "QTableView::item { border-left: 1px solid black; }")

Estos últimos son bordes internos de la celda, por lo que es posible que no estén tan bien alineados como la cuadrícula.

Si desea cambiar los bordes individualmente para cada celda, debe escribir un delegado (como en that answer).

7

verificación si QTableWidget de setShowGrid funcionaría para usted, SMTH así:

tableWidget->setShowGrid(false); 

esperanza que esta ayuda, que se refiere a

0

La forma más fácil de hacerlo por mí sin afectar a la política de enfoque del widget y el uso de QSS es crear el siguiente delegado personalizada e instalarlo para la tabla:

* .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; 
} 
Cuestiones relacionadas