2011-09-07 171 views
6

QTableWidgetのセルのボーダーを0pxに設定するにはどうすればよいですか?私は、セルの境界線のどの辺を0にするかを選択することができますが、それらをすべて0に設定することもできます。QTableWidgetセルのボーダーを0pxに設定する

EDIT:境界線を0pxに設定するか、または色を白に設定すると良いでしょう。 QTableWidgetのsetShowGridはあなたのために働くかどう

答えて

11

についてスタイルシート(例:"QTableView::item { border-left: 1px solid black; }"

後者はセルの内枠であるため、グリッドと同様に整列していない可能性があります。

セルごとに罫線を個別に変更する場合は、デリゲートを作成する必要があります(that answerなど)。

7

チェックは、次のようになめらか:このことができます

tableWidget->setShowGrid(false); 

希望は、あなたがQTableWidget::setShowGridですべての国境を無効にし、でそれらのいくつかを再度有効にすることができ

0

ウィジェットのフォーカス政策に影響を与えるとQSSを使用せずに私のためにそれを行うための最も簡単な方法は、次のカスタムデリゲートを作成して、テーブルのためにそれをインストールすることです:

* .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; 
} 
関連する問題