Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: Martin - ViPEr*CZ* 14 Června 2008, 16:21:45
-
Další lahůdka :D
Mám metodu:
connect(pushButton, SIGNAL(released()), this, SLOT(Pokus()));
a v objektu co představuje this jsem definoval:
public slots: void Pokus();
Neuvěřitelné je to, že třída this dědí z QDialogu a slot se hledá v základní třídě a ne v té mé zděděné takže to vypisuje něco jako
nenalezen slot QDialog::Pokus
V příkladech se, ale tato syntaxe normálně používá (nezkoušel jsem kompilaci). Tak nevím co je kde špatně.
-
QObject::connect(pushButton_4, SIGNAL(released()), x, SLOT(SetEditLine(0)));
Tak todle je taky záhada... SLOT SetEditLine s parametrem neprojde a bez parametru to funguje. Nechápu.
-
Tak je potřeba:
class Ui_Dialog : public QWidget
{
Q_OBJECT
a ten prefix Q_OBJECT je tam právě potřeba jinak nefungují deklarace slotů. Nic méně mi kompilátor nepobíral, když jsem si to tam doplnil. Prapodivné. Vyřešilo to, když jsem v KDevelop dal přidat novou třídu. Tu nadědil s QWidget. Vše pomocí wizardu. A dal kompilovat. Nic víc jsem nikde neměnil. A ejhle Q_OBJECT najednou klidně prošel... no je to záhadný. Třídu jsem zase odebral a teď to už funguje bez toho a jak potřebuju.
-
A tu je výsledný kód sloužící pro začátečníky:
http://vipersoftware.net/linux/download/src/kalkulacka.tar.gz