سؤال

وأنا في عملية التعلم 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
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top