السلام عليكم ورحمة الله وبركاتة .
اليوم وددت أن أختبر المهارات التى تعلمناها فى السي ++ وهى عمل الفئات والوراثة وغيرها من اﻻشياء الجميلة.
أحضرت قلم وكراس وأخترت شاشة أحد مخرجات الدروس وقمت بالعمل عليها
وبالفعل كتبت الكود وراجعتة أكثر من مرة لدرجتة أننى طابقتة مع التمرين لكن ﻻ جدوى يظهر الخطأ وقت الترجمة
الكود:
#include <QWidget>
#include <QApplication>
#include <QPushButton>
#include <QLabel>
class mybutton:public QWidget
{
Q_OBJECT
public:
mybutton(QWidget *parent = 0);
private slots:
void onminus();
void onplus();
private:
QLabel *label;
};
mybutton::mybutton(QWidget *parent):QWidget(parent)
{
QPushButton *minus = new QPushButton("-", this);
minus->setGeometry(30,50,50,50);
QPushButton *plus = new QPushButton("+", this);
plus->setGeometry(30,100,50,50);
label = new QLabel("0", this);
label->setGeometry(100,50,50,75);
QPushButton *quite = new QPushButton("quite", this);
quite->setGeometry(30,150,50,75);
connect(quite, SIGNAL(clicked()),qApp, SLOT(quit()));
connect(minus, SIGNAL(clicked()),this, SLOT(onminus()));
connect(plus, SIGNAL(clicked()),this, SLOT(onplus()));
}
void mybutton::onminus()
{
int i = label->text().toInt();
--i;
label->setText(QString::number(i));
}
void mybutton::onplus()
{
int i = label->text().toInt();
++i;
label->setText(QString::number(i));
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
mybutton newcmd;
newcmd.show();
return a.exec();
}مخرجات المترجم:
11:20:33: Running build steps for project commm... 11:20:33: Configuration unchanged, skipping qmake step. 11:20:33: Starting: "/usr/bin/make" -w make: Entering directory `/home/caster/QtSDK/commm-build-desktop-Desktop_Qt_4_8_0_for_GCC__Qt_SDK__Release' /home/caster/QtSDK/Desktop/Qt/4.8.0/gcc/bin/qmake -spec ../Desktop/Qt/4.8.0/gcc/mkspecs/linux-g++ -o Makefile ../commm/commm.pro make: Leaving directory `/home/caster/QtSDK/commm-build-desktop-Desktop_Qt_4_8_0_for_GCC__Qt_SDK__Release' make: Entering directory `/home/caster/QtSDK/commm-build-desktop-Desktop_Qt_4_8_0_for_GCC__Qt_SDK__Release' g++ -Wl,-O1 -Wl,-rpath,/home/caster/QtSDK/Desktop/Qt/4.8.0/gcc/lib -o commm main.o -L/home/caster/QtSDK/Desktop/Qt/4.8.0/gcc/lib -lQtGui -lQtCore -lpthread main.o: In function `mybutton::mybutton(QWidget*)': make: Leaving directory `/home/caster/QtSDK/commm-build-desktop-Desktop_Qt_4_8_0_for_GCC__Qt_SDK__Release' main.cpp:(.text+0x56): undefined reference to `vtable for mybutton' main.cpp:(.text+0x5d): undefined reference to `vtable for mybutton' main.o: In function `main': main.cpp:(.text.startup+0x5f): undefined reference to `vtable for mybutton' main.cpp:(.text.startup+0x67): undefined reference to `vtable for mybutton' main.cpp:(.text.startup+0xa2): undefined reference to `vtable for mybutton' main.o:main.cpp:(.text.startup+0xaa): more undefined references to `vtable for mybutton' follow collect2: ld returned 1 exit status make: *** [commm] Error 1 11:20:33: The process "/usr/bin/make" exited with code 2. Error while building project commm (target: Desktop) When executing build step 'Make'
حاولت وسأحاول جاهدا ﻷيجاد حل واتمنى أن تساعدونى فى توضيح اسباب المشكلة وجزاكم الله خير.


