• 6148阅读
  • 9回复

帮我看看程序的问题...................... [复制链接]

上一主题 下一主题
离线wjcd2007
 
只看楼主 倒序阅读 楼主  发表于: 2008-04-10
— 本帖被 XChinux 执行加亮操作(2008-04-10) —
#include <QApplication>
#include <QWidget>
#include <QPushButton>
#include <QFont>
#include <QPopupMenu>
#include <QMenuBar>
#include <QMainWindow>
class MyMainWindow:public QWidget
{
public:
MyMainWindow();
private:
QPopupMenu *file;
QMenuBar *menubar;
};
MyMainWindow::MyMainWindow()
{
    setGeometry(100,100,300,300);
    file=new QPopupMenu (this);
file->insertItem("Quit",qApp,SLOT(quit()));
    menubar=new QMenuBar(this);
  menubar->insertItem( "File", file);
}
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
  MyMainWindow w;
w.show();
a.exec();

}

编译 (make)...
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_SHARED -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtGui -I/usr/include/qt4 -Ibuild -Ibuild -o build/main.o src/main.cpp
src/main.cpp:5:22: 错误: QPopupMenu:No such file or directory
src/main.cpp:13: 错误: ISO C++ 不允许声明无类型的 ‘QPopupMenu’
src/main.cpp:13: 错误: expected ‘;’ before ‘*’ token
src/main.cpp: In constructor ‘MyMainWindow::MyMainWindow()’:
src/main.cpp:19: 错误: ‘file’ 在此作用域中尚未声明
src/main.cpp:19: 错误: expected type-specifier before ‘QPopupMenu’
src/main.cpp:19: 错误: expected `;' before ‘QPopupMenu’
src/main.cpp:22: 错误: ‘class QMenuBar’ 没有名为 ‘insertItem’ 的成员
make: *** [build/main.o] 错误 1
---------------------- 编译结束 7 错误 ----------------------
怎么回事?麻烦高手指点一下,非常感谢.......................
离线wjcd2007
只看该作者 1楼 发表于: 2008-04-10
自己顶一下..............
离线XChinux

只看该作者 2楼 发表于: 2008-04-10
QPopupMenu
Qt4中没有这个类
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线wjcd2007
只看该作者 3楼 发表于: 2008-04-10
那用什么替换呢?
离线captain08
只看该作者 4楼 发表于: 2008-04-10
QMenu
离线guyansrg

只看该作者 5楼 发表于: 2008-04-10
用这个估计可以(#include <Q3PopupMenu>)
Q3PopupMenu ( QWidget * parent = 0, const char * name = 0 )
离线shangyang
只看该作者 6楼 发表于: 2008-04-10
我也刚开始学,把你的程序改后,在VS 中编译下,可以通过。

--------------------------------------
#include <QApplication>
#include <QtGui>
#include <QMenu>
#include <QMainWindow>


class QAction;
class QMenu;

class MyMainWindow:public QMainWindow 
{
public:
MyMainWindow();
private:
QMenu *file;
QAction *quitAct;
};

MyMainWindow::MyMainWindow()
{
    //setGeometry(100,100,300,300);

   
    quitAct = new QAction(tr("Quit"), this);
    connect(quitAct, SIGNAL(triggered()), this, SLOT(close()));

    file= menuBar()->addMenu(tr("&File"));
    file->addAction(quitAct);
}

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MyMainWindow w;
    w.show();
    a.exec();

}
离线wjcd2007
只看该作者 7楼 发表于: 2008-04-10
楼上的好强,我研究了半天都找不到原因,刚刚学,感觉好难.....................................
谢谢...............................................
离线liuchuanwen
只看该作者 8楼 发表于: 2008-04-11
刚学的就多看看帮助,那里有你需要的.他的Example做得很好,多看看.
离线cutezjun

只看该作者 9楼 发表于: 2008-04-12
xiexie
快速回复
限100 字节
 
上一个 下一个