菜鸟求助一个简单的问题

qianqian_tutu 2013-05-28 05:10:07
添加一个菜单和一个图标的程序,现在问题有两个:

1. QStatusBar *statusBar = statusBar() ;
statusBar->addAction(openAction);
这两行代码有问题,error:C2064:项不会计算为接受0个参数的函数;

2. openAction = new QAction(QIcon(":/images/doc-open"), tr("&Open..."),
this);这行编译没问题,但是图片显示不出来。手动添加了资源文件,文件是这样的:
<RCC>
<qresource prefix="/images">
<file alias="doc-open">document-open.png</file>
</qresource>
</RCC>
哪位大侠帮忙看一下,代码附在下面。

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent)
{
setWindowTitle(tr("Main Window"));

openAction = new QAction(QIcon(":/images/doc-open"), tr("&Open..."),
this);
openAction->setShortcuts(QKeySequence::Open);
openAction->setStatusTip(tr("Open an existing file"));
connect(openAction, &QAction::triggered, this, &MainWindow::open);

QMenu *file = menuBar()->addMenu(tr("&File"));
file->addAction(openAction);

QToolBar *toolBar = addToolBar(tr("&File"));
toolBar->addAction(openAction);

QStatusBar *statusBar = statusBar() ;
statusBar->addAction(openAction);
}

MainWindow::~MainWindow()
{
}

void MainWindow::open()
{
QMessageBox::information(this, tr("Information"), tr("Open"));
...全文
220 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaowen0306 2014-04-03
  • 打赏
  • 举报
回复
引用 3 楼 cai6811376 的回复:
1.你定义statusBar换个名字吧。。。 2.openAction = new QAction(QIcon(":/images/doc-open.png"), tr("&Open...");
Good!
gzdmfxl 2013-07-24
  • 打赏
  • 举报
回复
引用 9 楼 qianqian_tutu 的回复:
[quote=引用 8 楼 chenlong12580 的回复:] 关于QAction的使用可以看看这两篇文章,如果还有啥问题可留言! http://blog.csdn.net/chenlong12580/article/details/8847236 http://blog.csdn.net/chenlong12580/article/details/8872035
statusBar已经解决,QIcon的还是不行,我看你的两个链接了,openAct = new QAction(QIcon(":/images/open.png"), tr("&Open..."), this);这个和我程序里的是一样的,我添加的图片在资源文件里能看到,就是生成的程序显示不了图片[/quote] 你好,看来我们学的是同一个教程,开始我的程序也是显示不了图片,后面我将之前的资源文件全删了,重新加,先不把图片放在工作目录下,先放在别的文件中,点击添加,然后会出现提示框:无效的文件路径,然后你点击复制就OK了,弄好之后,再重新编译,就可以看到图片啦~
gzdmfxl 2013-07-24
  • 打赏
  • 举报
回复
引用 11 楼 gzdmfxl 的回复:
[quote=引用 9 楼 qianqian_tutu 的回复:] [quote=引用 8 楼 chenlong12580 的回复:] 关于QAction的使用可以看看这两篇文章,如果还有啥问题可留言! http://blog.csdn.net/chenlong12580/article/details/8847236 http://blog.csdn.net/chenlong12580/article/details/8872035
statusBar已经解决,QIcon的还是不行,我看你的两个链接了,openAct = new QAction(QIcon(":/images/open.png"), tr("&Open..."), this);这个和我程序里的是一样的,我添加的图片在资源文件里能看到,就是生成的程序显示不了图片[/quote] 我的问题跟你的一样,但是请问你的第一个问题,statusBar是怎么解决的呢?[/quote] 额,刚刚搜了一下我的这个问题也解决了,原来是应该改为QStatusBar *statusBar = this->statusBar() ; 不好意思啦~
gzdmfxl 2013-07-24
  • 打赏
  • 举报
回复
引用 9 楼 qianqian_tutu 的回复:
[quote=引用 8 楼 chenlong12580 的回复:] 关于QAction的使用可以看看这两篇文章,如果还有啥问题可留言! http://blog.csdn.net/chenlong12580/article/details/8847236 http://blog.csdn.net/chenlong12580/article/details/8872035
statusBar已经解决,QIcon的还是不行,我看你的两个链接了,openAct = new QAction(QIcon(":/images/open.png"), tr("&Open..."), this);这个和我程序里的是一样的,我添加的图片在资源文件里能看到,就是生成的程序显示不了图片[/quote] 我的问题跟你的一样,但是请问你的第一个问题,statusBar是怎么解决的呢?
一去丶二三里 2013-07-08
  • 打赏
  • 举报
回复
引用 楼主 qianqian_tutu 的回复:
添加一个菜单和一个图标的程序,现在问题有两个: 1. QStatusBar *statusBar = statusBar() ; statusBar->addAction(openAction); 这两行代码有问题,error:C2064:项不会计算为接受0个参数的函数; 2. openAction = new QAction(QIcon(":/images/doc-open"), tr("&Open..."), this);这行编译没问题,但是图片显示不出来。手动添加了资源文件,文件是这样的: <RCC> <qresource prefix="/images"> <file alias="doc-open">document-open.png</file> </qresource> </RCC> 哪位大侠帮忙看一下,代码附在下面。 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { setWindowTitle(tr("Main Window")); openAction = new QAction(QIcon(":/images/doc-open"), tr("&Open..."), this); openAction->setShortcuts(QKeySequence::Open); openAction->setStatusTip(tr("Open an existing file")); connect(openAction, &QAction::triggered, this, &MainWindow::open); QMenu *file = menuBar()->addMenu(tr("&File")); file->addAction(openAction); QToolBar *toolBar = addToolBar(tr("&File")); toolBar->addAction(openAction); QStatusBar *statusBar = statusBar() ; statusBar->addAction(openAction); } MainWindow::~MainWindow() { } void MainWindow::open() { QMessageBox::information(this, tr("Information"), tr("Open")); }
我感觉你的资源文件、程序没什么问题,你可以看看document-open.png这个图片的位置,是不是在当前目录下!
qianqian_tutu 2013-06-05
  • 打赏
  • 举报
回复
引用 8 楼 chenlong12580 的回复:
关于QAction的使用可以看看这两篇文章,如果还有啥问题可留言! http://blog.csdn.net/chenlong12580/article/details/8847236 http://blog.csdn.net/chenlong12580/article/details/8872035
statusBar已经解决,QIcon的还是不行,我看你的两个链接了,openAct = new QAction(QIcon(":/images/open.png"), tr("&Open..."), this);这个和我程序里的是一样的,我添加的图片在资源文件里能看到,就是生成的程序显示不了图片
chenlong12580 2013-06-01
  • 打赏
  • 举报
回复
关于QAction的使用可以看看这两篇文章,如果还有啥问题可留言! http://blog.csdn.net/chenlong12580/article/details/8847236 http://blog.csdn.net/chenlong12580/article/details/8872035
qianqian_tutu 2013-05-31
  • 打赏
  • 举报
回复
引用 3 楼 cai6811376 的回复:
1.你定义statusBar换个名字吧。。。 2.openAction = new QAction(QIcon(":/images/doc-open.png"), tr("&Open...");
1.statusBar换了名字还是不行 2.后头还有一行,this);呵呵
超开心~ 2013-05-30
  • 打赏
  • 举报
回复
2. openAction = new QAction(QIcon(":/images/doc-open"), tr("&Open..."), this);这行编译没问题,但是图片显示不出来。手动添加了资源文件,文件是这样的: <RCC> <qresource prefix="/images"> <file alias="doc-open">document-open.png</file> </qresource> </RCC> 没理解为什么QIcon里是doc-open,而资源里是document-open.png, 你把QIcon里的路径和资源文件的路径写一样吧,
xcyl 2013-05-30
  • 打赏
  • 举报
回复
引用 4 楼 qianqian_tutu 的回复:
[quote=引用 3 楼 cai6811376 的回复:] 1.你定义statusBar换个名字吧。。。 2.openAction = new QAction(QIcon(":/images/doc-open.png"), tr("&Open...");
statusBar不是自带的状态栏的名字吗?[/quote] 那是获取指针的函数 QStatusBar *pStatusBar = statusBar();
qianqian_tutu 2013-05-30
  • 打赏
  • 举报
回复
引用 3 楼 cai6811376 的回复:
1.你定义statusBar换个名字吧。。。 2.openAction = new QAction(QIcon(":/images/doc-open.png"), tr("&Open...");
statusBar不是自带的状态栏的名字吗?
xcyl 2013-05-30
  • 打赏
  • 举报
回复
1.你定义statusBar换个名字吧。。。 2.openAction = new QAction(QIcon(":/images/doc-open.png"), tr("&Open...");
qianqian_tutu 2013-05-30
  • 打赏
  • 举报
回复
木有人回答啊,自己顶一下吧
qianqian_tutu 2013-05-28
  • 打赏
  • 举报
回复
我的是qt5.0.2

16,240

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧