• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

dzieci i rodzice podstawy

Object Storage Arubacloud
0 głosów
177 wizyt
pytanie zadane 6 maja 2019 w C i C++ przez niezalogowany

Nie rozumiem obiektówki i czy ktoś w prosty sposób mógł by mi to wytłumaczyć

mam klasę:

class obciazenia:public QObject
{
public:
    obciazenia (QObject *parent=nullptr);

Mam konstruktor okna

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    obciazenia * obc =new obciazenia (this);

ale chciałbym zobaczyć obiekt obc tu:

void Widget::on_pushButton_clicked()
{
 obc; // to go nie widać 
}

bez definiowania globalnej zmiennej (obciazenia * wskaznikglobalny) w klasie widget i makra connect.

Tak mi się wydawało, że jeżeli widzę pushButton i lineEdit dzieci widgeta, to potomka okna obc też moglbym zobaczyć.

 

1 odpowiedź

0 głosów
odpowiedź 6 maja 2019 przez j23 Mędrzec (194,920 p.)
wybrane 10 maja 2019
 
Najlepsza

Zrób obc polem klasy Widget.

komentarz 6 maja 2019 przez niezalogowany
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include "obciazenia.h"

private:
    Ui::Widget *ui;
    obciazenia::obciazenia *obc; // kompilator wyrzuca blad

// tak też nie

private:
    Ui::Widget *ui;
   obciazenia *obc;
29: błąd: unknown type name 'obciazenia'

teraz to już całkiem się pogubiłem

komentarz 6 maja 2019 przez j23 Mędrzec (194,920 p.)

// tak też nie

Ale tak powinno być. Tu też dostajesz unknown type?

komentarz 6 maja 2019 przez niezalogowany
private:
    Ui::Widget *ui;
    obciazenia *aa;
};

działa chyba problem był w tym że dwa razy był dołączony "obciążenia.h" do .h i .cpp

no tak wskaźnik "aa" widzi ale już wskaźnika obc już niekoniecznie. To samo jakbym utworzył globalny wskaźnik czy nie?

komentarz 6 maja 2019 przez niezalogowany

@j23,

Dzięki ważne, że działa akurat ten new  nie jest mi koniecznie potrzebny.

komentarz 6 maja 2019 przez niezalogowany

jednak nie działa

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    aa->set_M_Ed(ui->lineEdit->text());

w klasie obciążenia

void obciazenia::set_M_Ed(QString M)
{
    m_M_Ed=M.toDouble();
}

double obciazenia::get_M_Ed()
{
    return m_M_Ed;
}

i z powrotem na ekran

void Widget::on_pushButton_clicked()
{
   ui->label_12->setText(QString::number( aa->get_M_Ed()));
}

i nic nie wysyła wielkie zero, czyli zamiast 20 to 1.3616e-143

komentarz 6 maja 2019 przez j23 Mędrzec (194,920 p.)

Gdzie tworzysz obiekt aa?

komentarz 6 maja 2019 przez niezalogowany

się właśnie zastanowiłem i wcześniej nigdzie, ale później utworzyłem z obiektem w konstruktorze też nie działa

aa=new obciazenia (this);

 

komentarz 6 maja 2019 przez niezalogowany
edycja 6 maja 2019

Znalazłem błąd, chyba się nigdy nie nauczę co kiedy:

void Widget::on_pushButton_clicked()
{
   ui->label_12->setText(QString::number(aa->get_M_Ed()));
}

Seter w złym miejscu i pół dnia z głowy;

void Widget::on_lineEdit_editingFinished()
{
     wsk->set_M_Ed(ui->lineEdit->text());
}

 

Podobne pytania

0 głosów
1 odpowiedź 162 wizyt
pytanie zadane 5 kwietnia 2016 w C i C++ przez chomek Gaduła (4,500 p.)
0 głosów
3 odpowiedzi 589 wizyt
–9 głosów
11 odpowiedzi 1,340 wizyt
pytanie zadane 20 sierpnia 2016 w Offtop przez Krukzrivii Użytkownik (550 p.)

92,555 zapytań

141,403 odpowiedzi

319,560 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...