• 8329阅读
  • 3回复

[提问]'ui' was not declared in this scope, 'tr' was not declared in this scope [复制链接]

上一主题 下一主题
离线pandong
 
只看楼主 倒序阅读 楼主  发表于: 2012-06-26
小弟在按书上做的一个鼠标和按键点击 出现图片的程序里 编译老是出现'ui' was not declared in this scope, 'tr' was not declared in this scope求各位大侠给看看
mainwindow.ui
这个自己画的一个按钮和标签 其它什么也没改
main.cpp
#include <QtGui/QApplication>
#include "mainwindow.h"
#include <QTextCodec>
//#include <QObject>


int main(int argc, char *argv[])
{

    QTextCodec::setCodecForTr(QTextCodec::codecForLocale());//
    QApplication a(argc, argv);
    //QObject::tr();
    //Ui::MainWindow *ui;

    ui->label->setText(tr("按下键盘上的A 键试试!"));//
    ui->pushButton->setText(tr("按下鼠标的一个键,然后移动鼠标试试"));//
    /*以下是鼠标移动事件*/
    void MainWindow::mouseMoveEvent(QMouseEvent *m)
     {
        //这里的函数名和参数不能更改
    QCursor my(QPixmap("C:/Documents and Settings/Administrator/event/hq.jpg"));
    //为鼠标指针选择图片,注意这里要用绝对路径,且要用“/”,而不能用“\”
   // C:\Documents and Settings\Administrator\event
    QApplication::setOverrideCursor(my);
    //将鼠标指针更改为自己设置的图片
    int x = m->pos().x();
    int y = m->pos().y();
    //获取鼠标现在的位置坐标
    ui->pushButton->setText(tr("鼠标现在的坐标是(%1,%2),哈哈好玩吧 ").arg(x).arg(y));

    //将鼠标的位置坐标显示在按钮上
    ui->pushButton->move(m->pos());
    //让按钮跟随鼠标移动
      }

    /*以下是键盘按下事件*/
    void MainWindow::keyPressEvent(QKeyEvent *k)
      {
    if(k->key() == Qt::Key_A) //判断是否是A 键按下
        {
    ui->label->setPixmap(QPixmap("C:/Documents and Settings/Administrator/event/hqq.jpg"));


   ui->label->resize(100,100);
     //更改标签图片和大小
        }
      }

    MainWindow w;
     w.show();
    
    return a.exec();
}


mainwindow.cpp
#include "mainwindow.h"

#include "ui_mainwindow.h"
#include<QtGui>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}


mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

#include<QtGui>
namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT
    
public:
    void mouseMoveEvent(QMouseEvent *);//
    void keyPressEvent(QKeyEvent *);//
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    
private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H


离线roywillow

只看该作者 1楼 发表于: 2012-06-26

我觉得吧,这个问题挺简单的,但是解释起来好像挺麻烦,还是你自己悟出来比较靠谱
另外我觉得你的main函数太奇怪了
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线pandong
只看该作者 2楼 发表于: 2012-07-06
有什么奇怪的哈  指点下?
离线roywillow

只看该作者 3楼 发表于: 2012-07-06
回 2楼(pandong) 的帖子
你的main函数中怎么还定义了函数……
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
快速回复
限100 字节
 
上一个 下一个