Как обновить текст в QLineEdit, используя setText () внутри функции слота [Qt5.4]

Я только начинаю с Qt (5.4, если быть точным), используя его для создания графического интерфейса для проекта C ++ для управления некоторым оборудованием.
Теперь моя проблема, я не могу обновить любой QLineEdit (или же QLabel, но это, похоже, та же проблема) текст отображается с использованием его setText() метод. Под «обновлением» я подразумеваю, что он работает один раз, когда вызывается из конструктора главного окна, но не более того.
я использую setText() изнутри слот функции я определил. Даже используя repaint() сразу после этого ничего не делал.

Должно быть, я делаю что-то ужасно неправильно здесь …

Обновление: это действительно правильно, мой собственный код вызывает проблемы с потоком GUI

Вот пример

main.cpp

int main( int argc, char* argv[] ) {
QApplication app(argc, argv);
CmainWindow mainApp;
mainApp.show();
return app.exec();
}

CMainWindow.h

class CMainWindow : public QMainWindow, private Ui::MainWindow {
Q_OBJECT
Q_DISABLE_COPY( CMainWindow )
public:
CMainWindow( QWidget *parent = 0 );
~CMainWindow();
public slots:
void slotButtonConnectClicked(void);
protected:
void setConnections();
private:
AbstractReader_t* pReader;
QString* ErrorString; // conversion mule for std::string
);

CMainWindowConnections.cpp

void CMainWindow::setConnection(void) {
Q_CHECK_PTR( pushButton_Connect )
connect( pushButton_Connect, SIGNAL( clicked() ), this, SLOT( slotButtonConnectClicked()) );
}

CMainWindow.cpp

CMainWindow::CMainWindow( QWidget *parent ) : QMainWindow(parent) {
pReader = NULL;
ErrorString = new QString("GUI Initialized"); // just something to test
setupUi(this);
setConnections();
lineEdit_Error->setText(*ErrorString); // this works !
}

void CMainWindow::slotButtonConnectClicked( void ) {
lineEdit_Error->setText("Initialising..."); // this wont show
// some of my own code here caused problem
} //nope, not even after here

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]