Me pregunto si alguien sabe, tal vez una bandera para desactivar el borde punteado gris que aparece cuando haces clic solo en la celda de un QTableWidget.Qt QTableWidget borde gris punteado alrededor de una celda seleccionada
Gracias.
Me pregunto si alguien sabe, tal vez una bandera para desactivar el borde punteado gris que aparece cuando haces clic solo en la celda de un QTableWidget.Qt QTableWidget borde gris punteado alrededor de una celda seleccionada
Gracias.
Ese borde punteado gris indica que ese widget tiene foco.
Establecer lo siguiente en el nivel de widget debería hacer el truco.
setFocusPolicy(Qt::NoFocus)
qApp->setStyleSheet (" QTableWidget::item:focus { border: 0px }");
casi. pero si usamos un color de fondo alternativo, cambia el color de fondo de la selección a un color de fondo alternativo. Agregue esta corrección 'QTableWidget :: item: focus {border: 0px; background-color: #
C++: tableWidget->setFocusPolicy(Qt::NoFocus);
Python: tableWidget.setFocusPolicy(QtCore.Qt.NoFocus)
Tenga en cuenta que va a perder la capacidad de procesar los eventos del teclado, pero los eventos de ratón funcionará bien.
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;
}
funciona a la perfección, muchas gracias –
QPushButton { esquema: ninguno; }
Parece que desea eliminar el borde cuando la celda se enfoca.
Intente editar la hoja de estilo de la siguiente manera.
QTableWidget {
outline: 0;
}
Esto funcionó perfectamente para mí.
respuesta muy simple –
Posible duplicado: http://stackoverflow.com/questions/2055705/hide-the-border-of-the-selected-cell-in-qtablewidget-in-pyqt –