2012-01-28 15 views
11

मुझे आश्चर्य है कि अगर किसी को पता है कि शायद ग्रे डॉटेड सीमा को अक्षम करने के लिए एक झंडा दिखाई देता है जो तब दिखाई देता है जब आप QTableWidget के सेल पर एकल क्लिक करते हैं।क्यूटी QTableWidget की एक चयनित सेल के चारों ओर ग्रे बिंदीदार सीमा

धन्यवाद।

+3

संभावित डुप्लिकेट: http://stackoverflow.com/questions/2055705/hide-the-border-of-the-selected-cell-in-qtablewidget-in-pyqt –

उत्तर

3

वह ग्रे बिंदीदार सीमा इंगित करती है कि विजेट पर ध्यान केंद्रित किया गया है।

विजेट स्तर पर नीचे सेट करना चाल करना चाहिए।

setFocusPolicy(Qt::NoFocus) 
5

qApp->setStyleSheet (" QTableWidget::item:focus { border: 0px }");

+1

लगभग। लेकिन अगर हम वैकल्पिक पृष्ठभूमि रंग का उपयोग करते हैं, तो यह चयन पृष्ठभूमि रंग को वैकल्पिक पृष्ठभूमि रंग में बदल देता है। इस फिक्स को जोड़ें 'QTableWidget :: आइटम: फोकस {सीमा: 0px; पृष्ठभूमि रंग: # <आपकी चयन पृष्ठभूमि रंग>} ' – swdev

5

सी ++: tableWidget->setFocusPolicy(Qt::NoFocus);

पायथन: tableWidget.setFocusPolicy(QtCore.Qt.NoFocus)

ध्यान रखें कि आप कीबोर्ड की घटनाओं पर कार्रवाई करने की क्षमता खो जाएगा, लेकिन माउस की घटनाओं से कार्य करेंगे।

* ज:

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; 
    }; 

6

विजेट का ध्यान नीति को प्रभावित करने और QSS का उपयोग किए बिना मेरे लिए यह सबसे आसान तरीका है निम्न कस्टम प्रतिनिधि बना सकते हैं और तालिका के लिए यह स्थापित करने के लिए है * सीपीपी:

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; 
} 
+0

पूरी तरह से काम करता है, आपको बहुत धन्यवाद –

-1

QPushButton { रूपरेखा: कोई नहीं; }

3

ऐसा लगता है जैसे सेल फोकस प्राप्त करते समय सीमा को हटाना चाहते हैं।

स्टाइलशीट को निम्नानुसार संपादित करने का प्रयास करें।

QTableWidget { 
    outline: 0; 
} 

यह मेरे लिए पूरी तरह से काम किया।

+0

असली सरल उत्तर –

संबंधित मुद्दे