سؤال
وأنا في عملية التعلم QT4 والعمل من خلال البرامج التعليمية الخاصة بهم.
في هذا البرنامج التعليمي:
http://doc.trolltech.com/4.5/mainwindows -menus-mainwindow-cpp.html
ولديهم البرمجية التالية:
fileMenu = menuBar()->addMenu(tr("&File"));
والذي يسبب المترجم لرمي هذا الخطأ
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -I. -o main.o main.cpp g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -I. -o MainWindow.o MainWindow.cpp MainWindow.cpp: In member function ‘void MainWindow::createMenus()’: MainWindow.cpp:56: error: ‘((MainWindow*)this)->MainWindow::menuBar’ cannot be used as a function MainWindow.cpp:61: error: ‘((MainWindow*)this)->MainWindow::menuBar’ cannot be used as a function make: *** [MainWindow.o] Error 1
لا أحد يعرف كيف يمكن إصلاح هذا؟
[تحرير] وأضاف كامل رسالة خطأ مع g ++
المحلول 2
لسبب QMainWindow لم يكن الحصول على وضع بشكل صحيح. تم إصلاح هذا عن طريق استدعاء منشئ الفئة الأساسية.
نصائح أخرى
هل أنت متأكد أنك يرث من QMainWindow
، لم تقم بإنشاء أو الموروثة أي المجالات التي قد الظل menuBar
الاسم، وكنت قد تشغيل moc
(أو كان qmake
تفعل ذلك بالنسبة لك)؟
ووmainwindow.cpp
، mainwindow.h
، main.cpp
، وmenus.pro
من سبيل المثال، معدلة، يجب أن تعمل بشكل جيد.
$ cd examples/mainwindows/menus/ $ ls main.cpp mainwindow.cpp mainwindow.h menus.pro $ qmake $ make g++ -c -pipe -g -O2 -mtune=native -pipe -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o mainwindow.o mainwindow.cpp g++ -c -pipe -g -O2 -mtune=native -pipe -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o main.o main.cpp /usr/bin/moc -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. mainwindow.h -o moc_mainwindow.cpp g++ -c -pipe -g -O2 -mtune=native -pipe -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o moc_mainwindow.o moc_mainwindow.cpp g++ -Wl,--as-needed -Wl,--hash-style=both -o menus mainwindow.o main.o moc_mainwindow.o -L/usr/lib64/qt4 -lQtGui -L/usr/lib64 -L/usr/lib64/qt4 -L/usr/X11R6/lib64 -pthread -lpng -lfreetype -lgobject-2.0 -lSM -lICE -pthread -pthread -lXrender -lXrandr -lXinerama -lfontconfig -lXext -lX11 -lQtCore -lz -lm -pthread -lgthread-2.0 -lrt -lglib-2.0 -ldl -lpthread $ ls -F Makefile main.o mainwindow.h menus* moc_mainwindow.cpp main.cpp mainwindow.cpp mainwindow.o menus.pro moc_mainwindow.o
لا تنتمي إلى StackOverflow