QTableWidgetのセルをシングルクリックしたときに表示される灰色の点線枠を無効にするフラグが分かっていますか?Qt QTableWidgetの選択されたセルの周りの灰色の点線の境界
ありがとうございました。
QTableWidgetのセルをシングルクリックしたときに表示される灰色の点線枠を無効にするフラグが分かっていますか?Qt QTableWidgetの選択されたセルの周りの灰色の点線の境界
ありがとうございました。
その灰色の点線の枠は、そのウィジェットにフォーカスがあることを示します。
ウィジェットレベルで以下を設定すると、そのトリックを行う必要があります。
setFocusPolicy(Qt::NoFocus)
qApp->setStyleSheet (" QTableWidget::item:focus { border: 0px }");
代替背景色を使用すると、選択背景色が代替背景色に変更されます。この修正を加える 'QTableWidget :: item:focus {border:0px;背景色:#<選択した背景色>} ' – swdev
C++:tableWidget->setFocusPolicy(Qt::NoFocus);
のPython:tableWidget.setFocusPolicy(QtCore.Qt.NoFocus)
あなたがキーボードイベントを処理する能力を失うことに注意してください、しかし、マウスイベントが正常に動作します。
ウィジェットのフォーカス政策に影響を与えると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;
}
は完璧に動作します、ありがとうございました –
のQPushButton { 概要:なし; }
セルがフォーカスを取得したときに枠線を削除したいようです。
スタイルシートを次のように編集してみてください。
QTableWidget {
outline: 0;
}
これは私にとって完璧に機能しました。
本当の簡単な答え –
可能な重複:http://stackoverflow.com/questions/2055705/hide-the-selected-cell-in-qtablewidget-in-pyqt –