Zastanawiam się, czy ktokolwiek wie, być może flaga, aby wyłączyć szare przerywaną granicę, która pojawia się po pojedynczym kliknięciu na komórkę QTableWidget.Qt QTableWidget szara linia przerywana wokół zaznaczonej komórki
Dzięki.
Zastanawiam się, czy ktokolwiek wie, być może flaga, aby wyłączyć szare przerywaną granicę, która pojawia się po pojedynczym kliknięciu na komórkę QTableWidget.Qt QTableWidget szara linia przerywana wokół zaznaczonej komórki
Dzięki.
Ta szara kropkowana granica wskazuje, że ten widget ma fokus.
Ustawienie poniżej na poziomie widgetu powinno załatwić sprawę.
setFocusPolicy(Qt::NoFocus)
qApp->setStyleSheet (" QTableWidget::item:focus { border: 0px }");
prawie. ale jeśli użyjemy alternatywnego koloru tła, zmieni on kolor tła zaznaczenia na alternatywny kolor tła. Dodaj tę poprawkę 'QTableWidget :: item: focus {border: 0px; background-color: #
C++: tableWidget->setFocusPolicy(Qt::NoFocus);
Python: tableWidget.setFocusPolicy(QtCore.Qt.NoFocus)
Należy pamiętać, że tracisz zdolność przetwarzania zdarzeń klawiaturowych, ale zdarzenia myszy będzie działać dobrze.
Najłatwiej zrobić to za mnie bez wpływu na politykę ostrości widgetu i korzystania QSS jest stworzenie następujące niestandardowe delegata i zainstalować go na stole:
* .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;
}
działa idealnie, bardzo dziękuję –
QPushButton { zarys: brak; }
Wygląda na to, że chcesz usunąć ramkę, gdy komórka zorientuje się.
Spróbuj edytować arkusz stylów w następujący sposób.
QTableWidget {
outline: 0;
}
To zadziałało idealnie.
prawdziwa prosta odpowiedź –
Prawdopodobny duplikat: http://stackoverflow.com/questions/2055705/hide-the-borders-the-selected-cell-in-qtablewidget-in-pyqt –