Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2017, 21:51   #1
ivan.tiran
Форумчанин
 
Аватар для ivan.tiran
 
Регистрация: 24.08.2011
Сообщений: 138
По умолчанию Как убрать мерцающие каретки а полях ввода?

Доброго времени суток.

Разрабатываю графический интерфейс для своего приложения.
Понадобилось много полей ввода. Можно конечно было их сделать с помощью QTableWidget. Но, я сделал с помощью QLineEditов. И сейчас уже не хочется менять, так как написано много кода.
В приложении надо сделать так, что если пользователь удалил полностью текст в LineEdit и переместился на другое поле или вкладку, то поле автоматически заполнялось бы либо предыдущим значением, либо "0.0". Я сделал - "0.0", так как это легче.

Сначала для этого я пытался связать сигналы QLabel со своим слотом

Код:
void MainWindow::slotFinishedEdit(QWidget * wg)
{
    if(qobject_cast<LineEdit *>(wg)->text().count()<1)
qobject_cast<QLineEdit *>(wg)->setText("0.0");


}
Проблема оказалась в том, что подходящего сигнала у QLineEdit я не нашёл. Сигнал editingFinished() срабатывает только тогда, когда в поле есть текст. Поэтому пришлось наследовать класс QLineEdit и в событии

Код:
void LineEdit::focusOutEvent(QFocusEvent *)
{
    emit signalMouseOut();
}
посылать собственный сигнал.

Но после этого создалось такое впечатление, что каждый LineEdit живёт своей жизнью. После перехода в другое поле в старых остаются мигающие каретки. Причём текст вводится в текущем поле, как и надо.
Пробовал чистить фокус focusclear и т.д. Ничего не помогло - мигающие каретки.

Помогите либо избавиться от мигающих кареток, либо сделать так, чтобы после смены поля, в случае если в нём ничего нет, предыдущее заполнялось значением.
Изображения
Тип файла: png мерцание кареток.PNG (15.5 Кб, 33 просмотров)
ivan.tiran вне форума Ответить с цитированием
Старый 28.03.2017, 21:52   #2
ivan.tiran
Форумчанин
 
Аватар для ivan.tiran
 
Регистрация: 24.08.2011
Сообщений: 138
По умолчанию

Код:
#include "mainwindow.h"
#include <QDebug>

#include <QtMath>

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
{


    this->setWindowTitle("Расчёт трассы");


    _mainWidget = new QWidget(this);

    this->setCentralWidget(_mainWidget);

    _mainLay = new QVBoxLayout;


    _mainWidget->setLayout(_mainLay);

    _mainLay->setMargin(0);


    _tab = new QTabWidget(_mainWidget);
    _mainLay->addWidget(_tab);


    int k=0;
    QStringList lst;
    lst << tr("Общие настройки") << tr("НУ в положениях и скоростях") << tr("НУ в элементах орбиты") << tr("Результат");

    _tabwidgets << new QWidget << new QWidget << new QWidget << new QWidget;

    foreach (QString str, lst) {
        _tab->addTab(_tabwidgets.at(k),str);
        k++;
    }




    _one_lay = new QVBoxLayout;
    _tabwidgets.at(0)->setLayout(_one_lay);

    _two_lay = new QVBoxLayout;
    _tabwidgets.at(1)->setLayout(_two_lay);

    _three_lay = new QVBoxLayout;
    _tabwidgets.at(2)->setLayout(_three_lay);

    _four_lay = new QVBoxLayout;
    _tabwidgets.at(3)->setLayout(_four_lay);


    _tab->setTabEnabled(3,false);
    _tab->setTabEnabled(2,false);


    _selectNU = new QGroupBox(tr("Задать НУ в..."));

    _one_lay->addWidget(_selectNU,0);

    _selectNULay = new QVBoxLayout;
    _selectNU->setLayout(_selectNULay);


    _radioButtonPositionVelocity = new RadioButtonThreeLay(tr("координатах и скоростях"));
    _selectNULay->addLayout(_radioButtonPositionVelocity);
    _radioButtonPositionVelocity->_rB->setChecked(true);

    _radioButtonKeplerElements = new RadioButtonThreeLay(tr("элементах орбиты"));
    _selectNULay->addLayout(_radioButtonKeplerElements);




    _selectTime = new QGroupBox(tr("Задать время"));
    _one_lay->addWidget(_selectTime,1);


    _selectTimeLay = new QVBoxLayout;
    _selectTime->setLayout(_selectTimeLay);

    _beginTimeW = new RadioButtonThreeLayWidget(tr("Начало"),new QDateTimeEdit(QDateTime::currentDateTime()),0);
    _selectTimeLay->addLayout(_beginTimeW);

    _beginTimeW->_widget->setFixedWidth(170);

    qobject_cast<QDateTimeEdit*>(_beginTimeW->_widget)->setDisplayFormat("dd.MM.yyyy hh:mm:ss");


    connect(qobject_cast<QDateTimeEdit*>(_beginTimeW->_widget),SIGNAL(dateTimeChanged(QDateTime)),this,SLOT(slotBeginTimeW(QDateTime)));


    _endTimeW = new RadioButtonThreeLayWidget(tr("Конец"),new QDateTimeEdit(QDateTime::currentDateTime().addSecs(60)));
    _selectTimeLay->addLayout(_endTimeW);
    _endTimeW->_widget->setFixedWidth(170);
    _endTimeW->_rB->setChecked(true);


    qobject_cast<QDateTimeEdit*>(_endTimeW->_widget)->setDisplayFormat("dd.MM.yyyy hh:mm:ss");

    connect(qobject_cast<QDateTimeEdit*>(_endTimeW->_widget),SIGNAL(dateTimeChanged(QDateTime)),this,SLOT(slotEndTimeW(QDateTime)));


    _periodSecs = new RadioButtonThreeLayWidget(tr("Период"),new QSpinBox);
    _selectTimeLay->addLayout(_periodSecs);

    _periodSecs->_widget->setFixedWidth(170);

    _periodSecs->_widget->setEnabled(false);



    qobject_cast<QSpinBox *>(_periodSecs->_widget)->setRange(0,8640000);
    qobject_cast<QSpinBox *>(_periodSecs->_widget)->setSuffix(tr(" сек"));
    qobject_cast<QSpinBox *>(_periodSecs->_widget)->setValue(qobject_cast<QDateTimeEdit*>(_beginTimeW->_widget)->dateTime().secsTo(qobject_cast<QDateTimeEdit*>(_endTimeW->_widget)->dateTime()));


    connect(qobject_cast<QSpinBox *>(_periodSecs->_widget),SIGNAL(valueChanged(int)),this,SLOT(slotPlusBeginDT(int)));


    //шаг по времени
    _stepBox = new QGroupBox(tr("Указать шаг расчёта"));
    _stepLay = new QVBoxLayout;
    _stepBox->setLayout(_stepLay);
    _stepTime = new QSpinBox;
    _stepLay->addWidget(_stepTime);
    _stepTime->setFixedWidth(255);
    _one_lay->addWidget(_stepBox,0);



    _stepTime->setRange(1,100);
    _stepTime->setSuffix(tr(" сек"));




    _buttonCalcLay = new QVBoxLayout;
    _buttonCalcLay->setAlignment(Qt::AlignHCenter);

    _buttonCalc = new QPushButton(tr("Расчёт"));
    _one_lay->addLayout(_buttonCalcLay);
    _buttonCalc->setFixedSize(150,25);
    _buttonCalcLay->addWidget(_buttonCalc);


    connect(_buttonCalc,SIGNAL(clicked(bool)),this,SLOT(slotStartCalc()));


    QSignalMapper * SM = new QSignalMapper(this);
    connect(SM,SIGNAL(mapped(QWidget*)),this,SLOT(slotFinishedEdit(QWidget*)));


    _two_lay->addLayout(_xEdit = new ThreeLayout(tr("X"),tr("")),0);

    
    connect(_xEdit->_text,SIGNAL(editingFinished());
    
    connect(_xEdit->_text,SIGNAL(signalMouseOut()),SM,SLOT(map()));
    SM->setMapping(_xEdit->_text,_xEdit->_text);

    _two_lay->addLayout(_yEdit = new ThreeLayout(tr("Y"),tr("")),0);

    connect(_yEdit->_text,SIGNAL(signalMouseOut()),SM,SLOT(map()));
    SM->setMapping(_yEdit->_text,_yEdit->_text);

    _two_lay->addLayout(_zEdit = new ThreeLayout(tr("Z"),tr("")),0);

    connect(_zEdit->_text,SIGNAL(signalMouseOut()),SM,SLOT(map()));
    SM->setMapping(_zEdit->_text,_zEdit->_text);

    _two_lay->addLayout(_vXEdit = new ThreeLayout(tr("Vx"),tr("")),0);

    connect(_vXEdit->_text,SIGNAL(signalMouseOut()),SM,SLOT(map()));
    SM->setMapping(_vXEdit->_text,_vXEdit->_text);

    _two_lay->addLayout(_vYEdit = new ThreeLayout(tr("Vy"),tr("")),0);

    connect(_vYEdit->_text,SIGNAL(signalMouseOut()),SM,SLOT(map()));
    SM->setMapping(_vYEdit->_text,_vYEdit->_text);

    _two_lay->addLayout(_vZEdit = new ThreeLayout(tr("Vz"),tr("")),0);

    connect(_vZEdit->_text,SIGNAL(signalMouseOut()),SM,SLOT(map()));
    SM->setMapping(_vZEdit->_text,_vZEdit->_text);



    _two_lay->setSpacing(8);
    _two_lay->setAlignment(Qt::AlignVCenter);





    _three_lay->addLayout(_aEdit = new ThreeLayout(tr("a"),tr("большая полуось")));

    connect(_aEdit->_text,SIGNAL(signalMouseOut()),SM,SLOT(map()));
    SM->setMapping(_aEdit->_text,_aEdit->_text);

    _three_lay->addLayout(_eEdit = new ThreeLayout(tr("e"),tr("эксцентриситет")));

    connect(_eEdit->_text,SIGNAL(signalMouseOut()),SM,SLOT(map()));
    SM->setMapping(_eEdit->_text,_eEdit->_text);

    _three_lay->addLayout(_iEdit = new ThreeLayout(tr("i"),tr("наклонение")));

    connect(_iEdit->_text,SIGNAL(signalMouseOut()),SM,SLOT(map()));
    SM->setMapping(_iEdit->_text,_iEdit->_text);

    _three_lay->addLayout(_perigeeEdit = new ThreeLayout(tr("ω"),tr("аргумент перицентра")));

    connect(_perigeeEdit->_text,SIGNAL(signalMouseOut()),SM,SLOT(map()));
    SM->setMapping(_perigeeEdit->_text,_perigeeEdit->_text);

    _three_lay->addLayout(_omegaEdit = new ThreeLayout(tr("Ω"),tr("долгота восходящего узла")));

    connect(_omegaEdit->_text,SIGNAL(signalMouseOut()),SM,SLOT(map()));
    SM->setMapping(_omegaEdit->_text,_omegaEdit->_text);

    _three_lay->addLayout(_trueAnomalyEdit = new ThreeLayout(tr("ϑ"),tr("истинная аномалия")));

    connect(_trueAnomalyEdit->_text,SIGNAL(signalMouseOut()),SM,SLOT(map()));
    SM->setMapping(_trueAnomalyEdit->_text,_trueAnomalyEdit->_text);

    _three_lay->setSpacing(8);
    _three_lay->setAlignment(Qt::AlignVCenter);




    _tableBox = new QGroupBox(tr("Таблица значений"));
    _four_lay->addWidget(_tableBox);

    _buttonShowMap = new QPushButton(tr("Отобразить на карте"));
    _buttonShowMapLay = new QVBoxLayout;
    _buttonShowMapLay->setAlignment(Qt::AlignHCenter);
    _four_lay->addLayout(_buttonShowMapLay);
    _buttonShowMapLay->addWidget(_buttonShowMap);
    _buttonShowMap->setFixedSize(150,25);


    _outputTable = new QTableWidget(0,4);
    _tableLay = new QVBoxLayout;
    _tableBox->setLayout(_tableLay);
    _tableLay->addWidget(_outputTable);

    _outputTable->setHorizontalHeaderLabels(QStringList() << tr("Время") << tr("Широта, [град]") << tr("Долгота, [град]") << tr("Высота, [км]"));

    _outputTable->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
ivan.tiran вне форума Ответить с цитированием
Старый 28.03.2017, 21:53   #3
ivan.tiran
Форумчанин
 
Аватар для ivan.tiran
 
Регистрация: 24.08.2011
Сообщений: 138
По умолчанию

Код:
connect(_radioButtonPositionVelocity->_rB,SIGNAL(clicked(bool)),this,SLOT(slotActiveUnactiveTab(bool)));
    connect(_radioButtonKeplerElements->_rB,SIGNAL(clicked(bool)),this,SLOT(slotActiveUnactiveTab(bool)));

    connect(_endTimeW->_rB,SIGNAL(clicked(bool)),this,SLOT(slotActiveUnactiveSelectTime(bool)));
    connect(_periodSecs->_rB,SIGNAL(clicked(bool)),this,SLOT(slotActiveUnactiveSelectTime(bool)));

    this->setFixedSize(680,400);

}

MainWindow::~MainWindow()
{
    for(int i=0;i<_tabwidgets.count();i++)
        delete _tabwidgets.at(i);

    _tabwidgets.clear();
}

void MainWindow::slotActiveUnactiveTab(bool)
{

    if(_radioButtonPositionVelocity->_rB->isChecked())
    {
        _tab->setTabEnabled(1,true);
        _tab->setTabEnabled(2,false);
    }
    else
    {
        _tab->setTabEnabled(2,true);
        _tab->setTabEnabled(1,false);

    }

}

void MainWindow::slotActiveUnactiveSelectTime(bool)
{
    //qDebug() << "Work!";


    if(_endTimeW->_rB->isChecked())
    {
        _endTimeW->_widget->setEnabled(true);
        _periodSecs->_widget->setEnabled(false);
    }
    else
    {

        _endTimeW->_widget->setEnabled(false);
        _periodSecs->_widget->setEnabled(true);

    }

}

void MainWindow::slotBeginTimeW(QDateTime)
{
    qobject_cast<QDateTimeEdit*>(_beginTimeW->_widget)->setDateTimeRange(QDateTime(QDate(1900,1,1),QTime(0,0,0)),qobject_cast<QDateTimeEdit*>(_endTimeW->_widget)->dateTime());
    qobject_cast<QSpinBox *>(_periodSecs->_widget)->setValue(qobject_cast<QDateTimeEdit*>(_beginTimeW->_widget)->dateTime().secsTo(qobject_cast<QDateTimeEdit*>(_endTimeW->_widget)->dateTime()));
}

void MainWindow::slotEndTimeW(QDateTime)
{
    qobject_cast<QDateTimeEdit*>(_endTimeW->_widget)->setDateTimeRange(qobject_cast<QDateTimeEdit*>(_beginTimeW->_widget)->dateTime(),QDateTime(QDate(2200,1,1),QTime(0,0,0)));
    qobject_cast<QSpinBox *>(_periodSecs->_widget)->setValue(qobject_cast<QDateTimeEdit*>(_beginTimeW->_widget)->dateTime().secsTo(qobject_cast<QDateTimeEdit*>(_endTimeW->_widget)->dateTime()));
}

void MainWindow::slotPlusBeginDT(int secs)
{
    qobject_cast<QDateTimeEdit*>(_endTimeW->_widget)->setDateTime(qobject_cast<QDateTimeEdit*>(_beginTimeW->_widget)->dateTime().addSecs(secs));
}

void MainWindow::slotStartCalc()
{

    double x,y,z,vx,vy,vz;
    PositionVelocity posVel;
    int step;
    QDateTime tBegin,tEnd;


    step = _stepTime->value();

    tBegin = qobject_cast<QDateTimeEdit*>(_beginTimeW->_widget)->dateTime();
    tEnd = qobject_cast<QDateTimeEdit*>(_endTimeW->_widget)->dateTime();


    if(_tab->isTabEnabled(1))
    {

        x = _xEdit->_text->text().toDouble();
        y = _yEdit->_text->text().toDouble();
        z = _zEdit->_text->text().toDouble();

        vx = _vXEdit->_text->text().toDouble();
        vy = _vYEdit->_text->text().toDouble();
        vz = _vZEdit->_text->text().toDouble();

        posVel = PositionVelocity(Position(x,y,z),Velocity(vx,vy,vz));

    }
    else if(_tab->isTabEnabled(2))
    {


        double a,e,i,perigee,omega,trueAnomaly;

        a = _aEdit->_text->text().toDouble();
        e = _eEdit->_text->text().toDouble();
        i = _iEdit->_text->text().toDouble();

        perigee = _perigeeEdit->_text->text().toDouble();
        omega = _omegaEdit->_text->text().toDouble();
        trueAnomaly = _trueAnomalyEdit->_text->text().toDouble();


        KeplerElements kepler(a,e,i,omega,perigee,trueAnomaly);
        posVel = kepler.getPositionVelocity();

    }


    _calcArray.clear();

    Eyeler iteration(posVel, step, tBegin, tEnd);
    iteration.startIteration(&_calcArray);




    MapWindow *mw = new MapWindow(&_calcArray, this);
    mw->setAttribute(Qt::WA_DeleteOnClose);
    mw->show();


    _tab->setTabEnabled(3,true);


}

void MainWindow::slotFinishedEdit(QWidget * wg)
{
    if(qobject_cast<LineEdit *>(wg)->text().count()<1)
qobject_cast<QLineEdit *>(wg)->setText("0.0");


}

ThreeLayout::ThreeLayout(QString name_str, QString comment_str)
{
    _name = new QLabel(name_str);
    this->addWidget(_name,0);
    _name->setFixedWidth(20);

    _text = new LineEdit;


    this->addWidget(_text,1);


    _text->setText("0.0");

    QDoubleValidator *doubleVal = new QDoubleValidator( -1e+9, 1e+9, 1e+9, _text );
    QLocale locale(QLocale::English);
    doubleVal->setLocale(locale);
    _text->setValidator(doubleVal);


    _comment = new QLabel(comment_str);
    this->addWidget(_comment,1);




}



RadioButtonThreeLay::RadioButtonThreeLay(QString name)
{

    _rB = new QRadioButton;
    _rB->setText(name);
    this->addWidget(_rB,0);

}

RadioButtonThreeLayWidget::RadioButtonThreeLayWidget(QString name, QWidget *widget)
{
    _rB = new QRadioButton;
    _rB->setText(name);
    _rB->setFixedWidth(80);
    this->addWidget(_rB,0);
    this->addWidget(_widget = widget,1);
    this->addWidget(new QLabel(""),1);




}

RadioButtonThreeLayWidget::RadioButtonThreeLayWidget(QString name, QWidget *widget, int k)
{
    _name = new QLabel(name);
    _name->setFixedWidth(80);
    this->addWidget(_name,0);
    this->addWidget(_widget = widget,1);
    this->addWidget(new QLabel(""),1);


}



void LineEdit::focusOutEvent(QFocusEvent *)
{
    emit signalMouseOut();
}
ivan.tiran вне форума Ответить с цитированием
Старый 28.03.2017, 21:54   #4
ivan.tiran
Форумчанин
 
Аватар для ivan.tiran
 
Регистрация: 24.08.2011
Сообщений: 138
По умолчанию

Код:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QVBoxLayout>
#include <QWidget>
#include <QTabWidget>
#include <QLabel>
#include <QVector>
#include <QGroupBox>
#include <QPushButton>
#include <QHBoxLayout>
#include <QLineEdit>
#include <QTableWidget>
#include <QSpinBox>
#include <QRadioButton>
#include <QDateTimeEdit>
#include <QDateTime>
#include <QDoubleValidator>
#include <QFocusEvent>

#include <QPointF>
#include "mapwindow.h"
#include "eyeler.h"
#include "positionvelocity.h"
#include <QSignalMapper>

/*

setTabEnabled() - делает вкладку закрытой

*/

class ThreeLayout;
class RadioButtonThreeLay;
class RadioButtonThreeLayWidget;
class LineEdit;




class MainWindow : public QMainWindow
{
    Q_OBJECT
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:

    QVector<RETURN_VECTOR> _calcArray;//здесь хранится массив рассчитанных геодезических координат

    ThreeLayout *_xEdit,*_yEdit,*_zEdit,*_vXEdit,*_vYEdit,*_vZEdit;
    ThreeLayout *_aEdit,*_eEdit,*_iEdit,*_perigeeEdit,*_omegaEdit,*_trueAnomalyEdit;

    QWidget *_mainWidget;//основной виджет на форме, на котором располагаются другие виджеты
    QVBoxLayout *_mainLay;//основной слой компоновки виджетов
    QTabWidget *_tab;
    QVector<QWidget*> _tabwidgets;//основные виджеты вкладок


    QVBoxLayout *_one_lay,*_two_lay,*_three_lay,*_four_lay;//основные слои компоновки вкладок


    QGroupBox *_selectNU,*_selectTime;


    QPushButton * _buttonCalc;
    QVBoxLayout * _buttonCalcLay;


    QGroupBox * _tableBox;
    QPushButton * _buttonShowMap;
    QVBoxLayout * _buttonShowMapLay;


    //работа с таблицами Шлее 5, стр. 197

    QTableWidget *_outputTable;
    QVBoxLayout * _tableLay;

    //счётчик, стр. 185

    QGroupBox * _stepBox;
    QVBoxLayout * _stepLay;
    QSpinBox * _stepTime;


    RadioButtonThreeLay * _radioButtonPositionVelocity, * _radioButtonKeplerElements;
    QVBoxLayout * _selectNULay;


    //ввод даты и времени, стр. 186


    RadioButtonThreeLayWidget * _beginTimeW,*_endTimeW,*_periodSecs;
    QVBoxLayout * _selectTimeLay;

signals:

public slots:
private slots:

    void slotActiveUnactiveTab(bool);
    void slotActiveUnactiveSelectTime(bool);
    void slotBeginTimeW( QDateTime );
    void slotEndTimeW( QDateTime );
    void slotPlusBeginDT(int);
    void slotStartCalc();

    void slotFinishedEdit(QWidget *);

};



class ThreeLayout : public QHBoxLayout//надпись, текстовое поле, надпись
{
    Q_OBJECT
private:
    QLabel * _name, * _comment;
public:
    LineEdit * _text;
    explicit ThreeLayout(QString name_str,QString comment_str);
private slots:


};

class RadioButtonThreeLay : public QHBoxLayout//радио баттон, надпись
{
public:

    QRadioButton * _rB;
    explicit RadioButtonThreeLay(QString name);
};


class RadioButtonThreeLayWidget : public QHBoxLayout
{
public:
    QWidget * _widget;
    QRadioButton * _rB;

    explicit RadioButtonThreeLayWidget(QString name,QWidget * widget);
    explicit RadioButtonThreeLayWidget(QString name,QWidget * widget,int k);

private:
    QLabel *_name;

};

class LineEdit : public QLineEdit
{
Q_OBJECT
private:
    void focusOutEvent(QFocusEvent *);
signals:
    void signalMouseOut();
};


#endif // MAINWINDOW_H
ivan.tiran вне форума Ответить с цитированием
Старый 28.03.2017, 21:55   #5
ivan.tiran
Форумчанин
 
Аватар для ivan.tiran
 
Регистрация: 24.08.2011
Сообщений: 138
По умолчанию

Навсякий случай выложил свой кривой код формы, cpp и h соответственно.
Заранее спасибо.
ivan.tiran вне форума Ответить с цитированием
Старый 28.03.2017, 22:37   #6
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Вы правильно заметили, что у вас LineEdit каждый живёт своей жизнью.

У вас цепочка наследования порвалась.
вместо
Код:
 _text = new LineEdit;
должно быть
Код:
 _text = new QLineEdit(_tabwidgets.at(1));
или
Код:
_text = new LineEdit;
...
_xEdit->setParent(_tabwidgets.at(1));
Вам надо протянуть этот объект через цепочку ваших классов.

Или вручную отключать включать фокус.
Код:
void LineEdit::focusOutEvent(QFocusEvent *)
{
    clearFocus();  // снимаем фокус
    emit signalMouseOut;
}

void LineEdit::focusInEvent(QFocusEvent *)
{
    setFocus() // наводим фокус
}
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 29.03.2017, 21:16   #7
ivan.tiran
Форумчанин
 
Аватар для ivan.tiran
 
Регистрация: 24.08.2011
Сообщений: 138
По умолчанию

Ни один из методов не дал результатов.
Может тогда поможете для примера компонент _xEdit->_text в порядок привести?

Я и setParrent делал. И чистил, и добавлял фокус в событиях - ерунда.

Я добавил проект во вложения.
Вложения
Тип файла: zip trasi.zip (889.7 Кб, 7 просмотров)
ivan.tiran вне форума Ответить с цитированием
Старый 30.03.2017, 20:23   #8
ivan.tiran
Форумчанин
 
Аватар для ivan.tiran
 
Регистрация: 24.08.2011
Сообщений: 138
По умолчанию

Так никто и не скажет, что делать?(=
ivan.tiran вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как и в чём написать программу .exe которая будет при вводе двух значений в двух разных полях ввода сравнить с библиотекой Александр Куба Помощь студентам 13 12.02.2016 11:00
Как в полях для ввода сумм разделять тысячи? DeveloPerchik Общие вопросы Delphi 8 07.04.2012 14:03
Как убрать фон в полях слияния? Ppaa Microsoft Office Word 2 30.11.2011 15:42
Убрать ошибку #Имя? в полях формы skafiend Microsoft Office Access 1 03.06.2011 07:12
Как убрать рамку фокуса ввода с TListBox? SalasAndriy Компоненты Delphi 2 01.04.2009 21:09