Mi chiedo se qualcuno lo sa, forse un flag per disabilitare il bordo tratteggiato grigio che appare quando si fa clic sulla cella di QTableWidget.Qt QTableWidget è un bordo tratteggiato grigio attorno a una cella selezionata
Grazie.
Mi chiedo se qualcuno lo sa, forse un flag per disabilitare il bordo tratteggiato grigio che appare quando si fa clic sulla cella di QTableWidget.Qt QTableWidget è un bordo tratteggiato grigio attorno a una cella selezionata
Grazie.
Questo bordo tratteggiato grigio indica che il widget è attivo.
L'impostazione di seguito a livello di widget dovrebbe fare il trucco.
setFocusPolicy(Qt::NoFocus)
qApp->setStyleSheet (" QTableWidget::item:focus { border: 0px }");
quasi. ma se utilizziamo un colore di sfondo alternato, cambia il colore di sfondo della selezione in un colore di sfondo alternato. Aggiungi questa correzione 'QTableWidget :: item: focus {border: 0px; background-color: #
C++: tableWidget->setFocusPolicy(Qt::NoFocus);
Python: tableWidget.setFocusPolicy(QtCore.Qt.NoFocus)
essere consapevoli del fatto che si perde la capacità di elaborare gli eventi della tastiera, ma gli eventi del mouse funzionerà bene.
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;
}
funziona perfettamente, grazie mille –
QPushButton { schema: nessuno; }
Sembra che si desideri rimuovere il bordo quando la cella viene messa a fuoco.
Provare a modificare il foglio di stile come segue.
QTableWidget {
outline: 0;
}
Questo ha funzionato perfettamente per me.
vera e semplice risposta –
Possibile duplicato: http://stackoverflow.com/questions/2055705/hide-the-border-of-the-selected-cell-in-qtablewidget-in-pyqt –