急急急!高手请进

trustguan 2012-11-20 10:36:51
#ifndef DIALOG_H
#define DIALOG_H

#include <QtGui/QDialog>
#include<QKeyEvent>
#include<pageone.h>
class Dialog : public QDialog
{
Q_OBJECT

public:
Dialog(QWidget *parent = 0);
~Dialog();
private:
void keyPressEvent(QKeyEvent *event);
PageOne *page;
signals:
void del();


};

#endif // DIALOG_H



#include <QDialog>
#include<QLabel>
class PageOne : public QDialog
{
Q_OBJECT
public:
explicit PageOne(QWidget *parent = 0);

signals:

public slots:

private:
QLabel *label;
protected slots:
void ShowLabel();


};


#include "dialog.h"
#include<pageone.h>
Dialog::Dialog(QWidget *parent)
: QDialog(parent)
{ page=new PageOne(this);
connect(this,SIGNAL(del()),page,SLOT(ShowLabel()));
}

Dialog::~Dialog()
{

}

void Dialog::keyPressEvent(QKeyEvent *event)
{if(event->key()==Qt::Key_1)
emit del();

}


#include "pageone.h"
#include<QDebug>
PageOne::PageOne(QWidget *parent) :
QDialog(parent)
{label=new QLabel("the first page",this);
}

void PageOne::ShowLabel()
{ label->show();
qDebug()<<"afg";
}


我通过按1然后在Dialog里面显示PageOne的label,但是显示不出来,不知道是什么问题,请高手指点。
...全文
172 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2012-11-26
  • 打赏
  • 举报
回复
引用 11 楼 haltwang 的回复:
我觉得应该是label->show()这边出了问题吧。 你试试再show之前用label->setText("the first page") 看看结果怎么样
我发现了一个奇怪的现象,如果我在showlabel里面新建label,它就能显示出来,不知道是为什么?
「已注销」 2012-11-26
  • 打赏
  • 举报
回复
引用 10 楼 allencui0313 的回复:
那么诡异? label show()一下?
我发现了一个奇怪的现象,如果我在showlabel里面新建label,它就能显示出来,不知道是为什么?
「已注销」 2012-11-26
  • 打赏
  • 举报
回复
引用 9 楼 jdwx1 的回复:
引用 7 楼 trustguan 的回复:引用 6 楼 jdwx1 的回复:将Qdebug改一下,看看输出内容。 void PageOne::ShowLabel() { label->show(); qDebug()<< label->geometry(); } 有显示出来啊 我是说显示的内容,不是显示出来了。
就是显示了它的坐标和长宽。我后来发现了一个奇怪的现象,如果我在showlabel里面新建label,它就能显示出来,不知道是为什么?
haltwang 2012-11-24
  • 打赏
  • 举报
回复
我觉得应该是label->show()这边出了问题吧。 你试试再show之前用label->setText("the first page") 看看结果怎么样
  • 打赏
  • 举报
回复
那么诡异? label show()一下?
jdwx 2012-11-24
  • 打赏
  • 举报
回复
引用 7 楼 trustguan 的回复:
引用 6 楼 jdwx1 的回复:将Qdebug改一下,看看输出内容。 void PageOne::ShowLabel() { label->show(); qDebug()<< label->geometry(); } 有显示出来啊
我是说显示的内容,不是显示出来了。
彩阳 2012-11-24
  • 打赏
  • 举报
回复
路过,希望楼主能够遵守发帖的基本规定,标题要开门见山。
「已注销」 2012-11-24
  • 打赏
  • 举报
回复
引用 6 楼 jdwx1 的回复:
将Qdebug改一下,看看输出内容。 void PageOne::ShowLabel() { label->show(); qDebug()<< label->geometry(); }
有显示出来啊
「已注销」 2012-11-21
  • 打赏
  • 举报
回复
引用 1 楼 heksn 的回复:
connect的返回值是true吗?
我搞了一个Qdebug在slabel.show()下面,然后一按1键,显示qDebug的东西,这就证明了能执行到那个槽了
「已注销」 2012-11-21
  • 打赏
  • 举报
回复
引用 2 楼 dext 的回复:
分布来排除,找出问题。 首先看看 事件触发了没有,再看看 连接好了没有。
我搞了一个Qdebug在show.label下面,然后一按1键,显示qDebug的东西,这就证明了能执行到那个槽了
jdwx 2012-11-21
  • 打赏
  • 举报
回复
将Qdebug改一下,看看输出内容。 void PageOne::ShowLabel() { label->show(); qDebug()<< label->geometry(); }
dext 2012-11-20
  • 打赏
  • 举报
回复
keyPressEvent 应该是 protected
dext 2012-11-20
  • 打赏
  • 举报
回复
分布来排除,找出问题。 首先看看 事件触发了没有,再看看 连接好了没有。
  • 打赏
  • 举报
回复
connect的返回值是true吗?

16,240

社区成员

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

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