ui setText Anfänger Frage

Alles rund um die Programmierung mit Qt
Antworten
Nepolo
Beiträge: 10
Registriert: 12. Oktober 2014 18:43

ui setText Anfänger Frage

Beitrag von Nepolo »

Hallo zusammen,
ich habe einen Anfänger Frage.
UI steht in meiner Funktion settText nicht zu Verfügung.
void settText(){ui->textBrowser->setText("test");// GEHT NICHT}

In MainWindow::on_pushButton_clicked kann ich das
void MainWindow::on_pushButton_clicked(){ui->textBrowser->setText("test");// GEHT}

Wie kann ich in am einfachsten in der Funktion settText() auf die GUI zugreifen?

Danke Nepolo

Code: Alles auswählen

#include "mainwindow.h"

#include "ui_mainwindow.h"
#include <QApplication>
#include <QHostInfo>
#include <iostream>
#include <QDebug>
#include <QStringList>
#include <iostream>
using namespace std;


void settText()
{
   //ui->textBrowser->setText("test"); GEHT NICHT
}

MainWindow::MainWindow(QWidget *parent) :
   QMainWindow(parent),
   ui(new Ui::MainWindow)
{
   ui->setupUi(this);

}

MainWindow::~MainWindow()
{
   delete ui;
}

void MainWindow::on_pushButton_clicked()
{
   ui->textBrowser->setText("test");// GEHT
}
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: ui setText Anfänger Frage

Beitrag von Christian81 »

Deine Funktion ist nicht in der Klasse MainWindow - wie sollte sie also auf Member-Variablen dieser Klasse zugreifen können? Warum sollte diese Funktion, die zu keiner Klasse gehört (warum auch immer dies der Fall sein sollte) auf klasseninterne Variablen zugreifen können?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Nepolo
Beiträge: 10
Registriert: 12. Oktober 2014 18:43

Re: ui setText Anfänger Frage

Beitrag von Nepolo »

Hallo Christian81.
Ich bin ja eher Anfänger.
Die Frage nachdem wieso ist einfach. Ich möchte das gerne. ;-)
Ich habe einige kleine Programme mit VB.net programmiert.
Dort kann ich aus eine Funktion heraus auf die GUI zugreifen.

Ich möchte gerne ein einfaches kleines Programm ohne Klassen schreiben.
Das scheint aber nicht so einfach zu sein.
Man wird wohl gezwungen sich mit Klassen zu beschäftigen.

Wie bringe ich denn meine Funktion in der Klasse MainWindow?

Grüße Nepolo
Fenriswolf
Beiträge: 27
Registriert: 11. November 2014 18:06

Re: ui setText Anfänger Frage

Beitrag von Fenriswolf »

Hallo Nepolo,
du kommst bei C++ kaum darum herum dich mit Klassen zu beschäftigen.
Bei einer kleinen Konsolen-Anwendung mag das noch gehen, sobald du aber Anfängst mit der GUI zu arbeiten, wirst du dich damit (zumidest etwas) beschäftigen müssen.

zu deinem Problem hast du zwei möglichkeiten:
1. du trägst deine Funktion mit in die MainWindow-Klasse ein und arbeitest damit innerhalb der Klasse (eig das selbe, wie ohne Klassen zu arbeiten)
2. du übergibst du Klasse an die Funktion (Quelle: http://stackoverflow.com/questions/1623 ... s-function)
was in diesem Fall jedoch nicht funktioniert, da du nur innerhalb der Klasse auf die Ui zugreifen kannst (private) (dies wiederum lässt sich mit ein paar Kniffen gekonnt umgehen, gehört aber aktuell nicht zu deiner Frage ;))
Ich bin die Summer meiner Erfahrungen; und heute bin ich mehr, als ich gestern war
Antworten