Pyqt में qtablewidget में चयनित सेल की सीमा छिपाएं?




(2)

ऐसा लगता है कि आपके द्वारा छिपाने की कोशिश कर रहे सेल के आस-पास यह बिंदीदार सीमा एक फ़ोकस आयत है कोई भी सेल फ़ोकस कर सकता है और एक ही समय में चयनित नहीं किया जा सकता है और इसके विपरीत भी। यदि आप चाहते हैं कि इस सीमा को पेंट नहीं किया जाए तो किसी आइटम प्रतिनिधि का उपयोग करें वहां आप इसे चित्रित करने से पहले राज्य के हिसाब फोकस शैली को आइटम के राज्य से निकाल सकते हैं। Pls, यह कैसे करना है पर नीचे एक उदाहरण देखें, यह सी ++ है, मुझे बताएं कि क्या आपको समस्याएं अजगर में परिवर्तित करने हैं

// custom item delegate class
class NoFocusDelegate : public QStyledItemDelegate
{
protected:
    void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const;
};

void NoFocusDelegate::paint(QPainter* painter, const QStyleOptionViewItem & option, const QModelIndex &index) const
{
    QStyleOptionViewItem itemOption(option);
    if (itemOption.state & QStyle::State_HasFocus)
        itemOption.state = itemOption.state ^ QStyle::State_HasFocus;
    QStyledItemDelegate::paint(painter, itemOption, index);
}
...
// set the item delegate to your table widget
ui->tableView->setItemDelegate(new NoFocusDelegate());

आशा है कि यह मदद करता है, का संबंध है

क्या कोई तरीका है कि मैं एक चयनित कक्ष की सीमा को छुपा सकता हूँ (या बॉर्डर का रंग सफेद के रूप में बना सकता हूँ)। डिफाल्ट में बिंदीदार रेखा के साथ एक सीमा दिखाई जाती है .. क्या आप मेरी मदद कर सकते हैं ...


मैं करना चाहता हूं:

ui->tableWidget->setFocusPolicy(Qt::NoFocus);

आप डिजाइन टैब का उपयोग करके फ़ोकस नीति भी बदल सकते हैं।