Qt problem se sloty – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Qt problem se sloty – C / C++ – Fórum – Programujte.comQt problem se sloty – C / C++ – Fórum – Programujte.com

 

martin
~ Anonymní uživatel
1602 příspěvků
14. 8. 2012   #1
-
0
-

zdravim,jsem zacatecnik v qt a potreboval bych pomoct se sloty. Mam primitivni program s qlineedit do ktereho napisu text,pole qlabel do ktereho se text vypise a tlacitko qpushbutton po jehoz zmacknuti se text vypise do qlabel. vytvoril jsem si na to vlastni slot ktery ten text zkopiruje ale pri zavolani toho slotu se jakoby zrusi ty objekty,nemuze k nim pristoupit a zmenit ten text a skonci to access voilation. prikladam zdrojovy kod,potreboval bych pomoc s tim jak spravne rozdelit soubory,co kam dat ,kam pridat ten slot atd.Dekuju za odpovedi.

program.h:

#ifndef _PROGRAM_H
#define _PROGRAM_H
#include <qapplication.h>
#include <qlabel.h>
#include <qlineedit.h>
#include <qpushbutton.h>
#include <qlayout.h>
class okno:public QWidget
{
Q_OBJECT
public:
okno (QWidget* parent = 0);
private:
QLabel * textik;
QPushButton * tlacitko;
QLineEdit *editbox;
QHBoxLayout * layout;
private slots:
void zmentext ();
};
#endif

program.cpp:

#include "program.h"
okno::okno (QWidget* parent):QWidget (parent)
{
QLabel *textik=new QLabel ("textik co se zmeni");
QPushButton *tlacitko=new QPushButton ("zmen text");
QLineEdit * editbox=new QLineEdit ();
QHBoxLayout * layout=new QHBoxLayout ();
connect (tlacitko,SIGNAL (clicked()),this,SLOT (zmentext()));
layout->addWidget (textik);
layout->addWidget (editbox);
layout->addWidget (tlacitko);
setLayout (layout);
}
void okno::zmentext ()
{
textik->clear(); // zde je problem. pristup tam kam nema.
textik->setText (editbox->text ());
}

main.cpp:


#include "program.h"

int main(int argc, char** argv)
{
QApplication app(argc, argv);
okno okynko;
okynko.show ();
return app.exec();
}

Nahlásit jako SPAM
IP: 78.102.31.–
reciproke0
Návštěvník
15. 8. 2012   #2
-
0
-

 Problém máš v souboru program.cpp, kde v konstruktoru deklaruješ nové ukazatele. Ale zde máš inicializovat ukazatele z definice objektu...

#include "program.h"

okno::okno (QWidget* parent):QWidget (parent)
{
	textik=new QLabel ("textik co se zmeni");
	tlacitko=new QPushButton ("zmen text");
	editbox=new QLineEdit ();
	layout=new QHBoxLayout ();
	connect (tlacitko,SIGNAL (clicked()),this,SLOT (zmentext()));
	layout->addWidget (textik);
	layout->addWidget (editbox);
 	layout->addWidget (tlacitko);
	setLayout (layout);
}

void okno::zmentext ()
{
	textik->setText(editbox->text());
}

Jinak bych se poohlédnul po nějakém editoru, který ti umožní UI naklikat. Například Qt Creator ho obsahuje.


Nahlásit jako SPAM
IP: 82.208.4.–
martin
~ Anonymní uživatel
1602 příspěvků
15. 8. 2012   #3
-
0
-

aha,dekuju. Zdalo se mi ze to mam dobre,pri spusteni vsechno funguje jen pri vyvolani slotu to spadne. 

Nahlásit jako SPAM
IP: 78.102.31.–
martin
~ Anonymní uživatel
1602 příspěvků
15. 8. 2012   #4
-
0
-

jo aha,uz chapu v cem byla chyba. To sem prehlednul,normalne bych to neudelal ale v rychlosti sem to zkopiroval z hlavickoveho souboru.

Nahlásit jako SPAM
IP: 78.102.31.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 16 hostů

Podobná vlákna

Qt sloty problem s dynamickou alokaci — založil rodinne.baleni.ryze

Problem — založil Pavel

Problém v C — založil Robin

Problem — založil roonill

Problém s FF — založil Janina

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý