Russian Qt Forum
Ноябрь 25, 2024, 06:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как убрать выделение текста в QSpinBox?  (Прочитано 6451 раз)
BulSV
Гость
« : Август 30, 2012, 10:19 »

Собственно вопрос темы и есть сообщение.

Как убрать выделение текста в QSpinBox?
Код:
spinbox->lineEdit()->deselect();

    - не проходит, как писали для QDoubleSpinBox (и для него тоже)
http://www.prog.org.ru/index.php?topic=18950.msg127719#msg127719.
« Последнее редактирование: Август 30, 2012, 10:33 от BulSV » Записан
virtual_root
Гость
« Ответ #1 : Август 30, 2012, 14:55 »

я делала так: в свойствах палитры этого компонента(прям на форме в дизайнере) параметру HighlightedText выставляла белый цвет вместо синего, и выделения не видно)
Записан
BulSV
Гость
« Ответ #2 : Август 30, 2012, 15:39 »

я делала так: в свойствах палитры этого компонента(прям на форме в дизайнере) параметру HighlightedText выставляла белый цвет вместо синего, и выделения не видно)

Мне нужно, чтобы при переходе фокуса с spinbox-а с него снималось выделение. Просто я управляю спинбоксом с помощью 2-х кнопок (при нажатии и удержании одной из них более 3 секунд, удваивается скорость прокрутки спинбокса, а при отпускании кнопки - подаётся сигнал для записи значения спинбокса в мультикарту). И вот тут при переходе, например, на другой (такой же) спинбок, на старом выделение остаётся  В замешательстве. Спинбоксами нужно управлять кнопками и как обычно (по умолчанию). Только с кнопками происходит запись, а как по умолчанию - без неё. Поэтому убрать заливку синим при выделении - не желательно (не видно будет при обычном редактировании значений).
« Последнее редактирование: Август 30, 2012, 15:41 от BulSV » Записан
BulSV
Гость
« Ответ #3 : Август 30, 2012, 17:07 »

Вот ответ - наследовался от QSpinBox (тему можно закрывать, если нет других вариантов Грустный ):

Код:
#ifndef SPINBOX_H
#define SPINBOX_H

#include <QSpinBox>
#include <QLineEdit>

class spinBox : public QSpinBox
{
    Q_OBJECT
    QLineEdit *le;
public:
    explicit spinBox(QWidget *parent = 0);
   
signals:
   
public slots:
    void deselectSB();
   
};

#endif // SPINBOX_H

Код:
#include "spinbox.h"

spinBox::spinBox(QWidget *parent)
    : QSpinBox(parent)
    , le(new QLineEdit(this))
{   
    this->setLineEdit(le);
}

void spinBox::deselectSB()
{
//    this->setStyleSheet("selection-background-color: rgba(0, 0, 0, 0%); selection-color: black");
//    это для "выделения не видно". Но оно мне не подошло.
    le->deselect();
}
Записан
mutineer
Гость
« Ответ #4 : Август 30, 2012, 17:12 »

А зачем ставить свой lineEdit, а не использовать тот, который уже есть в QSpinBox?
Записан
BulSV
Гость
« Ответ #5 : Август 30, 2012, 17:25 »

А зачем ставить свой lineEdit, а не использовать тот, который уже есть в QSpinBox?

У меня не получилось  Грустный
Может я не так делал? Можно пример, как это сделать?
Записан
mutineer
Гость
« Ответ #6 : Август 30, 2012, 17:27 »

le->deselect();
заменить на
lineEdit()->deselect();

А как ты делал, что не получилось?
Записан
BulSV
Гость
« Ответ #7 : Август 30, 2012, 18:34 »

le->deselect();
заменить на
lineEdit()->deselect();

А как ты делал, что не получилось?

Так тоже делал, только без #include <QLineEdit>, а с ним получилось и без своего lineEdit-а Веселый
Записан
BulSV
Гость
« Ответ #8 : Август 30, 2012, 20:06 »

А ещё лучше сделать так:
Код:
void spinBox::deselectSB()
{
    lineEdit()->setFocus(Qt::MouseFocusReason);
}

А то курсор оставался, когда нажимал кнопку другого спинбокса. Но сейчас, и выделение снимается, и курсор пропадает - так же как и у стандартного спинбокса при переключении "родными" стрелочками  Подмигивающий.
Записан
lighting
Гость
« Ответ #9 : Август 31, 2012, 09:19 »

я делала так: в свойствах палитры этого компонента(прям на форме в дизайнере) параметру HighlightedText выставляла белый цвет вместо синего, и выделения не видно)
не самое удачное решение, пользователь ведь может сменить тему оформления и белый цвету уже может не совпасть с цветом фона.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.088 секунд. Запросов: 21.